Move charter urls from /wgcharter/<group-acronym> to
/doc/<doc-name>/charter/ since they now all concern the actual charter documents rather than the WG (this removes some redundant code). - Legacy-Id: 4271
This commit is contained in:
parent
4f4a47bffa
commit
47b466eaae
|
@ -30,7 +30,7 @@
|
|||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
from django.conf.urls.defaults import patterns, url
|
||||
from django.conf.urls.defaults import patterns, url, include
|
||||
from ietf.idrfc import views_doc, views_search, views_edit, views_ballot, views
|
||||
|
||||
urlpatterns = patterns('',
|
||||
|
@ -65,4 +65,6 @@ urlpatterns = patterns('',
|
|||
url(r'^(?P<name>[A-Za-z0-9.-]+)/edit/approvaltext/$', views_ballot.ballot_approvaltext, name='doc_ballot_approvaltext'),
|
||||
url(r'^(?P<name>[A-Za-z0-9.-]+)/edit/approveballot/$', views_ballot.approve_ballot, name='doc_approve_ballot'),
|
||||
url(r'^(?P<name>[A-Za-z0-9.-]+)/edit/makelastcall/$', views_ballot.make_last_call, name='doc_make_last_call'),
|
||||
|
||||
(r'^(?P<name>[A-Za-z0-9.-]+)/charter/', include('ietf.wgcharter.urls')),
|
||||
)
|
||||
|
|
|
@ -217,17 +217,17 @@ def document_writeup(request, name):
|
|||
e = doc.latest_event(WriteupDocEvent, type="changed_review_announcement")
|
||||
writeups.append(("WG Review Announcement",
|
||||
e.text if e else "",
|
||||
urlreverse("ietf.wgcharter.views.announcement_text", kwargs=dict(name=doc.group.acronym, ann="review"))))
|
||||
urlreverse("ietf.wgcharter.views.announcement_text", kwargs=dict(name=doc.name, ann="review"))))
|
||||
|
||||
e = doc.latest_event(WriteupDocEvent, type="changed_action_announcement")
|
||||
writeups.append(("WG Action Announcement",
|
||||
e.text if e else "",
|
||||
urlreverse("ietf.wgcharter.views.announcement_text", kwargs=dict(name=doc.group.acronym, ann="action"))))
|
||||
urlreverse("ietf.wgcharter.views.announcement_text", kwargs=dict(name=doc.name, ann="action"))))
|
||||
|
||||
e = doc.latest_event(WriteupDocEvent, type="changed_ballot_writeup_text")
|
||||
writeups.append(("Ballot Announcement",
|
||||
e.text if e else "",
|
||||
urlreverse("ietf.wgcharter.views.ballot_writeupnotes", kwargs=dict(name=doc.group.acronym))))
|
||||
urlreverse("ietf.wgcharter.views.ballot_writeupnotes", kwargs=dict(name=doc.name))))
|
||||
|
||||
if not writeups:
|
||||
raise Http404()
|
||||
|
|
|
@ -41,12 +41,12 @@
|
|||
{% if chartering == "rechartering" %}(Rechartering){% endif %}
|
||||
|
||||
{% if not snapshot and user|has_role:"Area Director,Secretariat" %}
|
||||
- <a href="{% url wg_change_state name=doc.group.acronym %}">Change state</a>
|
||||
- <a href="{% url wg_change_state name=doc.name %}">Change state</a>
|
||||
|
||||
{% if chartering %}
|
||||
- <a href="{% url wg_startstop_process name=doc.group.acronym option='abandon' %}">Abandon effort</a>
|
||||
- <a href="{% url wg_startstop_process name=doc.name option='abandon' %}">Abandon effort</a>
|
||||
{% else %}
|
||||
- <a href="{% url wg_startstop_process name=doc.group.acronym option='recharter' %}">Recharter</a>
|
||||
- <a href="{% url wg_startstop_process name=doc.name option='recharter' %}">Recharter</a>
|
||||
{% endif %}
|
||||
|
||||
{% endif %}
|
||||
|
@ -67,7 +67,7 @@
|
|||
<td>
|
||||
{% if not telechat %}Not on agenda{% else %}{{ telechat.telechat_date|date:"Y-m-d" }}{% endif %}
|
||||
{% if user|has_role:"Area Director,Secretariat" %}
|
||||
- <a href="{% url charter_telechat_date name=doc.group.acronym %}">Change</a>
|
||||
- <a href="{% url charter_telechat_date name=doc.name %}">Change</a>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -89,7 +89,7 @@
|
|||
|
||||
<h3>Charter {{ doc.name }}-{{ doc.rev }}
|
||||
{% if user|has_role:"Area Director,Secretariat" and chartering and doc.group.state_id != "conclude" %}
|
||||
<a class="edit" href="{% url wg_submit name=doc.group.acronym %}">Edit charter text</a>
|
||||
<a class="edit" href="{% url wg_submit name=doc.name %}">Edit charter text</a>
|
||||
{% endif %}
|
||||
</h3>
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ form.change-state .actions {
|
|||
{% block content %}
|
||||
<h1>{{ title }}</h1>
|
||||
|
||||
{% if "Change state" in title %}<p class="helptext">For help on the states, see the <a href="{% url help_charter_states %}">state table</a>.</p>{% endif %}
|
||||
{% if "Change state" in title %}<p class="helptext">For help on the states, see the <a href="{% url help_charter_states name=doc.name %}">state table</a>.</p>{% endif %}
|
||||
|
||||
<form class="change-state" action="" method="post">
|
||||
<table>
|
||||
|
@ -57,7 +57,7 @@ form.change-state .actions {
|
|||
{% if option %}
|
||||
<input type="submit" value="Submit"/>
|
||||
{% else %}
|
||||
<a href="{% url doc_view name=wg.charter.name %}">Back</a>
|
||||
<a href="{% url doc_view name=doc.name %}">Back</a>
|
||||
<input type="submit" value="Save"/>
|
||||
{% endif %}
|
||||
</td>
|
||||
|
@ -82,5 +82,5 @@ form.change-state .actions {
|
|||
<script type="text/javascript">
|
||||
var messages = {{ messages|safe }};
|
||||
</script>
|
||||
<script type="text/javascript" src="/js/wg-change-state.js"></script>
|
||||
<script type="text/javascript" src="/js/charter-change-state.js"></script>
|
||||
{% endblock %}
|
||||
|
|
|
@ -61,7 +61,6 @@ urlpatterns = patterns('',
|
|||
(r'^accounts/', include('ietf.ietfauth.urls')),
|
||||
(r'^doc/', include('ietf.idrfc.urls')),
|
||||
(r'^wg/', include('ietf.wginfo.urls')),
|
||||
(r'^wgcharter/', include('ietf.wgcharter.urls')),
|
||||
(r'^cookies/', include('ietf.cookies.urls')),
|
||||
(r'^person/', include('ietf.person.urls')),
|
||||
(r'^submit/', include('ietf.submit.urls')),
|
||||
|
|
|
@ -38,8 +38,7 @@ class EditCharterTestCase(django.test.TestCase):
|
|||
group = Group.objects.get(acronym="ames")
|
||||
charter = group.charter
|
||||
|
||||
# -- Test change state --
|
||||
url = urlreverse('wg_change_state', kwargs=dict(name=group.acronym))
|
||||
url = urlreverse('wg_change_state', kwargs=dict(name=charter.name))
|
||||
login_testing_unauthorized(self, "secretary", url)
|
||||
|
||||
first_state = charter.get_state()
|
||||
|
@ -84,11 +83,10 @@ class EditCharterTestCase(django.test.TestCase):
|
|||
def test_edit_telechat_date(self):
|
||||
make_test_data()
|
||||
|
||||
# And make a charter for group
|
||||
group = Group.objects.get(acronym="mars")
|
||||
charter = group.charter
|
||||
|
||||
url = urlreverse('charter_telechat_date', kwargs=dict(name=group.acronym))
|
||||
url = urlreverse('charter_telechat_date', kwargs=dict(name=charter.name))
|
||||
login_testing_unauthorized(self, "secretary", url)
|
||||
|
||||
# add to telechat
|
||||
|
@ -120,11 +118,10 @@ class EditCharterTestCase(django.test.TestCase):
|
|||
def test_submit_charter(self):
|
||||
make_test_data()
|
||||
|
||||
# And make a charter for group
|
||||
group = Group.objects.get(acronym="mars")
|
||||
charter = group.charter
|
||||
|
||||
url = urlreverse('wg_submit', kwargs=dict(name=group.acronym))
|
||||
url = urlreverse('wg_submit', kwargs=dict(name=charter.name))
|
||||
login_testing_unauthorized(self, "secretary", url)
|
||||
|
||||
# normal get
|
||||
|
@ -162,7 +159,7 @@ class CharterApproveBallotTestCase(django.test.TestCase):
|
|||
group = Group.objects.get(acronym="ames")
|
||||
charter = group.charter
|
||||
|
||||
url = urlreverse('wg_approve_ballot', kwargs=dict(name=group.acronym))
|
||||
url = urlreverse('wg_approve_ballot', kwargs=dict(name=charter.name))
|
||||
login_testing_unauthorized(self, "secretary", url)
|
||||
|
||||
with open(os.path.join(self.charter_dir, "charter-ietf-%s-%s.txt" % (group.acronym, charter.rev)), "w") as f:
|
||||
|
|
|
@ -7,12 +7,12 @@ urlpatterns = patterns('django.views.generic.simple',
|
|||
url(r'^help/state/$', 'direct_to_template', { 'template': 'wgcharter/states.html', 'extra_context': { 'states': State.objects.filter(type="charter") } }, name='help_charter_states'),
|
||||
)
|
||||
urlpatterns += patterns('',
|
||||
url(r'^(?P<name>[A-Za-z0-9._+-]+)/edit/state/$', "ietf.wgcharter.views.change_state", name='wg_change_state'),
|
||||
url(r'^(?P<name>[A-Za-z0-9._+-]+)/edit/(?P<option>initcharter|recharter|abandon)/$', "ietf.wgcharter.views.change_state", name='wg_startstop_process'),
|
||||
url(r'^(?P<name>[A-Za-z0-9._+-]+)/edit/telechat/$', "ietf.wgcharter.views.telechat_date", name='charter_telechat_date'),
|
||||
url(r'^(?P<name>[A-Za-z0-9._+-]+)/edit/(?P<ann>action|review)/$', "ietf.wgcharter.views.announcement_text", name='wg_announcement_text'),
|
||||
url(r'^(?P<name>[A-Za-z0-9._+-]+)/edit/ballotwriteupnotes/$', "ietf.wgcharter.views.ballot_writeupnotes", name='wg_ballot_writeupnotes'),
|
||||
url(r'^(?P<name>[A-Za-z0-9._+-]+)/edit/approveballot/$', "ietf.wgcharter.views.approve_ballot", name='wg_approve_ballot'),
|
||||
url(r'^(?P<name>[A-Za-z0-9._+-]+)/submit/$', "ietf.wgcharter.views.submit", name='wg_submit'),
|
||||
url(r'^state/$', "ietf.wgcharter.views.change_state", name='wg_change_state'),
|
||||
url(r'^(?P<option>initcharter|recharter|abandon)/$', "ietf.wgcharter.views.change_state", name='wg_startstop_process'),
|
||||
url(r'^telechat/$', "ietf.wgcharter.views.telechat_date", name='charter_telechat_date'),
|
||||
url(r'^(?P<ann>action|review)/$', "ietf.wgcharter.views.announcement_text", name='wg_announcement_text'),
|
||||
url(r'^ballotwriteupnotes/$', "ietf.wgcharter.views.ballot_writeupnotes", name='wg_ballot_writeupnotes'),
|
||||
url(r'^approveballot/$', "ietf.wgcharter.views.approve_ballot", name='wg_approve_ballot'),
|
||||
url(r'^submit/$', "ietf.wgcharter.views.submit", name='wg_submit'),
|
||||
|
||||
)
|
||||
|
|
|
@ -42,17 +42,8 @@ class ChangeStateForm(forms.Form):
|
|||
def change_state(request, name, option=None):
|
||||
"""Change state of WG and charter, notifying parties as necessary
|
||||
and logging the change as a comment."""
|
||||
# Get WG by acronym, redirecting if there's a newer acronym
|
||||
try:
|
||||
wg = Group.objects.get(acronym=name)
|
||||
except Group.DoesNotExist:
|
||||
old = GroupHistory.objects.filter(acronym=name)
|
||||
if old:
|
||||
return redirect('wg_change_state', name=old[0].group.acronym)
|
||||
else:
|
||||
raise Http404()
|
||||
|
||||
charter = set_or_create_charter(wg)
|
||||
charter = get_object_or_404(Document, type="charter", name=name)
|
||||
wg = charter.group
|
||||
|
||||
initial_review = charter.latest_event(InitialReviewDocEvent, type="initial_review")
|
||||
if charter.get_state_slug() != "infrev" or (initial_review and initial_review.expires < datetime.datetime.now()):
|
||||
|
@ -162,7 +153,7 @@ def change_state(request, name, option=None):
|
|||
|
||||
return render_to_response('wgcharter/change_state.html',
|
||||
dict(form=form,
|
||||
wg=wg,
|
||||
doc=wg.charter,
|
||||
login=login,
|
||||
option=option,
|
||||
prev_charter_state=prev_charter_state,
|
||||
|
@ -187,8 +178,7 @@ class TelechatForm(forms.Form):
|
|||
|
||||
@role_required("Area Director", "Secretariat")
|
||||
def telechat_date(request, name):
|
||||
wg = get_object_or_404(Group, acronym=name)
|
||||
doc = set_or_create_charter(wg)
|
||||
doc = get_object_or_404(Document, type="charter", name=name)
|
||||
login = request.user.get_profile()
|
||||
|
||||
e = doc.latest_event(TelechatDocEvent, type="scheduled_for_telechat")
|
||||
|
@ -235,18 +225,9 @@ class UploadForm(forms.Form):
|
|||
|
||||
@role_required('Area Director','Secretariat')
|
||||
def submit(request, name):
|
||||
# Get WG by acronym, redirecting if there's a newer acronym
|
||||
try:
|
||||
wg = Group.objects.get(acronym=name)
|
||||
except Group.DoesNotExist:
|
||||
wglist = GroupHistory.objects.filter(acronym=name)
|
||||
if wglist:
|
||||
return redirect('charter_submit', name=wglist[0].group.acronym)
|
||||
else:
|
||||
raise Http404()
|
||||
# Get charter
|
||||
charter = set_or_create_charter(wg)
|
||||
|
||||
charter = get_object_or_404(Document, type="charter", name=name)
|
||||
wg = charter.group
|
||||
|
||||
login = request.user.get_profile()
|
||||
|
||||
if request.method == 'POST':
|
||||
|
@ -301,16 +282,8 @@ class AnnouncementTextForm(forms.Form):
|
|||
@role_required('Area Director','Secretariat')
|
||||
def announcement_text(request, name, ann):
|
||||
"""Editing of announcement text"""
|
||||
try:
|
||||
wg = Group.objects.get(acronym=name)
|
||||
except Group.DoesNotExist:
|
||||
wglist = GroupHistory.objects.filter(acronym=name)
|
||||
if wglist:
|
||||
return redirect('wg_announcement_text', name=wglist[0].group.acronym)
|
||||
else:
|
||||
raise Http404
|
||||
|
||||
charter = set_or_create_charter(wg)
|
||||
charter = get_object_or_404(Document, type="charter", name=name)
|
||||
wg = charter.group
|
||||
|
||||
login = request.user.get_profile()
|
||||
|
||||
|
@ -383,16 +356,8 @@ class BallotWriteupForm(forms.Form):
|
|||
@role_required('Area Director','Secretariat')
|
||||
def ballot_writeupnotes(request, name):
|
||||
"""Editing of ballot write-up and notes"""
|
||||
try:
|
||||
wg = Group.objects.get(acronym=name)
|
||||
except Group.DoesNotExist:
|
||||
wglist = GroupHistory.objects.filter(acronym=name)
|
||||
if wglist:
|
||||
return redirect('wg_ballot_writeupnotes', name=wglist[0].group.acronym)
|
||||
else:
|
||||
raise Http404
|
||||
|
||||
charter = wg.charter
|
||||
charter = get_object_or_404(Document, type="charter", name=name)
|
||||
wg = charter.group
|
||||
|
||||
ballot = charter.latest_event(BallotDocEvent, type="created_ballot")
|
||||
if not ballot:
|
||||
|
@ -459,16 +424,8 @@ def ballot_writeupnotes(request, name):
|
|||
@role_required("Secretariat")
|
||||
def approve_ballot(request, name):
|
||||
"""Approve ballot, changing state, copying charter"""
|
||||
try:
|
||||
wg = Group.objects.get(acronym=name)
|
||||
except Group.DoesNotExist:
|
||||
wglist = GroupHistory.objects.filter(acronym=name)
|
||||
if wglist:
|
||||
return redirect('wg_approve_ballot', name=wglist[0].group.acronym)
|
||||
else:
|
||||
raise Http404
|
||||
|
||||
charter = set_or_create_charter(wg)
|
||||
charter = get_object_or_404(Document, type="charter", name=name)
|
||||
wg = charter.group
|
||||
|
||||
login = request.user.get_profile()
|
||||
|
||||
|
|
Loading…
Reference in a new issue