@@ -99,7 +99,8 @@ def mycomp(timeslot):
9999def 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