4949from django .http import HttpResponse
5050from django .shortcuts import render , redirect
5151from django .contrib .sites .models import Site
52+ #from django.views.decorators.cache import cache_page
53+ #from django.views.decorators.vary import vary_on_cookie
5254
53-
54- from ietf .doc .models import Document , State , TelechatDocEvent , LastCallDocEvent , ConsensusDocEvent , DocEvent , IESG_BALLOT_ACTIVE_STATES
55+ from ietf .doc .models import Document , State , LastCallDocEvent , ConsensusDocEvent , DocEvent , IESG_BALLOT_ACTIVE_STATES
5556from ietf .doc .utils import update_telechat , augment_events_with_revision
5657from ietf .group .models import GroupMilestone , Role
5758from ietf .iesg .agenda import agenda_data , agenda_sections , fill_in_agenda_docs , get_agenda_date
5859from ietf .iesg .models import TelechatDate
5960from ietf .iesg .utils import telechat_page_count
6061from ietf .ietfauth .utils import has_role , role_required , user_is_person
6162from ietf .person .models import Person
62- from ietf .doc .utils_search import fill_in_document_table_attributes
63+ from ietf .doc .utils_search import fill_in_document_table_attributes , fill_in_telechat_date
6364
6465def review_decisions (request , year = None ):
6566 events = DocEvent .objects .filter (type__in = ("iesg_disapproved" , "iesg_approved" ))
@@ -288,8 +289,11 @@ def agenda_package(request, date=None):
288289def agenda_documents_txt (request ):
289290 dates = list (TelechatDate .objects .active ().order_by ('date' ).values_list ("date" , flat = True )[:4 ])
290291
292+ all_docs = Document .objects .filter (docevent__telechatdocevent__telechat_date__in = dates ).distinct ()
291293 docs = []
292- for d in Document .objects .filter (docevent__telechatdocevent__telechat_date__in = dates ).distinct ():
294+ fill_in_telechat_date (all_docs )
295+
296+ for d in all_docs :
293297 date = d .telechat_date ()
294298 if date in dates :
295299 d .computed_telechat_date = date
@@ -358,11 +362,13 @@ def agenda_documents(request):
358362 dates = list (TelechatDate .objects .active ().order_by ('date' ).values_list ("date" , flat = True )[:4 ])
359363
360364 docs_by_date = dict ((d , []) for d in dates )
361- for doc in (Document .objects
362- .filter (docevent__telechatdocevent__telechat_date__in = dates )
363- .select_related ('stream' , 'group' , 'intended_std_level' )
364- .distinct ()):
365- d = doc .latest_event (TelechatDocEvent , type = "scheduled_for_telechat" ).telechat_date
365+ docs = Document .objects .filter (docevent__telechatdocevent__telechat_date__in = dates ).distinct ()
366+ docs = docs .select_related ("ad" , "std_level" , "intended_std_level" , "group" , "stream" , "shepherd" , )
367+ # No prefetch-related -- turns out not to be worth it
368+
369+ fill_in_telechat_date (docs )
370+ for doc in docs :
371+ d = doc .telechat_date ()
366372 if d in docs_by_date :
367373 docs_by_date [d ].append (doc )
368374
@@ -380,13 +386,13 @@ def agenda_documents(request):
380386 sections = agenda_sections ()
381387 # augment the docs with the search attributes, since we're using
382388 # the search_result_row view to display them (which expects them)
383- fill_in_document_table_attributes (docs_by_date [date ])
389+ fill_in_document_table_attributes (docs_by_date [date ], have_telechat_date = True )
384390 fill_in_agenda_docs (date , sections , docs_by_date [date ])
385391 pages = telechat_page_count (docs = docs_by_date [date ]).for_approval
386392
387393 telechats .append ({
388- "date" :date ,
389- "pages" :pages ,
394+ "date" : date ,
395+ "pages" : pages ,
390396 "sections" : sorted ((num , section ) for num , section in sections .iteritems ()
391397 if "2" <= num < "5" )
392398 })
@@ -417,6 +423,7 @@ def past_documents(request):
417423 doc .milestones = doc .groupmilestone_set .filter (state = "active" ).order_by ("time" ).select_related ("group" )
418424 doc .blocking_positions = blocking_positions
419425 doc .telechat = doc .previous_telechat_date ()
426+ doc .ballot = ballot
420427
421428 if doc .telechat :
422429 docs .append (doc )
@@ -431,9 +438,11 @@ def past_documents(request):
431438def telechat_docs_tarfile (request , date ):
432439 date = get_agenda_date (date )
433440
441+ all_docs = Document .objects .filter (docevent__telechatdocevent__telechat_date = date ).distinct ()
442+ fill_in_telechat_date (all_docs )
434443 docs = []
435- for d in Document . objects . filter ( docevent__telechatdocevent__telechat_date = date ). distinct () :
436- if d .latest_event ( TelechatDocEvent , type = "scheduled_for_telechat" ). telechat_date == date :
444+ for d in all_docs :
445+ if d .telechat_date () == date :
437446 docs .append (d )
438447
439448 response = HttpResponse (content_type = 'application/octet-stream' )
@@ -491,6 +500,7 @@ def discusses(request):
491500 doc .for_me = user_is_person (request .user , doc .ad )
492501 doc .milestones = doc .groupmilestone_set .filter (state = "active" ).order_by ("time" ).select_related ("group" )
493502 doc .blocking_positions = blocking_positions
503+ doc .ballot = ballot
494504
495505 docs .append (doc )
496506
0 commit comments