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
=== modified file 'summit/schedule/render.py'
--- summit/schedule/render.py 2011-09-30 21:43:02 +0000
+++ summit/schedule/render.py 2011-10-17 19:25:26 +0000
@@ -65,7 +65,7 @@
65 @classmethod65 @classmethod
66 def from_request(cls, request, summit,66 def from_request(cls, request, summit,
67 attendee=None, date=None, room=None, track=None,67 attendee=None, date=None, room=None, track=None,
68 show_private=False):68 show_private=False, rooms=None):
69 edit = False69 edit = False
70 if summit.state != 'public' \70 if summit.state != 'public' \
71 and 'edit' in request.GET:71 and 'edit' in request.GET:
@@ -91,6 +91,11 @@
91 if room is not None:91 if room is not None:
92 room = room92 room = room
93 rooms = [room]93 rooms = [room]
94 print "doing one room"
95 print rooms
96 if rooms is not None:
97 print "doing multiple rooms"
98 print rooms
94 else:99 else:
95 room = None100 room = None
96 rooms = summit.open_rooms()101 rooms = summit.open_rooms()
@@ -1125,7 +1130,7 @@
11251130
11261131
1127def schedule_factory(1132def schedule_factory(
1128 request, summit, attendee=None, date=None, room=None, track=None):1133 request, summit, attendee=None, date=None, room=None, track=None, rooms=None):
1129 """Create and return a Schedule instance with the given arguments.1134 """Create and return a Schedule instance with the given arguments.
11301135
1131 If settings.LINARO_ONLY is True, create a LinaroSchedule instance instead.1136 If settings.LINARO_ONLY is True, create a LinaroSchedule instance instead.
@@ -1134,4 +1139,4 @@
1134 if settings.LINARO_ONLY:1139 if settings.LINARO_ONLY:
1135 schedule_class = LinaroSchedule1140 schedule_class = LinaroSchedule
1136 return schedule_class.from_request(1141 return schedule_class.from_request(
1137 request, summit, attendee, room=room, date=date, track=track)1142 request, summit, attendee, room=room, date=date, track=track, rooms=rooms)
11381143
=== modified file 'summit/schedule/views.py'
--- summit/schedule/views.py 2011-09-21 12:08:21 +0000
+++ summit/schedule/views.py 2011-10-17 19:25:26 +0000
@@ -136,6 +136,40 @@
136 context_instance=RequestContext(request))136 context_instance=RequestContext(request))
137137
138@summit_required138@summit_required
139def by_date_roomlist(request, summit, attendee, date):
140 roomnames=request.META['QUERY_STRING'].split(',')
141 rooms=[]
142 for roomname in roomnames:
143 try:
144 rooms.append(summit.room_set.get(tracks__title__iexact=roomname))
145 except (ObjectDoesNotExist, MultipleObjectsReturned):
146 try:
147 rooms.append(get_object_or_404(summit.room_set, name__exact=roomname))
148 except:
149 print "room name not found, but other rooms might be OK"
150
151 schedule = schedule_factory(request, summit, attendee, rooms=rooms, date=date)
152 if request.method == 'POST':
153 return schedule.save_change()
154 else:
155 viewdate = datetime.datetime.strptime(date, "%Y-%m-%d")
156 day = datetime.timedelta(days=1)
157 print viewdate
158 schedule.calculate()
159
160 context = {
161 'summit': summit,
162 'attendee': attendee,
163 'schedule': schedule,
164 'autoreload': 'reload' in request.GET,
165 'nextday': viewdate + day,
166 'previousday': viewdate - day,
167 }
168
169 return render_to_response("schedule/schedule.html", context,
170 context_instance=RequestContext(request))
171
172@summit_required
139def next_session(request, summit, attendee):173def next_session(request, summit, attendee):
140 schedule = Schedule.from_request(request, summit, attendee)174 schedule = Schedule.from_request(request, summit, attendee)
141 schedule.nextonly = True175 schedule.nextonly = True
@@ -198,6 +232,37 @@
198 context_instance=RequestContext(request))232 context_instance=RequestContext(request))
199233
200@summit_required234@summit_required
235
236def by_roomlist(request, summit, attendee):
237 roomnames=request.META['QUERY_STRING'].split(',')
238 rooms=[]
239 for roomname in roomnames:
240 try:
241 rooms.append(summit.room_set.get(tracks__title__iexact=roomname))
242 except (ObjectDoesNotExist, MultipleObjectsReturned):
243 try:
244 rooms.append(get_object_or_404(summit.room_set, name__exact=roomname))
245 except:
246 print "room name not found, but other rooms might be OK"
247
248 schedule = schedule_factory(request, summit, attendee, rooms=rooms)
249 if request.method == 'POST':
250 return schedule.save_change()
251 else:
252 schedule.calculate()
253
254 context = {
255 'summit': summit,
256 'attendee': attendee,
257 'schedule': schedule,
258 'autoreload': 'reload' in request.GET,
259 }
260
261 return render_to_response("schedule/schedule.html", context,
262 context_instance=RequestContext(request))
263
264
265@summit_required
201def meeting(request, summit, attendee, meeting_id, meeting_slug):266def meeting(request, summit, attendee, meeting_id, meeting_slug):
202 meeting = get_object_or_404(summit.meeting_set, id=meeting_id)267 meeting = get_object_or_404(summit.meeting_set, id=meeting_id)
203 agendaitems=meeting.agenda_set.all()268 agendaitems=meeting.agenda_set.all()
204269
=== modified file 'summit/urls.py'
--- summit/urls.py 2011-09-19 17:04:05 +0000
+++ summit/urls.py 2011-10-17 19:25:26 +0000
@@ -25,8 +25,9 @@
25urlpatterns = patterns('',25urlpatterns = patterns('',
26 (r'^$', 'summit.schedule.views.index'),26 (r'^$', 'summit.schedule.views.index'),
27 (r'^openid/', include('django_openid_auth.urls')),27 (r'^openid/', include('django_openid_auth.urls')),
28 (r'^admin/', include(admin.site.urls) ),
2829
29 (r'^admin/(.*)$', admin.site.root),30 #(r'^admin/(.*)$', admin.site.urls),
30 31
31 (r'^api/', include('services.urls')),32 (r'^api/', include('services.urls')),
32)33)
@@ -65,6 +66,8 @@
65 (r'^(?P<summit_name>[\w-]+)/next$', 'next_session'),66 (r'^(?P<summit_name>[\w-]+)/next$', 'next_session'),
66 (r'^(?P<summit_name>[\w-]+)/(?P<date>[\d-]+)/$', 'by_date'),67 (r'^(?P<summit_name>[\w-]+)/(?P<date>[\d-]+)/$', 'by_date'),
67 (r'^(?P<summit_name>[\w-]+)/(?P<room_name>[%+\.\w-]+)/$', 'by_room'),68 (r'^(?P<summit_name>[\w-]+)/(?P<room_name>[%+\.\w-]+)/$', 'by_room'),
69 (r'^(?P<summit_name>[\w-]+)/roomlist$', 'by_roomlist'),
70 (r'^(?P<summit_name>[\w-]+)/roomlist/(?P<date>[\d-]+)/$', 'by_date_roomlist'),
68 (r'^(?P<summit_name>[\w-]+)/track/(?P<track_slug>[%+\.\w-]+)/$', 'by_track'),71 (r'^(?P<summit_name>[\w-]+)/track/(?P<track_slug>[%+\.\w-]+)/$', 'by_track'),
69 (r'^(?P<summit_name>[\w-]+)/meeting/(?P<meeting_id>\d+)/(?P<meeting_slug>[%+\.\w-]+)/$', 'meeting'),72 (r'^(?P<summit_name>[\w-]+)/meeting/(?P<meeting_id>\d+)/(?P<meeting_slug>[%+\.\w-]+)/$', 'meeting'),
70 (r'^(?P<summit_name>[\w-]+)\.csv$', 'csv'),73 (r'^(?P<summit_name>[\w-]+)\.csv$', 'csv'),

Subscribers

People subscribed via source and target branches