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:
Ole Laursen 2012-04-10 18:11:03 +00:00
parent 4f4a47bffa
commit 47b466eaae
9 changed files with 38 additions and 83 deletions

View file

@ -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')),
)

View file

@ -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()

View file

@ -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>

View file

@ -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 %}

View file

@ -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')),

View file

@ -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:

View file

@ -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'),
)

View file

@ -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()