From 04c4043e2547ff15b1c8f8a509548f13add87abb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Tarrag=C3=B3n?= Date: Thu, 10 Feb 2011 19:08:29 +0000 Subject: [PATCH] allowing submissions to be canceled. Closes #591. - Legacy-Id: 2846 --- ietf/submit/models.py | 28 +++++------ ietf/submit/urls.py | 2 +- ietf/submit/utils.py | 1 + ietf/submit/views.py | 13 +++-- ietf/templates/submit/draft_status.html | 65 +++++++++++++------------ 5 files changed, 58 insertions(+), 51 deletions(-) diff --git a/ietf/submit/models.py b/ietf/submit/models.py index df3d1372a..d79d635af 100644 --- a/ietf/submit/models.py +++ b/ietf/submit/models.py @@ -16,28 +16,28 @@ class IdSubmissionDetail(models.Model): temp_id_document_tag = models.IntegerField(null=True, blank=True) status = models.ForeignKey(IdSubmissionStatus, db_column='status_id', null=True, blank=True) last_updated_date = models.DateField(null=True, blank=True) - last_updated_time = models.CharField(blank=True, max_length=25) - id_document_name = models.CharField(blank=True, max_length=255) + last_updated_time = models.CharField(null=True, blank=True, max_length=25) + id_document_name = models.CharField(null=True, blank=True, max_length=255) group_acronym = models.ForeignKey(IETFWG, null=True, blank=True) - filename = models.CharField(blank=True, max_length=255) + filename = models.CharField(null=True, blank=True, max_length=255) creation_date = models.DateField(null=True, blank=True) submission_date = models.DateField(null=True, blank=True) - remote_ip = models.CharField(blank=True, max_length=100) - revision = models.CharField(blank=True, max_length=3) + remote_ip = models.CharField(null=True, blank=True, max_length=100) + revision = models.CharField(null=True, blank=True, max_length=3) submitter_tag = models.IntegerField(null=True, blank=True) - auth_key = models.CharField(blank=True, max_length=255) - idnits_message = models.TextField(blank=True) - file_type = models.CharField(blank=True, max_length=50) - comment_to_sec = models.TextField(blank=True) - abstract = models.TextField(blank=True) + auth_key = models.CharField(null=True, blank=True, max_length=255) + idnits_message = models.TextField(null=True, blank=True) + file_type = models.CharField(null=True, blank=True, max_length=50) + comment_to_sec = models.TextField(null=True, blank=True) + abstract = models.TextField(null=True, blank=True) txt_page_count = models.IntegerField(null=True, blank=True) - error_message = models.CharField(blank=True, max_length=255) - warning_message = models.TextField(blank=True) + error_message = models.CharField(null=True, blank=True, max_length=255) + warning_message = models.TextField(null=True, blank=True) wg_submission = models.IntegerField(null=True, blank=True) filesize = models.IntegerField(null=True, blank=True) man_posted_date = models.DateField(null=True, blank=True) - man_posted_by = models.CharField(blank=True, max_length=255) - first_two_pages = models.TextField(blank=True) + man_posted_by = models.CharField(null=True, blank=True, max_length=255) + first_two_pages = models.TextField(null=True, blank=True) sub_email_priority = models.IntegerField(null=True, blank=True) invalid_version = models.IntegerField(null=True, blank=True) idnits_failed = models.IntegerField(null=True, blank=True) diff --git a/ietf/submit/urls.py b/ietf/submit/urls.py index 5b1e75a2b..b7de99106 100644 --- a/ietf/submit/urls.py +++ b/ietf/submit/urls.py @@ -6,7 +6,7 @@ urlpatterns = patterns('ietf.submit.views', url(r'^status/$', 'submit_status', name='submit_status'), url(r'^status/(?P\d+)/$', 'draft_status', name='draft_status'), url(r'^status/(?P\d+)/edit/$', 'draft_edit', name='draft_edit'), - url(r'^status/(?P\d+)/confirm/(?P[a-f\d]+)/$', 'draft_confirm', name='draft_confirm'), + url(r'^status/(?P\d+)/cancel/$', 'draft_cancel', name='draft_cancel'), ) urlpatterns += patterns('django.views.generic.simple', diff --git a/ietf/submit/utils.py b/ietf/submit/utils.py index c50ba8275..59ff2dc73 100644 --- a/ietf/submit/utils.py +++ b/ietf/submit/utils.py @@ -11,6 +11,7 @@ WAITING_AUTHENTICATION = 4 MANUAL_POST_REQUESTED = 5 POSTED = -1 POSTED_BY_SECRETARIAT = -2 +CANCELED = -4 # Not a real WG diff --git a/ietf/submit/views.py b/ietf/submit/views.py index 740b38de7..3e534a67b 100644 --- a/ietf/submit/views.py +++ b/ietf/submit/views.py @@ -7,7 +7,7 @@ from django.template import RequestContext from ietf.submit.models import IdSubmissionDetail from ietf.submit.forms import UploadForm, AutoPostForm, MetaDataForm -from ietf.submit.utils import (DraftValidation, UPLOADED, WAITING_AUTHENTICATION, +from ietf.submit.utils import (DraftValidation, UPLOADED, WAITING_AUTHENTICATION, CANCELED, perform_post) @@ -67,13 +67,18 @@ def draft_status(request, submission_id, message=None): 'validation': validation, 'auto_post_form': auto_post_form, 'is_valid': is_valid, - 'status': status, - 'allow_edit': allow_edit, - 'message': message, + 'canceled': detail.status_id == CANCELED }, context_instance=RequestContext(request)) +def draft_cancel(request, submission_id): + detail = get_object_or_404(IdSubmissionDetail, submission_id=submission_id) + detail.status_id = CANCELED + detail.save() + return HttpResponseRedirect(reverse(draft_status, None, kwargs={'submission_id': submission_id})) + + def draft_edit(request, submission_id): detail = get_object_or_404(IdSubmissionDetail, submission_id=submission_id) if detail.status_id != UPLOADED: diff --git a/ietf/templates/submit/draft_status.html b/ietf/templates/submit/draft_status.html index cb6b567ec..fc8c3018f 100644 --- a/ietf/templates/submit/draft_status.html +++ b/ietf/templates/submit/draft_status.html @@ -20,6 +20,11 @@ table.metadata-table ul.errorlist { color: red; padding: 0px; margin: 0px; list- {% block pagehead %}