|
36 | 36 | import datetime |
37 | 37 | import tarfile |
38 | 38 |
|
39 | | -from ietf.idtracker.models import IDInternal, InternetDraft, AreaGroup, Position, IESGLogin, Acronym |
40 | 39 | from django.views.generic.list_detail import object_list |
41 | 40 | from django.views.generic.simple import direct_to_template |
42 | 41 | from django.views.decorators.vary import vary_on_cookie |
|
47 | 46 | from django.conf import settings |
48 | 47 | from django.utils import simplejson as json |
49 | 48 | from django import forms |
| 49 | + |
| 50 | +from ietf.idtracker.models import IDInternal, InternetDraft, AreaGroup, Position, IESGLogin, Acronym |
| 51 | + |
50 | 52 | from ietf.iesg.models import TelechatDates, TelechatAgendaItem, WGAction |
51 | 53 | from ietf.idrfc.idrfc_wrapper import IdWrapper, RfcWrapper |
52 | 54 | from ietf.doc.utils import update_telechat |
53 | 55 | from ietf.ietfauth.decorators import group_required, role_required |
54 | 56 | from ietf.ietfauth.utils import has_role |
55 | 57 | from ietf.ipr.models import IprDocAlias |
56 | | -from ietf.doc.models import Document, TelechatDocEvent, LastCallDocEvent, ConsensusDocEvent |
| 58 | +from ietf.doc.models import Document, TelechatDocEvent, LastCallDocEvent, ConsensusDocEvent, DocEvent |
57 | 59 | from ietf.group.models import Group, GroupMilestone |
58 | 60 |
|
59 | | -def date_threshold(): |
60 | | - """Return the first day of the month that is 185 days ago.""" |
61 | | - ret = datetime.date.today() - datetime.timedelta(days=185) |
62 | | - ret = ret - datetime.timedelta(days=ret.day - 1) |
63 | | - return ret |
64 | | - |
65 | | -def inddocs(request): |
66 | | - queryset_list_ind = [d for d in InternetDraft.objects.filter(stream__in=("IRTF","ISE"), docevent__type="iesg_approved").distinct() if d.latest_event(type__in=("iesg_disapproved", "iesg_approved")).type == "iesg_approved"] |
67 | | - queryset_list_ind.sort(key=lambda d: d.b_approve_date, reverse=True) |
| 61 | +def review_decisions(request, year=None): |
| 62 | + events = DocEvent.objects.filter(type__in=("iesg_disapproved", "iesg_approved")) |
68 | 63 |
|
69 | | - queryset_list_ind_dnp = [d for d in IDInternal.objects.filter(stream__in=("IRTF","ISE"), docevent__type="iesg_disapproved").distinct() if d.latest_event(type__in=("iesg_disapproved", "iesg_approved")).type == "iesg_disapproved"] |
70 | | - queryset_list_ind_dnp.sort(key=lambda d: d.dnp_date, reverse=True) |
| 64 | + years = sorted((d.year for d in events.dates('time', 'year')), reverse=True) |
71 | 65 |
|
72 | | - return render_to_response('iesg/independent_doc.html', |
73 | | - dict(object_list=queryset_list_ind, |
74 | | - object_list_dnp=queryset_list_ind_dnp), |
75 | | - context_instance=RequestContext(request)) |
76 | | - |
77 | | - |
78 | | -def wgdocs(request,cat): |
79 | | - pass |
80 | | - |
81 | | -def wgdocsREDESIGN(request,cat): |
82 | | - is_recent = 0 |
83 | | - proto_actions = [] |
84 | | - doc_actions = [] |
85 | | - threshold = date_threshold() |
86 | | - |
87 | | - proto_levels = ["bcp", "ds", "ps", "std"] |
88 | | - doc_levels = ["exp", "inf"] |
89 | | - |
90 | | - if cat == 'new': |
91 | | - is_recent = 1 |
92 | | - |
93 | | - drafts = InternetDraft.objects.filter(docevent__type="iesg_approved", docevent__time__gte=threshold, intended_std_level__in=proto_levels + doc_levels).exclude(stream__in=("ISE","IRTF")).distinct() |
94 | | - for d in drafts: |
95 | | - if d.b_approve_date and d.b_approve_date >= threshold: |
96 | | - if d.intended_std_level_id in proto_levels: |
97 | | - proto_actions.append(d) |
98 | | - elif d.intended_std_level_id in doc_levels: |
99 | | - doc_actions.append(d) |
100 | | - |
101 | | - elif cat == 'prev': |
102 | | - # proto |
103 | | - start_date = datetime.date(1997, 12, 1) |
104 | | - |
105 | | - drafts = InternetDraft.objects.filter(docevent__type="iesg_approved", docevent__time__lt=threshold, docevent__time__gte=start_date, intended_std_level__in=proto_levels).exclude(stream__in=("ISE","IRTF")).distinct() |
| 66 | + if year: |
| 67 | + year = int(year) |
| 68 | + events = events.filter(time__year=year) |
| 69 | + else: |
| 70 | + d = datetime.date.today() - datetime.timedelta(days=185) |
| 71 | + d = datetime.date(d.year, d.month, 1) |
| 72 | + events = events.filter(time__gte=d) |
106 | 73 |
|
107 | | - for d in drafts: |
108 | | - if d.b_approve_date and start_date <= d.b_approve_date < threshold: |
109 | | - proto_actions.append(d) |
| 74 | + events = events.select_related("doc", "doc__intended_std_level").order_by("-time", "-id") |
110 | 75 |
|
111 | | - # doc |
112 | | - start_date = datetime.date(1998, 10, 15) |
113 | | - |
114 | | - drafts = InternetDraft.objects.filter(docevent__type="iesg_approved", docevent__time__lt=threshold, docevent__time__gte=start_date, intended_std_level__in=doc_levels).exclude(stream__in=("ISE","IRTF")).distinct() |
| 76 | + #proto_levels = ["bcp", "ds", "ps", "std"] |
| 77 | + #doc_levels = ["exp", "inf"] |
115 | 78 |
|
116 | | - for d in drafts: |
117 | | - if d.b_approve_date and start_date <= d.b_approve_date < threshold: |
118 | | - doc_actions.append(d) |
119 | | - else: |
120 | | - raise Http404 |
121 | | - |
122 | | - proto_actions.sort(key=lambda d: d.b_approve_date, reverse=True) |
123 | | - doc_actions.sort(key=lambda d: d.b_approve_date, reverse=True) |
124 | | - |
125 | | - return render_to_response('iesg/ietf_doc.html', |
126 | | - dict(object_list=proto_actions, |
127 | | - object_list_doc=doc_actions, |
128 | | - is_recent=is_recent, |
129 | | - title_prefix="Recent" if is_recent else "Previous"), |
| 79 | + return render_to_response('iesg/review_decisions.html', |
| 80 | + dict(events=events, |
| 81 | + years=years, |
| 82 | + year=year), |
130 | 83 | context_instance=RequestContext(request)) |
131 | 84 |
|
132 | | -if settings.USE_DB_REDESIGN_PROXY_CLASSES: |
133 | | - wgdocs = wgdocsREDESIGN |
134 | | - |
135 | 85 |
|
136 | 86 | def get_doc_section(id): |
137 | 87 | pass |
|
0 commit comments