Skip to content

Commit a77c81c

Browse files
committed
resolve issues with proceedings progress repport. Commit ready for merge
- Legacy-Id: 9121
1 parent 877e683 commit a77c81c

1 file changed

Lines changed: 17 additions & 23 deletions

File tree

ietf/secr/proceedings/proc_utils.py

Lines changed: 17 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,8 @@ def mycomp(timeslot):
9999
def get_progress_stats(sdate,edate):
100100
'''
101101
This function takes a date range and produces a dictionary of statistics / objects for use
102-
in a progress report.
102+
in a progress report. Generally the end date will be the date of the last meeting
103+
and the start date will be the date of the meeting before that.
103104
'''
104105
data = {}
105106
data['sdate'] = sdate
@@ -109,20 +110,20 @@ def get_progress_stats(sdate,edate):
109110
new_docs = Document.objects.filter(type='draft').filter(docevent__type='new_revision',
110111
docevent__newrevisiondocevent__rev='00',
111112
docevent__time__gte=sdate,
112-
docevent__time__lte=edate)
113+
docevent__time__lt=edate)
113114
data['new'] = new_docs.count()
114115
data['updated'] = 0
115116
data['updated_more'] = 0
116117
for d in new_docs:
117-
updates = d.docevent_set.filter(type='new_revision',time__gte=sdate,time__lte=edate).count()
118+
updates = d.docevent_set.filter(type='new_revision',time__gte=sdate,time__lt=edate).count()
118119
if updates > 1:
119120
data['updated'] += 1
120121
if updates > 2:
121122
data['updated_more'] +=1
122123

123124
# calculate total documents updated, not counting new, rev=00
124125
result = set()
125-
events = DocEvent.objects.filter(doc__type='draft',time__gte=sdate,time__lte=edate)
126+
events = DocEvent.objects.filter(doc__type='draft',time__gte=sdate,time__lt=edate)
126127
for e in events.filter(type='new_revision').exclude(newrevisiondocevent__rev='00'):
127128
result.add(e.doc)
128129
data['total_updated'] = len(result)
@@ -134,23 +135,17 @@ def get_progress_stats(sdate,edate):
134135
data['approved'] = events.filter(type='iesg_approved').count()
135136

136137
# get 4 weeks
137-
monday = Meeting.get_ietf_monday()
138-
cutoff = monday + datetime.timedelta(days=3)
139-
ff1_date = cutoff - datetime.timedelta(days=28)
140-
#ff2_date = cutoff - datetime.timedelta(days=21)
141-
#ff3_date = cutoff - datetime.timedelta(days=14)
142-
#ff4_date = cutoff - datetime.timedelta(days=7)
143-
138+
ff1_date = edate - datetime.timedelta(days=28)
144139
ff_docs = Document.objects.filter(type='draft').filter(docevent__type='new_revision',
145140
docevent__newrevisiondocevent__rev='00',
146141
docevent__time__gte=ff1_date,
147-
docevent__time__lte=cutoff)
142+
docevent__time__lt=edate)
148143
ff_new_count = ff_docs.count()
149144
ff_new_percent = format(ff_new_count / float(data['new']),'.0%')
150145

151146
# calculate total documents updated in final four weeks, not counting new, rev=00
152147
result = set()
153-
events = DocEvent.objects.filter(doc__type='draft',time__gte=ff1_date,time__lte=cutoff)
148+
events = DocEvent.objects.filter(doc__type='draft',time__gte=ff1_date,time__lt=edate)
154149
for e in events.filter(type='new_revision').exclude(newrevisiondocevent__rev='00'):
155150
result.add(e.doc)
156151
ff_update_count = len(result)
@@ -162,28 +157,28 @@ def get_progress_stats(sdate,edate):
162157
data['ff_update_percent'] = ff_update_percent
163158

164159
# Progress Report Section
165-
data['docevents'] = DocEvent.objects.filter(doc__type='draft',time__gte=sdate,time__lte=edate)
160+
data['docevents'] = DocEvent.objects.filter(doc__type='draft',time__gte=sdate,time__lt=edate)
166161
data['action_events'] = data['docevents'].filter(type='iesg_approved')
167162
data['lc_events'] = data['docevents'].filter(type='sent_last_call')
168163

169164
data['new_groups'] = Group.objects.filter(type='wg',
170165
groupevent__changestategroupevent__state='active',
171166
groupevent__time__gte=sdate,
172-
groupevent__time__lte=edate)
167+
groupevent__time__lt=edate)
173168

174169
data['concluded_groups'] = Group.objects.filter(type='wg',
175170
groupevent__changestategroupevent__state='conclude',
176171
groupevent__time__gte=sdate,
177-
groupevent__time__lte=edate)
172+
groupevent__time__lt=edate)
178173

179174
data['new_docs'] = Document.objects.filter(type='draft').filter(docevent__type='new_revision',
180175
docevent__time__gte=sdate,
181-
docevent__time__lte=edate).distinct()
176+
docevent__time__lt=edate).distinct()
182177

183178
data['rfcs'] = DocEvent.objects.filter(type='published_rfc',
184179
doc__type='draft',
185180
time__gte=sdate,
186-
time__lte=edate)
181+
time__lt=edate)
187182

188183
# attach the ftp URL for use in the template
189184
for event in data['rfcs']:
@@ -551,12 +546,11 @@ def gen_progress(context, final=True):
551546
'''
552547
meeting = context['meeting']
553548

554-
# proceedings are run sometime after the meeting, so end date = the previous meeting
549+
# proceedings are run sometime after the meeting, so end date = the passed meeting
555550
# date and start date = the date of the meeting before that
556-
now = datetime.date.today()
557-
meetings = Meeting.objects.filter(type='ietf',date__lt=now).order_by('-date')
558-
start_date = meetings[1].date
559-
end_date = meetings[0].date
551+
previous_meetings = Meeting.objects.filter(type='ietf',date__lt=meeting.date).order_by('-date')
552+
start_date = previous_meetings[0].date
553+
end_date = meeting.date
560554
data = get_progress_stats(start_date,end_date)
561555
data['meeting'] = meeting
562556
data['final'] = final

0 commit comments

Comments
 (0)