datatracker/ietf/doc/views_help.py
Robert Sparks d19967ac93 Adds pages to show what a given document refers to and what refers to it.
Fixes bug #1194
commit ready for merge
 - Legacy-Id: 6701
2013-11-11 23:12:53 +00:00

62 lines
2.4 KiB
Python

from django import forms
from django.shortcuts import render_to_response, get_object_or_404
from django.template import RequestContext
from django.http import Http404
from ietf.doc.models import *
def state_help(request, type):
slug, title = {
"draft-iesg": ("draft-iesg", "IESG States For Internet-Drafts"),
"draft-rfceditor": ("draft-rfceditor", "RFC Editor States For Internet-Drafts"),
"draft-iana-action": ("draft-iana-action", "IANA Action States For Internet-Drafts"),
"charter": ("charter", "Charter States"),
"conflict-review": ("conflrev", "Conflict Review States"),
"status-change": ("statchg", "RFC Status Change States"),
}.get(type, (None, None))
state_type = get_object_or_404(StateType, slug=slug)
states = State.objects.filter(type=state_type).order_by("order")
has_next_states = False
for state in states:
if state.next_states.all():
has_next_states = True
break
tags = []
if state_type.slug == "draft-iesg":
# legacy hack
states = list(states)
fake_state = dict(name="I-D Exists",
desc="Initial (default) state for all internet drafts. Such documents are not being tracked by the IESG as no request has been made of the IESG to do anything with the document.",
next_states=dict(all=State.objects.filter(type="draft-iesg", slug__in=("watching", "pub-req")))
)
states.insert(0, fake_state)
tags = DocTagName.objects.filter(slug__in=IESG_SUBSTATE_TAGS)
return render_to_response("doc/state_help.html", {
"title": title,
"state_type": state_type,
"states": states,
"has_next_states": has_next_states,
"tags": tags,
},
context_instance=RequestContext(request))
def relationship_help(request,subset=None):
subsets = { "reference": ['refnorm','refinfo','refunk','refold'],
"status" : ['tops','tois','tohist','toinf','tobcp','toexp'],
}
if subset and subset not in subsets:
raise Http404()
rels = DocRelationshipName.objects.filter(used=True)
if subset:
rels = rels.filter(slug__in=subsets[subset])
return render_to_response("doc/relationship_help.html", {
"relations": rels
},
context_instance=RequestContext(request))