Be more careful in generating links to draft actions, fixes problem

with RFCs without an associated group and also makes the code somewhat
more readable (although the template tag detour need to go away at
some point, perhaps after the generic charter refactor)
 - Legacy-Id: 4071
This commit is contained in:
Ole Laursen 2012-03-08 13:01:20 +00:00
parent 85e1cfed80
commit 5fab1e071d
2 changed files with 19 additions and 9 deletions

View file

@ -67,14 +67,24 @@ def edit_actions(context, wrapper):
return None
doc = wrapper
draft = wrapper._draft
possible_actions = [
("Adopt in WG", can_adopt(user, draft), urlreverse('edit_adopt', kwargs=dict(name=doc.draft_name))) if settings.USE_DB_REDESIGN_PROXY_CLASSES else ("", False, ""),
("Change stream state", can_edit_state(user, draft), urlreverse('edit_state', kwargs=dict(name=doc.draft_name))),
("Change stream", can_edit_stream(user, draft), urlreverse('edit_stream', kwargs=dict(name=doc.draft_name))),
("Change shepherd", can_manage_shepherd_of_a_document(user, draft), urlreverse('doc_managing_shepherd', kwargs=dict(acronym=draft.group.acronym, name=draft.filename))),
("Change stream writeup", can_manage_writeup_of_a_document(user, draft), urlreverse('doc_managing_writeup', kwargs=dict(acronym=draft.group.acronym, name=draft.filename))),
]
return dict(actions=[(url, action_name) for action_name, active, url, in possible_actions if active])
actions = []
if can_adopt(user, draft):
actions.append(("Adopt in WG", urlreverse('edit_adopt', kwargs=dict(name=doc.draft_name))))
if can_edit_state(user, draft):
actions.append(("Change stream state", urlreverse('edit_state', kwargs=dict(name=doc.draft_name))))
if can_edit_stream(user, draft):
actions.append(("Change stream", urlreverse('edit_stream', kwargs=dict(name=doc.draft_name))))
if can_manage_shepherd_of_a_document(user, draft):
actions.append(("Change shepherd", urlreverse('doc_managing_shepherd', kwargs=dict(acronym=draft.group.acronym, name=draft.filename))))
if can_manage_writeup_of_a_document(user, draft):
actions.append(("Change stream writeup", urlreverse('doc_managing_writeup', kwargs=dict(acronym=draft.group.acronym, name=draft.filename))))
return dict(actions=actions)
class StreamListNode(template.Node):

View file

@ -1,5 +1,5 @@
<div style="margin-bottom: 1em;">
{% for url, action_name in actions %}
{% for action_name, url in actions %}
{% if not forloop.first %} | {% endif%} <a href="{{ url}}">{{ action_name }}</a>
{% endfor %}
</div>