@@ -104,7 +104,7 @@ def get_meeting_date (self,offset):
104104 return self .date + datetime .timedelta (days = offset )
105105
106106 def end_date (self ):
107- if self .type . slug == 'ietf' :
107+ if self .type_id == 'ietf' :
108108 return self .get_meeting_date (5 )
109109 else :
110110 # TODO: Once interims have timeslots assigned,
@@ -279,7 +279,9 @@ def updated(self):
279279 return ts
280280
281281 def previous_meeting (self ):
282- return Meeting .objects .filter (type = self .type ,date__lt = self .date ).order_by ('-date' ).first ()
282+ if not hasattr (self , "_previous_meeting_cache" ):
283+ self ._previous_meeting_cache = Meeting .objects .filter (type_id = self .type_id ,date__lt = self .date ).order_by ('-date' ).first ()
284+ return self ._previous_meeting_cache
283285
284286 class Meta :
285287 ordering = ["-date" , "id" ]
@@ -1043,11 +1045,10 @@ def drafts(self):
10431045 return list (self .materials .filter (type = 'draft' ))
10441046
10451047 def all_meeting_sessions_for_group (self ):
1046- #sessions = [s for s in self.meeting.session_set.filter(group=self.group,type=self.type) if s.official_timeslotassignment()]
1047- #sessions = sorted(sessions, key = lambda x: x.official_timeslotassignment().timeslot.time)
1048- assignments = self .timeslotassignments .filter (schedule = self .meeting .agenda ).order_by ('timeslot__time' )
1049- sessions = [ a .session for a in assignments ]
1050- return sessions
1048+ if not hasattr (self , "_all_meeting_sessions_for_group_cache" ):
1049+ assignments = self .timeslotassignments .filter (schedule_id = self .meeting .agenda_id ).order_by ('timeslot__time' )
1050+ self ._all_meeting_sessions_for_group_cache = [ a .session for a in assignments ]
1051+ return self ._all_meeting_sessions_for_group_cache
10511052
10521053 def all_meeting_recordings (self ):
10531054 recordings = []
0 commit comments