From 6a9c7d1dbba27591c7b2895fb8387dee226ace26 Mon Sep 17 00:00:00 2001 From: Adam Roach Date: Sat, 24 Mar 2012 14:16:23 +0000 Subject: [PATCH] Ported week view over to use the new meeting data model - Legacy-Id: 4207 --- ietf/meeting/models.py | 9 +++++ ietf/meeting/views.py | 47 ++++++++++++++----------- ietf/proceedings/models.py | 16 +++++++++ ietf/templates/meeting/week-view.html | 49 +++++++++++++++------------ 4 files changed, 81 insertions(+), 40 deletions(-) diff --git a/ietf/meeting/models.py b/ietf/meeting/models.py index e9316c57b..2016eb4d0 100644 --- a/ietf/meeting/models.py +++ b/ietf/meeting/models.py @@ -105,6 +105,9 @@ class TimeSlot(models.Model): return u"%s: %s-%s %s, %s" % (self.meeting.number, self.time.strftime("%m-%d %H:%M"), (self.time + self.duration).strftime("%H:%M"), self.name, location) + def end_time(self): + return self.time + self.duration + def get_location(self): location = self.location if location: @@ -152,6 +155,12 @@ class Session(models.Model): materials = models.ManyToManyField(Document, blank=True) + def agenda(self): + try: + return self.materials.get(type="agenda",states__type="agenda",states__slug="active") + except Exception, e: + return None + def __unicode__(self): if self.meeting.type_id == "interim": return self.meeting.number diff --git a/ietf/meeting/views.py b/ietf/meeting/views.py index dbcd7d4d6..e07c5c89a 100644 --- a/ietf/meeting/views.py +++ b/ietf/meeting/views.py @@ -24,12 +24,16 @@ from ietf.idtracker.models import InternetDraft from ietf.idrfc.idrfc_wrapper import IdWrapper from ietf.utils.pipe import pipe -from ietf.proceedings.models import Meeting, MeetingTime, WgMeetingSession, MeetingVenue, IESGHistory, Proceeding, Switches, WgProceedingsActivities, SessionConflict - -from ietf.group.models import Group from ietf.utils.history import find_history_active_at from ietf.doc.models import Document, State +# Old model -- needs to be removed +from ietf.proceedings.models import Meeting as OldMeeting, MeetingTime, WgMeetingSession, MeetingVenue, IESGHistory, Proceeding, Switches, WgProceedingsActivities, SessionConflict + +# New models +from ietf.meeting.models import Meeting, Room, TimeSlot, Constraint, Session +from ietf.group.models import Group + @decorator_from_middleware(GZipMiddleware) def show_html_materials(request, meeting_num=None): @@ -91,7 +95,7 @@ def show_html_materials(request, meeting_num=None): context_instance=RequestContext(request)) def current_materials(request): - meeting = Meeting.objects.order_by('-meeting_num')[0] + meeting = OldMeeting.objects.order_by('-meeting_num')[0] return HttpResponseRedirect( reverse(show_html_materials, args=[meeting.meeting_num]) ) def get_plenary_agenda(meeting_num, id): @@ -118,10 +122,10 @@ def agenda_info(num=None): try: timeslots = MeetingTime.objects.select_related().filter(meeting=n).order_by("day_id", "time_desc") update = Switches.objects.get(id=1) - meeting= Meeting.objects.get(meeting_num=n) + meeting= OldMeeting.objects.get(meeting_num=n) venue = MeetingVenue.objects.get(meeting_num=n) break - except (MeetingTime.DoesNotExist, Switches.DoesNotExist, Meeting.DoesNotExist, MeetingVenue.DoesNotExist): + except (MeetingTime.DoesNotExist, Switches.DoesNotExist, OldMeeting.DoesNotExist, MeetingVenue.DoesNotExist): continue else: raise Http404("No meeting information for meeting %s available" % num) @@ -136,10 +140,10 @@ def agenda_info(num=None): def agenda_infoREDESIGN(num=None): try: if num != None: - meeting = Meeting.objects.get(number=num) + meeting = OldMeeting.objects.get(number=num) else: - meeting = Meeting.objects.all().order_by('-date')[:1].get() - except Meeting.DoesNotExist: + meeting = OldMeeting.objects.all().order_by('-date')[:1].get() + except OldMeeting.DoesNotExist: raise Http404("No meeting information for meeting %s available" % num) # now go through the timeslots, only keeping those that are @@ -413,19 +417,24 @@ def session_draft_pdf(request, num, session): os.unlink(pdfn) return HttpResponse(pdf_contents, mimetype="application/pdf") +def get_meeting (num=None): + try: + if num != None: + meeting = OldMeeting.objects.get(number=num) + else: + meeting = OldMeeting.objects.all().order_by('-date')[:1].get() + except OldMeeting.DoesNotExist: + raise Http404("No meeting information for meeting %s available" % num) + return meeting + def week_view(request, num=None): - timeslots, update, meeting, venue, ads, plenaryw_agenda, plenaryt_agenda = agenda_info(num) - wgs = IETFWG.objects.filter(status=IETFWG.ACTIVE).order_by('group_acronym__acronym') - rgs = IRTF.objects.all().order_by('acronym') - areas = Area.objects.filter(status=Area.ACTIVE).order_by('area_acronym__acronym') - conflicts = SessionConflict.objects.filter(meeting_num=meeting.meeting_num) + #timeslots, update, meeting, venue, ads, plenaryw_agenda, plenaryt_agenda = agenda_info(num) + meeting = get_meeting(num) + timeslots = TimeSlot.objects.filter(meeting = meeting.number) + template = "meeting/week-view.html" return render_to_response(template, - {"timeslots":timeslots, "update":update, "meeting":meeting, - "venue":venue, "ads":ads, "plenaryw_agenda":plenaryw_agenda, - "plenaryt_agenda":plenaryt_agenda, "wg_list" : wgs, - "rg_list" : rgs, "area_list" : areas, "conflicts":conflicts}, - context_instance=RequestContext(request)) + {"timeslots":timeslots,"render_types":["Session","Other","Break","Plenary"]}, context_instance=RequestContext(request)) def ical_agenda(request, num=None): timeslots, update, meeting, venue, ads, plenaryw_agenda, plenaryt_agenda = agenda_info(num) diff --git a/ietf/proceedings/models.py b/ietf/proceedings/models.py index 2edaffd75..5603c4f03 100644 --- a/ietf/proceedings/models.py +++ b/ietf/proceedings/models.py @@ -1,5 +1,21 @@ # Copyright The IETF Trust 2007, All Rights Reserved +######################################################################## +######################################################################## +######################################################################## +##### ##### +##### WARNING WARNING WARNING WARNING WARNING WARNING WARNING ##### +##### ##### +##### These models are old, deprecated, and should not be ##### +##### used. Use the models in the meetings directory ##### +##### instead. ##### +##### ##### +##### WARNING WARNING WARNING WARNING WARNING WARNING WARNING ##### +##### ##### +######################################################################## +######################################################################## +######################################################################## + from django.db import models from django.conf import settings from ietf.idtracker.models import Acronym, PersonOrOrgInfo, IRTF, AreaGroup, Area, IETFWG diff --git a/ietf/templates/meeting/week-view.html b/ietf/templates/meeting/week-view.html index d925ce449..13469bc9c 100644 --- a/ietf/templates/meeting/week-view.html +++ b/ietf/templates/meeting/week-view.html @@ -7,10 +7,16 @@