1+ # Copyright The IETF Trust 2013-2019, All Rights Reserved
12import json
23
34from django .shortcuts import get_object_or_404 , redirect
78from django .views .decorators .http import require_POST
89
910from ietf .ietfauth .utils import role_required , has_role
10- from ietf .meeting .helpers import get_meeting , get_schedule , agenda_permissions , get_person_by_email , get_schedule_by_name
11+ from ietf .meeting .helpers import get_meeting , get_schedule , schedule_permissions , get_person_by_email , get_schedule_by_name
1112from ietf .meeting .models import TimeSlot , Session , Schedule , Room , Constraint , SchedTimeSessAssignment , ResourceAssociation
12- from ietf .meeting .views import edit_timeslots , edit_agenda
13+ from ietf .meeting .views import edit_timeslots , edit_schedule
1314
1415import debug # pyflakes:ignore
1516
@@ -43,8 +44,8 @@ def get_meeting_schedule(num, owner, name):
4344
4445
4546
46- # should asking if an agenda is read-only require any kind of permission?
47- def agenda_permission_api (request , num , owner , name ):
47+ # should asking if an schedule is read-only require any kind of permission?
48+ def schedule_permission_api (request , num , owner , name ):
4849 meeting = get_meeting (num )
4950 person = get_person_by_email (owner )
5051 schedule = get_schedule_by_name (meeting , person , name )
@@ -56,7 +57,7 @@ def agenda_permission_api(request, num, owner, name):
5657 owner_href = ""
5758
5859 if schedule is not None :
59- cansee ,canedit ,secretariat = agenda_permissions (meeting , schedule , request .user )
60+ cansee ,canedit ,secretariat = schedule_permissions (meeting , schedule , request .user )
6061 owner_href = request .build_absolute_uri (schedule .owner .json_url ())
6162
6263 if has_role (request .user , "Area Director" ) or secretariat :
@@ -256,39 +257,39 @@ def timeslot_sloturl(request, num=None, slotid=None):
256257 return timeslot_delslot (request , meeting , slotid )
257258
258259#############################################################################
259- ## Agenda List API
260+ ## Schedule List API
260261#############################################################################
261- AgendaEntryForm = modelform_factory (Schedule , exclude = ('meeting' ,'owner' ))
262- EditAgendaEntryForm = modelform_factory (Schedule , exclude = ('meeting' ,'owner' , 'name' ))
262+ ScheduleEntryForm = modelform_factory (Schedule , exclude = ('meeting' ,'owner' ))
263+ EditScheduleEntryForm = modelform_factory (Schedule , exclude = ('meeting' ,'owner' , 'name' ))
263264
264265@role_required ('Area Director' ,'Secretariat' )
265- def agenda_list (request , mtg ):
266- agendas = mtg .schedule_set .all ()
266+ def schedule_list (request , mtg ):
267+ schedules = mtg .schedule_set .all ()
267268 json_array = []
268- for agenda in agendas :
269- json_array .append (agenda .json_dict (request .build_absolute_uri ('/' )))
269+ for schedule in schedules :
270+ json_array .append (schedule .json_dict (request .build_absolute_uri ('/' )))
270271 return HttpResponse (json .dumps (json_array ),
271272 content_type = "application/json" )
272273
273274# duplicates save-as functionality below.
274275@role_required ('Area Director' ,'Secretariat' )
275- def agenda_add (request , meeting ):
276- newagendaform = AgendaEntryForm (request .POST )
277- if not newagendaform .is_valid ():
276+ def schedule_add (request , meeting ):
277+ newscheduleform = ScheduleEntryForm (request .POST )
278+ if not newscheduleform .is_valid ():
278279 return HttpResponse (status = 404 )
279280
280- newagenda = newagendaform .save (commit = False )
281- newagenda .meeting = meeting
282- newagenda .owner = request .user .person
283- newagenda .save ()
281+ newschedule = newscheduleform .save (commit = False )
282+ newschedule .meeting = meeting
283+ newschedule .owner = request .user .person
284+ newschedule .save ()
284285
285286 if "HTTP_ACCEPT" in request .META and "application/json" in request .META ['HTTP_ACCEPT' ]:
286- return redirect (agenda_infourl , meeting .number , newagenda .owner_email (), newagenda .name )
287+ return redirect (schedule_infourl , meeting .number , newschedule .owner_email (), newschedule .name )
287288 else :
288- return redirect (edit_agenda , meeting .number , newagenda .owner_email (), newagenda .name )
289+ return redirect (edit_schedule , meeting .number , newschedule .owner_email (), newschedule .name )
289290
290291@require_POST
291- def agenda_update (request , meeting , schedule ):
292+ def schedule_update (request , meeting , schedule ):
292293 # forms are completely useless for update actions that want to
293294 # accept a subset of values. (huh? we could use required=False)
294295
@@ -297,7 +298,7 @@ def agenda_update(request, meeting, schedule):
297298 if not user .is_authenticated :
298299 return HttpResponse ({'error' :'no permission' }, status = 403 )
299300
300- cansee ,canedit ,secretariat = agenda_permissions (meeting , schedule , request .user )
301+ cansee ,canedit ,secretariat = schedule_permissions (meeting , schedule , request .user )
301302 #read_only = not canedit ## not used
302303
303304 # TODO: Secretariat should always get canedit
@@ -316,53 +317,53 @@ def agenda_update(request, meeting, schedule):
316317 schedule .save ()
317318
318319 # enforce that a non-public schedule can not be the public one.
319- if meeting .agenda == schedule and not schedule .public :
320- meeting .agenda = None
320+ if meeting .schedule == schedule and not schedule .public :
321+ meeting .schedule = None
321322 meeting .save ()
322323
323324 if "HTTP_ACCEPT" in request .META and "application/json" in request .META ['HTTP_ACCEPT' ]:
324325 return HttpResponse (json .dumps (schedule .json_dict (request .build_absolute_uri ('/' ))),
325326 content_type = "application/json" )
326327 else :
327- return redirect (edit_agenda , meeting .number , schedule .owner_email (), schedule .name )
328+ return redirect (edit_schedule , meeting .number , schedule .owner_email (), schedule .name )
328329
329330@role_required ('Secretariat' )
330- def agenda_del (request , meeting , schedule ):
331+ def schedule_del (request , meeting , schedule ):
331332 schedule .delete_assignments ()
332- #debug.log("deleting meeting: %s agenda : %s" % (meeting, meeting.agenda ))
333- if meeting .agenda == schedule :
334- meeting .agenda = None
333+ #debug.log("deleting meeting: %s schedule : %s" % (meeting, meeting.schedule ))
334+ if meeting .schedule == schedule :
335+ meeting .schedule = None
335336 meeting .save ()
336337 schedule .delete ()
337338 return HttpResponse ('{"error":"none"}' , status = 200 )
338339
339- def agenda_infosurl (request , num = None ):
340+ def schedule_infosurl (request , num = None ):
340341 meeting = get_meeting (num )
341342
342343 if request .method == 'GET' :
343- return agenda_list (request , meeting )
344+ return schedule_list (request , meeting )
344345 elif request .method == 'POST' :
345- return agenda_add (request , meeting )
346+ return schedule_add (request , meeting )
346347
347348 # unacceptable action
348349 return HttpResponse (status = 406 )
349350
350- def agenda_infourl (request , num = None , owner = None , name = None ):
351+ def schedule_infourl (request , num = None , owner = None , name = None ):
351352 meeting = get_meeting (num )
352353 person = get_person_by_email (owner )
353354 schedule = get_schedule_by_name (meeting , person , name )
354355 if schedule is None :
355356 raise Http404 ("No meeting information for meeting %s schedule %s available" % (num ,name ))
356357
357- #debug.log("results in agenda : %u / %s" % (schedule.id, request.method))
358+ #debug.log("results in schedule : %u / %s" % (schedule.id, request.method))
358359
359360 if request .method == 'GET' :
360361 return HttpResponse (json .dumps (schedule .json_dict (request .build_absolute_uri ('/' ))),
361362 content_type = "application/json" )
362363 elif request .method == 'POST' :
363- return agenda_update (request , meeting , schedule )
364+ return schedule_update (request , meeting , schedule )
364365 elif request .method == 'DELETE' :
365- return agenda_del (request , meeting , schedule )
366+ return schedule_del (request , meeting , schedule )
366367 else :
367368 return HttpResponse (status = 406 )
368369
@@ -377,22 +378,22 @@ def meeting_get(request, meeting):
377378
378379@role_required ('Secretariat' )
379380def meeting_update (request , meeting ):
380- # at present, only the official agenda can be updated from this interface.
381+ # at present, only the official schedule can be updated from this interface.
381382
382- #debug.log("1 meeting.agenda : %s / %s / %s" % (meeting.agenda , update_dict, request.body))
383- if "agenda " in request .POST :
384- value = request .POST ["agenda " ]
385- #debug.log("4 meeting.agenda : %s" % (value))
383+ #debug.log("1 meeting.schedule : %s / %s / %s" % (meeting.schedule , update_dict, request.body))
384+ if "schedule " in request .POST :
385+ value = request .POST ["schedule " ]
386+ #debug.log("4 meeting.schedule : %s" % (value))
386387 if not value or value == "None" : # value == "None" is just weird, better with empty string
387- meeting .set_official_agenda (None )
388+ meeting .set_official_schedule (None )
388389 else :
389390 schedule = get_schedule (meeting , value )
390391 if not schedule .public :
391392 return HttpResponse (status = 406 )
392- #debug.log("3 meeting.agenda : %s" % (schedule))
393- meeting .set_official_agenda (schedule )
393+ #debug.log("3 meeting.schedule : %s" % (schedule))
394+ meeting .set_official_schedule (schedule )
394395
395- #debug.log("2 meeting.agenda : %s" % (meeting.agenda ))
396+ #debug.log("2 meeting.schedule : %s" % (meeting.schedule ))
396397 meeting .save ()
397398 return meeting_get (request , meeting )
398399
@@ -442,9 +443,9 @@ def sessions_json(request, num):
442443
443444# this creates an entirely *NEW* schedtimesessassignment
444445def assignments_post (request , meeting , schedule ):
445- cansee ,canedit ,secretariat = agenda_permissions (meeting , schedule , request .user )
446+ cansee ,canedit ,secretariat = schedule_permissions (meeting , schedule , request .user )
446447 if not canedit :
447- return HttpResponse (json .dumps ({'error' :'no permission to modify this agenda ' }),
448+ return HttpResponse (json .dumps ({'error' :'no permission to modify this schedule ' }),
448449 status = 403 ,
449450 content_type = "application/json" )
450451
@@ -491,7 +492,7 @@ def assignments_get(request, num, schedule):
491492 return HttpResponse (json .dumps (sess1_dict , sort_keys = True , indent = 2 ),
492493 content_type = "application/json" )
493494
494- # this returns the list of scheduled sessions for the given named agenda
495+ # this returns the list of scheduled sessions for the given named schedule
495496def assignments_json (request , num , owner , name ):
496497 info = get_meeting_schedule (num , owner , name )
497498 # The return values from get_meeting_schedule() are silly, in that it
@@ -512,9 +513,9 @@ def assignments_json(request, num, owner, name):
512513
513514# accepts both POST and PUT in order to implement Postel Doctrine.
514515def assignment_update (request , meeting , schedule , ss ):
515- cansee ,canedit ,secretariat = agenda_permissions (meeting , schedule , request .user )
516+ cansee ,canedit ,secretariat = schedule_permissions (meeting , schedule , request .user )
516517 if not canedit :
517- return HttpResponse (json .dumps ({'error' :'no permission to update this agenda ' }),
518+ return HttpResponse (json .dumps ({'error' :'no permission to update this schedule ' }),
518519 status = 403 ,
519520 content_type = "application/json" )
520521
@@ -530,9 +531,9 @@ def assignment_update(request, meeting, schedule, ss):
530531 content_type = "application/json" )
531532
532533def assignment_delete (request , meeting , schedule , ss ):
533- cansee ,canedit ,secretariat = agenda_permissions (meeting , schedule , request .user )
534+ cansee ,canedit ,secretariat = schedule_permissions (meeting , schedule , request .user )
534535 if not canedit :
535- return HttpResponse (json .dumps ({'error' :'no permission to update this agenda ' }),
536+ return HttpResponse (json .dumps ({'error' :'no permission to update this schedule ' }),
536537 status = 403 ,
537538 content_type = "application/json" )
538539
@@ -552,10 +553,10 @@ def assignment_delete(request, meeting, schedule, ss):
552553 content_type = "application/json" )
553554
554555def assignment_get (request , meeting , schedule , ss ):
555- cansee ,canedit ,secretariat = agenda_permissions (meeting , schedule , request .user )
556+ cansee ,canedit ,secretariat = schedule_permissions (meeting , schedule , request .user )
556557
557558 if not cansee :
558- return HttpResponse (json .dumps ({'error' :'no permission to see this agenda ' }),
559+ return HttpResponse (json .dumps ({'error' :'no permission to see this schedule ' }),
559560 status = 403 ,
560561 content_type = "application/json" )
561562
0 commit comments