From 34dfae8d23f3e80289ed434158bcb074c3c68c8f Mon Sep 17 00:00:00 2001 From: Henrik Levkowetz <henrik@levkowetz.com> Date: Thu, 13 Oct 2011 15:38:50 +0000 Subject: [PATCH] Merged [3380] from esanchez@yaco.es: Check for missed files on staging area. Fixes #707 - Legacy-Id: 3447 Note: SVN reference [3380] has been migrated to Git commit 0d241bd7c0abf8942d5c121aa9dda5ee34cf75ae --- ietf/submit/templatetags/submit_tags.py | 12 ++++++++++-- ietf/submit/utils.py | 10 ++++++++++ ietf/templates/submit/draft_status.html | 14 +++++++++----- ietf/templates/submit/submission_files.html | 4 ++++ 4 files changed, 33 insertions(+), 7 deletions(-) diff --git a/ietf/submit/templatetags/submit_tags.py b/ietf/submit/templatetags/submit_tags.py index 9f8314976..fa6228fa1 100644 --- a/ietf/submit/templatetags/submit_tags.py +++ b/ietf/submit/templatetags/submit_tags.py @@ -4,6 +4,9 @@ from django import template from django.conf import settings from django.utils.html import mark_safe, escape +from ietf.submit.utils import POSTED, POSTED_BY_SECRETARIAT + + register = template.Library() @@ -11,10 +14,15 @@ register = template.Library() def show_submission_files(context, submission): result = [] for ext in submission.file_type.split(','): + exists = False source = os.path.join(settings.IDSUBMIT_STAGING_PATH, '%s-%s%s' % (submission.filename, submission.revision, ext)) if os.path.exists(source): - result.append({'name': '[%s version ]' % ext[1:].capitalize(), - 'url': '%s%s-%s%s' % (settings.IDSUBMIT_STAGING_URL, submission.filename, submission.revision, ext)}) + exists = True + elif submission.status_id in [POSTED, POSTED_BY_SECRETARIAT]: + continue + result.append({'name': '[%s version ]' % ext[1:].capitalize(), + 'exists': exists, + 'url': '%s%s-%s%s' % (settings.IDSUBMIT_STAGING_URL, submission.filename, submission.revision, ext)}) return {'files': result} def show_two_pages(context, two_pages, validation): diff --git a/ietf/submit/utils.py b/ietf/submit/utils.py index 566898931..567b5efef 100644 --- a/ietf/submit/utils.py +++ b/ietf/submit/utils.py @@ -273,6 +273,16 @@ class DraftValidation(object): self.validate_abstract() self.validate_creation_date() self.validate_wg() + self.validate_files() + + def validate_files(self): + if self.draft.status_id in [POSTED, POSTED_BY_SECRETARIAT]: + return + for ext in self.draft.file_type.split(','): + source = os.path.join(settings.STAGING_PATH, '%s-%s%s' % (self.draft.filename, self.draft.revision, ext)) + if not os.path.exists(source): + self.add_warning('document_files', 'Some files are not found on staging area.<br />We recommend you that you cancel this submission and upload your files again.') + break def validate_title(self): if not self.draft.id_document_name: diff --git a/ietf/templates/submit/draft_status.html b/ietf/templates/submit/draft_status.html index b9760e80a..7701fa90e 100644 --- a/ietf/templates/submit/draft_status.html +++ b/ietf/templates/submit/draft_status.html @@ -138,11 +138,15 @@ returned to the submitter. {% endif %} <table class="metadata-table"> -<tr><th>Document</th><td> - {% ifequal status.status_value "Posted" %}<a href="http://www.ietf.org/id/{{ detail.filename }}-{{detail.revision}}.txt">{{ detail.filename }}</a>{% else %}{{ detail.filename }}{% endifequal %} - <br/><a class="twopages_trigger" href="#">[View first two pages]</a> -{% show_submission_files detail %} -</td></tr> +<tr{% if validation.warnings.document_files %} class="warning"{% endif %}> + <th>Document</th> + <td> + {% ifequal status.status_value "Posted" %}<a href="http://www.ietf.org/id/{{ detail.filename }}-{{detail.revision}}.txt">{{ detail.filename }}</a>{% else %}{{ detail.filename }}{% endifequal %} + <br/><a class="twopages_trigger" href="#">[View first two pages]</a> + {% show_submission_files detail %} + <div class="warn_message">{{ validation.warnings.document_files|safe }}</div> + </td> +</tr> <tr{% if validation.warnings.revision %} class="warning"{% endif %}><th>Revision</th><td>{{ detail.revision }}<div class="warn_message">{{ validation.warnings.revision }}{% if validation.warnings.revision %}<br /><a class="twopages_trigger" href="#">[View error]</a>{% endif %}</div></td></tr> <tr{% if validation.warnings.group %} class="warning"{% endif %}><th>WG</th><td>{{ validation.wg|default:"Individual Submission" }}<div class="warn_message">{{ validation.warnings.group }}</div></td></tr> <tr{% if validation.warnings.creation_date %} class="warning"{% endif %}><th>Document date</th><td>{{ detail.creation_date }}<div class="warn_message">{{ validation.warnings.creation_date }}</div></td></tr> diff --git a/ietf/templates/submit/submission_files.html b/ietf/templates/submit/submission_files.html index 287d366c3..1328ab845 100644 --- a/ietf/templates/submit/submission_files.html +++ b/ietf/templates/submit/submission_files.html @@ -1,7 +1,11 @@ {% if files %} <ul> {% for file in files %} + {% if file.exists %} <li><a href="{{ file.url }}" target="_blank">{{ file.name }}</a></li> + {% else %} + <li style="color: red;"><span style="text-decoration: line-through;">{{ file.name }}</span> This file is not found on staging area</li> + {% endif %} {% endfor %} </ul> {% endif %}