Allow Secretariat to submit drafts during blackout period. Fixes #1755. Commit ready for merge.
- Legacy-Id: 9821
This commit is contained in:
parent
39fd739fad
commit
007d7d22b4
|
@ -9,8 +9,9 @@ from django.core.urlresolvers import reverse as urlreverse
|
|||
|
||||
import debug # pyflakes:ignore
|
||||
|
||||
from ietf.group.models import Group
|
||||
from ietf.doc.models import Document
|
||||
from ietf.group.models import Group
|
||||
from ietf.ietfauth.utils import has_role
|
||||
from ietf.meeting.models import Meeting
|
||||
from ietf.submit.models import Submission, Preapproval
|
||||
from ietf.submit.utils import validate_submission_rev, validate_submission_document_date
|
||||
|
@ -32,6 +33,7 @@ class UploadForm(forms.Form):
|
|||
|
||||
self.remote_ip = request.META.get('REMOTE_ADDR', None)
|
||||
|
||||
self.request = request
|
||||
self.in_first_cut_off = False
|
||||
self.cutoff_warning = ""
|
||||
self.shutdown = False
|
||||
|
@ -104,7 +106,7 @@ class UploadForm(forms.Form):
|
|||
return self.clean_file("xml", XMLParser)
|
||||
|
||||
def clean(self):
|
||||
if self.shutdown:
|
||||
if self.shutdown and not has_role(self.request.user, "Secretariat"):
|
||||
raise forms.ValidationError('The tool is shut down')
|
||||
|
||||
# sanity check that paths exist (for development servers)
|
||||
|
|
|
@ -13,6 +13,7 @@ from ietf.utils.test_utils import login_testing_unauthorized
|
|||
from ietf.utils.test_data import make_test_data
|
||||
from ietf.utils.mail import outbox
|
||||
from ietf.utils.test_utils import TestCase
|
||||
from ietf.meeting.models import Meeting
|
||||
from ietf.submit.utils import expirable_submissions, expire_submission, ensure_person_email_info_exists
|
||||
from ietf.person.models import Person
|
||||
from ietf.group.models import Group
|
||||
|
@ -608,6 +609,29 @@ class SubmitTests(TestCase):
|
|||
r = self.client.get(urlreverse("submit_tool_instructions"))
|
||||
self.assertEquals(r.status_code, 200)
|
||||
|
||||
def test_blackout_access(self):
|
||||
make_test_data()
|
||||
|
||||
# get
|
||||
url = urlreverse('submit_upload_submission')
|
||||
# set meeting to today so we're in blackout period
|
||||
meeting = Meeting.get_current_meeting()
|
||||
meeting.date = datetime.datetime.today()
|
||||
meeting.save()
|
||||
|
||||
# regular user, no access
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
q = PyQuery(r.content)
|
||||
self.assertEqual(len(q('input[type=file][name=txt]')), 0)
|
||||
|
||||
# Secretariat has access
|
||||
self.client.login(username="secretary", password="secretary+password")
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
q = PyQuery(r.content)
|
||||
self.assertEqual(len(q('input[type=file][name=txt]')), 1)
|
||||
|
||||
class ApprovalsTestCase(TestCase):
|
||||
def test_approvals(self):
|
||||
make_test_data()
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{% extends "submit/submit_base.html" %}
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
{% load origin %}
|
||||
|
||||
{% load ietf_filters %}
|
||||
{% load bootstrap3 %}
|
||||
|
||||
{% block title %}Upload{% endblock %}
|
||||
|
@ -10,6 +10,10 @@
|
|||
{% origin %}
|
||||
{% bootstrap_messages %}
|
||||
|
||||
{% if form.shutdown and user|has_role:"Secretariat" %}
|
||||
<p class="bg-warning">WARNING: currently in draft submission blackout period</p>
|
||||
{% endif %}
|
||||
|
||||
{% if form.cutoff_warning %}
|
||||
<div class="cutoff-warning">
|
||||
{{ form.cutoff_warning|safe }}
|
||||
|
@ -28,7 +32,7 @@
|
|||
six months. They may be updated, replaced, or obsoleted by other
|
||||
documents at any time.</p>
|
||||
|
||||
{% if not form.shutdown %}
|
||||
{% if not form.shutdown or user|has_role:"Secretariat" %}
|
||||
<p>If you run into problems when submitting an Internet-Draft
|
||||
using this and the following pages, you may alternatively submit
|
||||
your draft by email to
|
||||
|
|
Loading…
Reference in a new issue