From 5528a04cd91cd03e72126cb322d3c66ad142d9ee Mon Sep 17 00:00:00 2001 From: Bill Fenner Date: Wed, 23 May 2007 16:56:07 +0000 Subject: [PATCH] Use get() instead of filter()[0]. This results in a better exception on failure (DoesNotExist instead of IndexError). Call the database query once and store it in a temp variable instead of doing the same query twice. Handle day_id=NULL for the morning beverages/breakfast time. Use the DoesNotExist exception instead of a generic except: for the area - except: is likely to hide things that you didn't expect. - Legacy-Id: 156 --- ietf/meeting/views.py | 4 ++-- ietf/proceedings/models.py | 16 ++++++++++------ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/ietf/meeting/views.py b/ietf/meeting/views.py index 343db9a7a..8094df20b 100644 --- a/ietf/meeting/views.py +++ b/ietf/meeting/views.py @@ -32,9 +32,9 @@ def show_html_materials(request, meeting_num=None): return render("meeting/list.html",{}) def show_html_agenda(request, meeting_num=None): - meeting_info=Meeting.objects.filter(meeting_num=meeting_num)[0] + meeting_info=Meeting.objects.get(meeting_num=meeting_num) nonsession_info=NonSession.objects.filter(meeting=meeting_num,day_id__gte='0').order_by("day_id") - meetingvenue_info=MeetingVenue.objects.filter(meeting_num=meeting_num)[0] + meetingvenue_info=MeetingVenue.objects.get(meeting_num=meeting_num) queryset_list=MeetingTime.objects.filter(meeting=meeting_num).exclude(day_id=0).order_by("day_id","time_desc") op_ad_plenary_agenda = "17:00 Welcome\n17:05 NOC report (Wieslaw Blysz, Siemens Networks))\n Host presentation (Georg Haubs, CTO Innovations of Siemens Networks)\n 17:20 IETF Chair and IAD short reports\n 17:30 Jonathan B. Postel award\n 17:40 NomCom Chair (Andrew Lange)\n 17:45 Open Microphone\n 19:30 (latest) end" #only for testing. In production, this text will be pulled from actualy agenda file #queryset_list=WgMeetingSession.objects.filter(meeting_num=meeting_num, group_acronym_id > -3) diff --git a/ietf/proceedings/models.py b/ietf/proceedings/models.py index f3c131031..2cca6440e 100644 --- a/ietf/proceedings/models.py +++ b/ietf/proceedings/models.py @@ -44,7 +44,7 @@ class ResolveAcronym(object): else: try: area = AreaGroup.objects.get(group=self.group_acronym_id).area.area_acronym.acronym - except: + except AreaGroup.DoesNotExist: area = "???" return area @@ -167,15 +167,19 @@ class MeetingTime(models.Model): def meeting_date(self): return self.meeting.get_meeting_date(self.day_id) def reg_info(self): - return "%s %s" % (NonSession.objects.filter(meeting=self.meeting, day_id=self.day_id,non_session_ref=1)[0].time_desc, NonSession.objects.filter(meeting=self.meeting, day_id=self.day_id,non_session_ref=1)[0].non_session_ref) + reg_info = NonSession.objects.get(meeting=self.meeting, day_id=self.day_id, non_session_ref=1) + return "%s %s" % (reg_info.time_desc, reg_info.non_session_ref) def morning_br_info(self): - return "%s %s" % (NonSession.objects.filter(meeting=self.meeting, non_session_ref=2)[0].time_desc, NonSession.objects.filter(meeting=self.meeting, non_session_ref=2)[0].non_session_ref) + br_info = NonSession.objects.get(models.Q(day_id=self.day_id) | models.Q(day_id__isnull=True), meeting=self.meeting, non_session_ref=2) + return "%s %s" % (br_info.time_desc, br_info.non_session_ref) def lunch_br_info(self): - return NonSession.objects.filter(meeting=self.meeting, non_session_ref=3)[0].time_desc + return NonSession.objects.get(meeting=self.meeting, non_session_ref=3).time_desc def an_br1_info(self): - return "%s %s" % (NonSession.objects.filter(meeting=self.meeting, non_session_ref=4)[0].time_desc, NonSession.objects.filter(meeting=self.meeting, non_session_ref=4)[0].non_session_ref) + an_br1_info = NonSession.objects.get(meeting=self.meeting, day_id=self.day_id, non_session_ref=4) + return "%s %s" % (an_br1_info.time_desc, an_br1_info.non_session_ref) def an_br2_info(self): - return "%s %s" % (NonSession.objects.filter(meeting=self.meeting, non_session_ref=5)[0].time_desc, NonSession.objects.filter(meeting=self.meeting, non_session_ref=5)[0].non_session_ref) + an_br2_info = NonSession.objects.get(meeting=self.meeting, day_id=self.day_id, non_session_ref=5) + return "%s %s" % (an_br2_info.time_desc, an_br2_info.non_session_ref) class Meta: db_table = 'meeting_times' class Admin: