Merge lp:~alanbell/summit/roomlists into lp:summit

Proposed by Alan Bell
Status: Rejected
Rejected by: Chris Johnston
Proposed branch: lp:~alanbell/summit/roomlists
Merge into: lp:summit
Diff against target: 146 lines (+77/-4)
3 files modified
summit/schedule/render.py (+8/-3)
summit/schedule/views.py (+65/-0)
summit/urls.py (+4/-1)
To merge this branch: bzr merge lp:~alanbell/summit/roomlists
Reviewer Review Type Date Requested Status
Michael Hall (community) Disapprove
Review via email: mp+79603@code.launchpad.net

Description of the change

fix for lp:860683 which adds new roomlist functionality to display schedule for a list of rooms, this will allow a day of schedule to be displayed across two monitors.

To post a comment you must log in.
Revision history for this message
Alan Bell (alanbell) wrote :

this bit may also fix it for django in Oneiric, and may break it for prior versions:

+ (r'^admin/', include(admin.site.urls) ),

- (r'^admin/(.*)$', admin.site.root),
+ #(r'^admin/(.*)$', admin.site.urls),

Revision history for this message
Michael Hall (mhall119) wrote :
review: Disapprove

Unmerged revisions

194. By Alan Bell

allow display of schedule for an arbitary room list

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'summit/schedule/render.py'
2--- summit/schedule/render.py 2011-09-30 21:43:02 +0000
3+++ summit/schedule/render.py 2011-10-17 19:25:26 +0000
4@@ -65,7 +65,7 @@
5 @classmethod
6 def from_request(cls, request, summit,
7 attendee=None, date=None, room=None, track=None,
8- show_private=False):
9+ show_private=False, rooms=None):
10 edit = False
11 if summit.state != 'public' \
12 and 'edit' in request.GET:
13@@ -91,6 +91,11 @@
14 if room is not None:
15 room = room
16 rooms = [room]
17+ print "doing one room"
18+ print rooms
19+ if rooms is not None:
20+ print "doing multiple rooms"
21+ print rooms
22 else:
23 room = None
24 rooms = summit.open_rooms()
25@@ -1125,7 +1130,7 @@
26
27
28 def schedule_factory(
29- request, summit, attendee=None, date=None, room=None, track=None):
30+ request, summit, attendee=None, date=None, room=None, track=None, rooms=None):
31 """Create and return a Schedule instance with the given arguments.
32
33 If settings.LINARO_ONLY is True, create a LinaroSchedule instance instead.
34@@ -1134,4 +1139,4 @@
35 if settings.LINARO_ONLY:
36 schedule_class = LinaroSchedule
37 return schedule_class.from_request(
38- request, summit, attendee, room=room, date=date, track=track)
39+ request, summit, attendee, room=room, date=date, track=track, rooms=rooms)
40
41=== modified file 'summit/schedule/views.py'
42--- summit/schedule/views.py 2011-09-21 12:08:21 +0000
43+++ summit/schedule/views.py 2011-10-17 19:25:26 +0000
44@@ -136,6 +136,40 @@
45 context_instance=RequestContext(request))
46
47 @summit_required
48+def by_date_roomlist(request, summit, attendee, date):
49+ roomnames=request.META['QUERY_STRING'].split(',')
50+ rooms=[]
51+ for roomname in roomnames:
52+ try:
53+ rooms.append(summit.room_set.get(tracks__title__iexact=roomname))
54+ except (ObjectDoesNotExist, MultipleObjectsReturned):
55+ try:
56+ rooms.append(get_object_or_404(summit.room_set, name__exact=roomname))
57+ except:
58+ print "room name not found, but other rooms might be OK"
59+
60+ schedule = schedule_factory(request, summit, attendee, rooms=rooms, date=date)
61+ if request.method == 'POST':
62+ return schedule.save_change()
63+ else:
64+ viewdate = datetime.datetime.strptime(date, "%Y-%m-%d")
65+ day = datetime.timedelta(days=1)
66+ print viewdate
67+ schedule.calculate()
68+
69+ context = {
70+ 'summit': summit,
71+ 'attendee': attendee,
72+ 'schedule': schedule,
73+ 'autoreload': 'reload' in request.GET,
74+ 'nextday': viewdate + day,
75+ 'previousday': viewdate - day,
76+ }
77+
78+ return render_to_response("schedule/schedule.html", context,
79+ context_instance=RequestContext(request))
80+
81+@summit_required
82 def next_session(request, summit, attendee):
83 schedule = Schedule.from_request(request, summit, attendee)
84 schedule.nextonly = True
85@@ -198,6 +232,37 @@
86 context_instance=RequestContext(request))
87
88 @summit_required
89+
90+def by_roomlist(request, summit, attendee):
91+ roomnames=request.META['QUERY_STRING'].split(',')
92+ rooms=[]
93+ for roomname in roomnames:
94+ try:
95+ rooms.append(summit.room_set.get(tracks__title__iexact=roomname))
96+ except (ObjectDoesNotExist, MultipleObjectsReturned):
97+ try:
98+ rooms.append(get_object_or_404(summit.room_set, name__exact=roomname))
99+ except:
100+ print "room name not found, but other rooms might be OK"
101+
102+ schedule = schedule_factory(request, summit, attendee, rooms=rooms)
103+ if request.method == 'POST':
104+ return schedule.save_change()
105+ else:
106+ schedule.calculate()
107+
108+ context = {
109+ 'summit': summit,
110+ 'attendee': attendee,
111+ 'schedule': schedule,
112+ 'autoreload': 'reload' in request.GET,
113+ }
114+
115+ return render_to_response("schedule/schedule.html", context,
116+ context_instance=RequestContext(request))
117+
118+
119+@summit_required
120 def meeting(request, summit, attendee, meeting_id, meeting_slug):
121 meeting = get_object_or_404(summit.meeting_set, id=meeting_id)
122 agendaitems=meeting.agenda_set.all()
123
124=== modified file 'summit/urls.py'
125--- summit/urls.py 2011-09-19 17:04:05 +0000
126+++ summit/urls.py 2011-10-17 19:25:26 +0000
127@@ -25,8 +25,9 @@
128 urlpatterns = patterns('',
129 (r'^$', 'summit.schedule.views.index'),
130 (r'^openid/', include('django_openid_auth.urls')),
131+ (r'^admin/', include(admin.site.urls) ),
132
133- (r'^admin/(.*)$', admin.site.root),
134+ #(r'^admin/(.*)$', admin.site.urls),
135
136 (r'^api/', include('services.urls')),
137 )
138@@ -65,6 +66,8 @@
139 (r'^(?P<summit_name>[\w-]+)/next$', 'next_session'),
140 (r'^(?P<summit_name>[\w-]+)/(?P<date>[\d-]+)/$', 'by_date'),
141 (r'^(?P<summit_name>[\w-]+)/(?P<room_name>[%+\.\w-]+)/$', 'by_room'),
142+ (r'^(?P<summit_name>[\w-]+)/roomlist$', 'by_roomlist'),
143+ (r'^(?P<summit_name>[\w-]+)/roomlist/(?P<date>[\d-]+)/$', 'by_date_roomlist'),
144 (r'^(?P<summit_name>[\w-]+)/track/(?P<track_slug>[%+\.\w-]+)/$', 'by_track'),
145 (r'^(?P<summit_name>[\w-]+)/meeting/(?P<meeting_id>\d+)/(?P<meeting_slug>[%+\.\w-]+)/$', 'meeting'),
146 (r'^(?P<summit_name>[\w-]+)\.csv$', 'csv'),

Subscribers

People subscribed via source and target branches