@@ -101,7 +101,8 @@ def mycomp(timeslot):
101101def get_progress_stats (sdate ,edate ):
102102 '''
103103 This function takes a date range and produces a dictionary of statistics / objects for use
104- in a progress report.
104+ in a progress report. Generally the end date will be the date of the last meeting
105+ and the start date will be the date of the meeting before that.
105106 '''
106107 data = {}
107108 data ['sdate' ] = sdate
@@ -111,20 +112,20 @@ def get_progress_stats(sdate,edate):
111112 new_docs = Document .objects .filter (type = 'draft' ).filter (docevent__type = 'new_revision' ,
112113 docevent__newrevisiondocevent__rev = '00' ,
113114 docevent__time__gte = sdate ,
114- docevent__time__lte = edate )
115+ docevent__time__lt = edate )
115116 data ['new' ] = new_docs .count ()
116117 data ['updated' ] = 0
117118 data ['updated_more' ] = 0
118119 for d in new_docs :
119- updates = d .docevent_set .filter (type = 'new_revision' ,time__gte = sdate ,time__lte = edate ).count ()
120+ updates = d .docevent_set .filter (type = 'new_revision' ,time__gte = sdate ,time__lt = edate ).count ()
120121 if updates > 1 :
121122 data ['updated' ] += 1
122123 if updates > 2 :
123124 data ['updated_more' ] += 1
124125
125126 # calculate total documents updated, not counting new, rev=00
126127 result = set ()
127- events = DocEvent .objects .filter (doc__type = 'draft' ,time__gte = sdate ,time__lte = edate )
128+ events = DocEvent .objects .filter (doc__type = 'draft' ,time__gte = sdate ,time__lt = edate )
128129 for e in events .filter (type = 'new_revision' ).exclude (newrevisiondocevent__rev = '00' ):
129130 result .add (e .doc )
130131 data ['total_updated' ] = len (result )
@@ -136,23 +137,17 @@ def get_progress_stats(sdate,edate):
136137 data ['approved' ] = events .filter (type = 'iesg_approved' ).count ()
137138
138139 # get 4 weeks
139- monday = Meeting .get_ietf_monday ()
140- cutoff = monday + datetime .timedelta (days = 3 )
141- ff1_date = cutoff - datetime .timedelta (days = 28 )
142- #ff2_date = cutoff - datetime.timedelta(days=21)
143- #ff3_date = cutoff - datetime.timedelta(days=14)
144- #ff4_date = cutoff - datetime.timedelta(days=7)
145-
140+ ff1_date = edate - datetime .timedelta (days = 28 )
146141 ff_docs = Document .objects .filter (type = 'draft' ).filter (docevent__type = 'new_revision' ,
147142 docevent__newrevisiondocevent__rev = '00' ,
148143 docevent__time__gte = ff1_date ,
149- docevent__time__lte = cutoff )
144+ docevent__time__lt = edate )
150145 ff_new_count = ff_docs .count ()
151146 ff_new_percent = format (ff_new_count / float (data ['new' ]),'.0%' )
152147
153148 # calculate total documents updated in final four weeks, not counting new, rev=00
154149 result = set ()
155- events = DocEvent .objects .filter (doc__type = 'draft' ,time__gte = ff1_date ,time__lte = cutoff )
150+ events = DocEvent .objects .filter (doc__type = 'draft' ,time__gte = ff1_date ,time__lt = edate )
156151 for e in events .filter (type = 'new_revision' ).exclude (newrevisiondocevent__rev = '00' ):
157152 result .add (e .doc )
158153 ff_update_count = len (result )
@@ -164,28 +159,28 @@ def get_progress_stats(sdate,edate):
164159 data ['ff_update_percent' ] = ff_update_percent
165160
166161 # Progress Report Section
167- data ['docevents' ] = DocEvent .objects .filter (doc__type = 'draft' ,time__gte = sdate ,time__lte = edate )
162+ data ['docevents' ] = DocEvent .objects .filter (doc__type = 'draft' ,time__gte = sdate ,time__lt = edate )
168163 data ['action_events' ] = data ['docevents' ].filter (type = 'iesg_approved' )
169164 data ['lc_events' ] = data ['docevents' ].filter (type = 'sent_last_call' )
170165
171166 data ['new_groups' ] = Group .objects .filter (type = 'wg' ,
172167 groupevent__changestategroupevent__state = 'active' ,
173168 groupevent__time__gte = sdate ,
174- groupevent__time__lte = edate )
169+ groupevent__time__lt = edate )
175170
176171 data ['concluded_groups' ] = Group .objects .filter (type = 'wg' ,
177172 groupevent__changestategroupevent__state = 'conclude' ,
178173 groupevent__time__gte = sdate ,
179- groupevent__time__lte = edate )
174+ groupevent__time__lt = edate )
180175
181176 data ['new_docs' ] = Document .objects .filter (type = 'draft' ).filter (docevent__type = 'new_revision' ,
182177 docevent__time__gte = sdate ,
183- docevent__time__lte = edate ).distinct ()
178+ docevent__time__lt = edate ).distinct ()
184179
185180 data ['rfcs' ] = DocEvent .objects .filter (type = 'published_rfc' ,
186181 doc__type = 'draft' ,
187182 time__gte = sdate ,
188- time__lte = edate )
183+ time__lt = edate )
189184
190185 # attach the ftp URL for use in the template
191186 for event in data ['rfcs' ]:
@@ -553,12 +548,11 @@ def gen_progress(context, final=True):
553548 '''
554549 meeting = context ['meeting' ]
555550
556- # proceedings are run sometime after the meeting, so end date = the previous meeting
551+ # proceedings are run sometime after the meeting, so end date = the passed meeting
557552 # date and start date = the date of the meeting before that
558- now = datetime .date .today ()
559- meetings = Meeting .objects .filter (type = 'ietf' ,date__lt = now ).order_by ('-date' )
560- start_date = meetings [1 ].date
561- end_date = meetings [0 ].date
553+ previous_meetings = Meeting .objects .filter (type = 'ietf' ,date__lt = meeting .date ).order_by ('-date' )
554+ start_date = previous_meetings [0 ].date
555+ end_date = meeting .date
562556 data = get_progress_stats (start_date ,end_date )
563557 data ['meeting' ] = meeting
564558 data ['final' ] = final
0 commit comments