Refactored ical_agenda() to be more general. Added parameters and code to permit generation of per-group and per-session ical pages. Added url entries for per-group and per-session ical pages. Changed some parameter names to better reflect their semantics ('session'->'acronym').
- Legacy-Id: 14717
This commit is contained in:
parent
770762ff99
commit
92864c233d
|
@ -49,8 +49,8 @@ type_ietf_only_patterns = [
|
|||
url(r'^timeslot/(?P<slotid>\d+).json$', ajax.timeslot_sloturl),
|
||||
url(r'^agendas$', ajax.agenda_infosurl),
|
||||
url(r'^agendas.json$', ajax.agenda_infosurl),
|
||||
url(r'^agenda/(?P<session>[A-Za-z0-9-]+)-drafts.pdf$', views.session_draft_pdf),
|
||||
url(r'^agenda/(?P<session>[A-Za-z0-9-]+)-drafts.tgz$', views.session_draft_tarfile),
|
||||
url(r'^agenda/(?P<acronym>[-a-z0-9]+)-drafts.pdf$', views.session_draft_pdf),
|
||||
url(r'^agenda/(?P<acronym>[-a-z0-9]+)-drafts.tgz$', views.session_draft_tarfile),
|
||||
url(r'^sessions.json', ajax.sessions_json),
|
||||
url(r'^session/(?P<sessionid>\d+).json', ajax.session_json),
|
||||
url(r'^session/(?P<sessionid>\d+)/constraints.json', ajax.session_constraints),
|
||||
|
@ -73,6 +73,8 @@ type_ietf_only_patterns_id_optional = [
|
|||
url(r'^requests$', views.meeting_requests),
|
||||
url(r'^agenda/agenda.ics$', views.ical_agenda),
|
||||
url(r'^agenda.ics$', views.ical_agenda),
|
||||
url(r'^session/(?P<session_id>\d+)\.ics$', views.ical_agenda),
|
||||
url(r'^session/(?P<acronym>[-a-z0-9]+).ics$', views.ical_agenda),
|
||||
url(r'^agenda.json$', views.json_agenda),
|
||||
url(r'^agenda/week-view(?:.html)?/?$', views.week_view),
|
||||
url(r'^agenda/room-view(?:.html)?/?$', views.room_view),
|
||||
|
|
|
@ -607,11 +607,11 @@ def agenda_by_type_ics(request,num=None,type=None):
|
|||
updated = meeting.updated()
|
||||
return render(request,"meeting/agenda.ics",{"schedule":schedule,"updated":updated,"assignments":assignments},content_type="text/calendar")
|
||||
|
||||
def session_draft_list(num, session):
|
||||
def session_draft_list(num, acronym):
|
||||
try:
|
||||
agendas = Document.objects.filter(type="agenda",
|
||||
session__meeting__number=num,
|
||||
session__group__acronym=session,
|
||||
session__group__acronym=acronym,
|
||||
states=State.objects.get(type="agenda", slug="active")).distinct()
|
||||
except Document.DoesNotExist:
|
||||
raise Http404
|
||||
|
@ -636,18 +636,18 @@ def session_draft_list(num, session):
|
|||
except Document.DoesNotExist:
|
||||
pass
|
||||
|
||||
for sp in SessionPresentation.objects.filter(session__meeting__number=num, session__group__acronym=session, document__type='draft'):
|
||||
for sp in SessionPresentation.objects.filter(session__meeting__number=num, session__group__acronym=acronym, document__type='draft'):
|
||||
doc_name = sp.document.name + "-" + sp.document.rev
|
||||
if doc_name not in result:
|
||||
result.append(doc_name)
|
||||
|
||||
return sorted(result)
|
||||
|
||||
def session_draft_tarfile(request, num, session):
|
||||
drafts = session_draft_list(num, session);
|
||||
def session_draft_tarfile(request, num, acronym):
|
||||
drafts = session_draft_list(num, acronym);
|
||||
|
||||
response = HttpResponse(content_type='application/octet-stream')
|
||||
response['Content-Disposition'] = 'attachment; filename=%s-drafts.tgz'%(session)
|
||||
response['Content-Disposition'] = 'attachment; filename=%s-drafts.tgz'%(acronym)
|
||||
tarstream = tarfile.open('','w:gz',response)
|
||||
mfh, mfn = mkstemp()
|
||||
os.close(mfh)
|
||||
|
@ -674,8 +674,8 @@ def session_draft_tarfile(request, num, session):
|
|||
os.unlink(mfn)
|
||||
return response
|
||||
|
||||
def session_draft_pdf(request, num, session):
|
||||
drafts = session_draft_list(num, session);
|
||||
def session_draft_pdf(request, num, acronym):
|
||||
drafts = session_draft_list(num, acronym);
|
||||
curr_page = 1
|
||||
pmh, pmn = mkstemp()
|
||||
os.close(pmh)
|
||||
|
@ -829,7 +829,7 @@ def room_view(request, num=None, name=None, owner=None):
|
|||
template = "meeting/room-view.html"
|
||||
return render(request, template,{"meeting":meeting,"schedule":schedule,"unavailable":unavailable,"assignments":assignments,"rooms":rooms,"days":days})
|
||||
|
||||
def ical_agenda(request, num=None, name=None, ext=None):
|
||||
def ical_agenda(request, num=None, name=None, acronym=None, session_id=None):
|
||||
meeting = get_meeting(num)
|
||||
schedule = get_schedule(meeting, name)
|
||||
updated = meeting.updated()
|
||||
|
@ -863,12 +863,18 @@ def ical_agenda(request, num=None, name=None, ext=None):
|
|||
assignments = schedule.assignments.exclude(timeslot__type__in=['lead','offagenda'])
|
||||
assignments = preprocess_assignments_for_agenda(assignments, meeting)
|
||||
|
||||
assignments = [a for a in assignments if
|
||||
if q:
|
||||
assignments = [a for a in assignments if
|
||||
(a.timeslot.type_id in include_types
|
||||
or (a.session.historic_group and a.session.historic_group.acronym in include)
|
||||
or (a.session.historic_group and a.session.historic_group.historic_parent and a.session.historic_group.historic_parent.acronym in include))
|
||||
and (not a.session.historic_group or a.session.historic_group.acronym not in exclude)]
|
||||
|
||||
if acronym:
|
||||
assignments = [ a for a in assignments if a.session.historic_group and a.session.historic_group.acronym == acronym ]
|
||||
elif session_id:
|
||||
assignments = [ a for a in assignments if a.session_id == int(session_id) ]
|
||||
|
||||
return render(request, "meeting/agenda.ics", {
|
||||
"schedule": schedule,
|
||||
"assignments": assignments,
|
||||
|
|
|
@ -130,7 +130,7 @@
|
|||
{% for p in group_parents %}
|
||||
<a class="btn btn-default" href="{% url "ietf.meeting.views.ical_agenda" num=schedule.meeting.number %}?{{p.acronym|upper}},-~Other,-~Plenary">{{p.acronym|upper}}</a>
|
||||
{% endfor %}
|
||||
<a class="btn btn-default" href="{% url "ietf.meeting.views.ical_agenda" num=schedule.meeting.number %}">Non-area events</a>
|
||||
<a class="btn btn-default" href="{% url "ietf.meeting.views.ical_agenda" num=schedule.meeting.number %}?~Plenary,~Other">Non-area events</a>
|
||||
<a id="ical-link" class="hidden btn btn-primary" href="{% url "ietf.meeting.views.ical_agenda" num=schedule.meeting.number %}">Customized schedule</a>
|
||||
</p>
|
||||
|
||||
|
|
Loading…
Reference in a new issue