Fix URL schema of change stream state to use the state type (to be

more in line with the IANA ones), remove debug output, link to the new
change state page from the draft main page
 - Legacy-Id: 6295
This commit is contained in:
Ole Laursen 2013-09-28 18:54:43 +00:00
parent 8c88bc5aec
commit 74966fac88
6 changed files with 14 additions and 11 deletions

View file

@ -1030,7 +1030,7 @@ class ChangeStreamStateTests(django.test.TestCase):
draft.tags = DocTagName.objects.filter(slug="w-expert")
draft.group.unused_tags.add("w-refdoc")
url = urlreverse('doc_change_stream_state', kwargs=dict(name=draft.name))
url = urlreverse('doc_change_stream_state', kwargs=dict(name=draft.name, state_type="draft-stream-ietf"))
login_testing_unauthorized(self, "marschairman", url)
# get
@ -1068,7 +1068,7 @@ class ChangeStreamStateTests(django.test.TestCase):
def test_set_state(self):
draft = make_test_data()
url = urlreverse('doc_change_stream_state', kwargs=dict(name=draft.name))
url = urlreverse('doc_change_stream_state', kwargs=dict(name=draft.name, state_type="draft-stream-ietf"))
login_testing_unauthorized(self, "marschairman", url)
# get

View file

@ -87,7 +87,7 @@ urlpatterns += patterns('',
url(r'^(?P<name>[A-Za-z0-9._+-]+)/edit/shepherdwriteup/$', views_draft.edit_shepherd_writeup, name='doc_edit_shepherd_writeup'),
url(r'^(?P<name>[A-Za-z0-9._+-]+)/edit/requestpublication/$', views_draft.request_publication, name='doc_request_publication'),
url(r'^(?P<name>[A-Za-z0-9._+-]+)/edit/adopt/$', views_draft.adopt_draft, name='doc_adopt_draft'),
url(r'^(?P<name>[A-Za-z0-9._+-]+)/edit/state/stream/$', views_draft.change_stream_state, name='doc_change_stream_state'),
url(r'^(?P<name>[A-Za-z0-9._+-]+)/edit/state/(?P<state_type>draft-stream-[a-z]+)/$', views_draft.change_stream_state, name='doc_change_stream_state'),
url(r'^(?P<name>[A-Za-z0-9._+-]+)/edit/clearballot/$', views_ballot.clear_ballot, name='doc_clear_ballot'),
url(r'^(?P<name>[A-Za-z0-9._+-]+)/edit/deferballot/$', views_ballot.defer_ballot, name='doc_defer_ballot'),

View file

@ -258,9 +258,11 @@ def document_main(request, name, rev=None):
resurrected_by = e.by
# stream info
stream_state_type_slug = None
stream_state = None
if doc.stream:
stream_state = doc.get_state("draft-stream-%s" % doc.stream_id)
stream_state_type_slug = "draft-stream-%s" % doc.stream_id
stream_state = doc.get_state(stream_state_type_slug)
stream_tags = doc.tags.filter(slug__in=get_tags_for_stream_id(doc.stream_id))
shepherd_writeup = doc.latest_event(WriteupDocEvent, type="changed_protocol_writeup")
@ -356,6 +358,7 @@ def document_main(request, name, rev=None):
has_errata=doc.tags.filter(slug="errata"),
published=doc.latest_event(type="published_rfc"),
file_urls=file_urls,
stream_state_type_slug=stream_state_type_slug,
stream_state=stream_state,
stream_tags=stream_tags,
milestones=doc.groupmilestone_set.filter(state="active"),

View file

@ -1198,7 +1198,7 @@ def adopt_draft(request, name):
context_instance=RequestContext(request))
class ChangeStreamStateForm(forms.Form):
new_state = forms.ModelChoiceField(queryset=State.objects.filter(used=True), label='State')
new_state = forms.ModelChoiceField(queryset=State.objects.filter(used=True), label='State', help_text=u"Only select 'Submitted to IESG for Publication' to correct errors. Use the document's main page to request publication.")
weeks = forms.IntegerField(label='Expected weeks in state',required=False)
comment = forms.CharField(widget=forms.Textarea, required=False, help_text="Optional comment for the document history")
tags = forms.ModelMultipleChoiceField(queryset=DocTagName.objects.filter(used=True), widget=forms.CheckboxSelectMultiple, required=False)
@ -1244,15 +1244,16 @@ def next_states_for_stream_state(doc, state_type, current_state):
return next_states
@login_required
def change_stream_state(request, name):
def change_stream_state(request, name, state_type):
doc = get_object_or_404(Document, type="draft", name=name)
if not doc.stream:
raise Http404
state_type = get_object_or_404(StateType, slug=state_type)
if not is_authorized_in_doc_stream(request.user, doc):
return HttpResponseForbidden("You don't have permission to access this page")
state_type = StateType.objects.get(slug="draft-stream-%s" % doc.stream_id)
prev_state = doc.get_state(state_type.slug)
next_states = next_states_for_stream_state(doc, state_type, prev_state)
@ -1308,7 +1309,7 @@ def change_stream_state(request, name):
return HttpResponseRedirect(doc.get_absolute_url())
else:
form = ChangeStreamStateForm(initial=dict(new_state=prev_state.pk),
form = ChangeStreamStateForm(initial=dict(new_state=prev_state.pk if prev_state else None),
doc=doc, state_type=state_type)
milestones = doc.groupmilestone_set.all()

View file

@ -95,7 +95,7 @@
{% if doc.stream %}
<td>{{ doc.stream }} State:</td>
<td class="stream-state">
<a {% if doc.stream and can_edit_stream_info %}class="editlink" href="{% url edit_state name=doc.name %}"{% endif %}>
<a {% if doc.stream and can_edit_stream_info %}class="editlink" href="{% url doc_change_stream_state name=doc.name state_type=stream_state_type_slug %}"{% endif %}>
{{ stream_state|default:"(None)" }}
</a>

View file

@ -32,7 +32,7 @@ form.change-state ul li label { cursor: pointer; }
{% if next_states %}
<div class="next-states">
<span>Recommended next state{{next_states|pluralize}}:</span>
<span>Recommended next state{{ next_states|pluralize }}:</span>
{% for state in next_states %}<a tabindex="0" data-state="{{ state.pk }}">{{ state.name }}</a> {% if not forloop.last %} or {% endif %}{% endfor %}
</div>
{% endif %}
@ -65,7 +65,6 @@ jQuery(document).ready(function () {
jQuery(".next-states a").click(function (e) {
e.preventDefault();
var s = jQuery(this).data("state");
console.log(s)
jQuery("#id_new_state").val(s);
});
});