Skip to content

Commit 661bb18

Browse files
committed
Make it more obvious which sessions are scheduled and which are not when viewing session details and managing materials. Fixes ietf-tools#2084. Commit ready for merge.
- Legacy-Id: 14035
1 parent aaf3fa5 commit 661bb18

3 files changed

Lines changed: 147 additions & 121 deletions

File tree

ietf/meeting/views.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1115,8 +1115,12 @@ def session_details(request, num, acronym ):
11151115

11161116
can_manage = can_manage_materials(request.user, Group.objects.get(acronym=acronym))
11171117

1118+
scheduled_sessions=[s for s in sessions if s.status_id=='sched']
1119+
unscheduled_sessions = [s for s in sessions if s.status_id!='sched']
1120+
11181121
return render(request, "meeting/session_details.html",
1119-
{ 'sessions':sessions ,
1122+
{ 'scheduled_sessions':scheduled_sessions ,
1123+
'unscheduled_sessions':unscheduled_sessions ,
11201124
'meeting' :meeting ,
11211125
'acronym' :acronym,
11221126
'can_manage_materials' : can_manage,

ietf/templates/meeting/session_details.html

Lines changed: 13 additions & 120 deletions
Original file line numberDiff line numberDiff line change
@@ -14,133 +14,26 @@
1414
{% origin %}
1515
<h1>{{ meeting }} : {{ acronym }}</h1>
1616

17-
{% for session in sessions %}
18-
<h2 class="anchor-target" id="session_{{session.pk}}">{% if sessions|length > 1 %}Session {{ forloop.counter }} : {% endif %}{{ session.time }}{% if session.name %} : {{ session.name }}{% endif %}</h2>
19-
{% if session.agenda_note %}<h3>{{session.agenda_note}}</h3>{% endif %}
20-
21-
{% if can_manage_materials %}
22-
{% if session.status.slug == 'sched' or session.status.slug == 'schedw' %}
23-
<div class="buttonlist">
24-
{% if meeting.type.slug == 'interim' and user|has_role:"Secretariat" %}
25-
<a class="btn btn-default" href="{% url 'ietf.meeting.views.interim_request_details' number=meeting.number %}">Meeting Details</a>
26-
{% endif %}
27-
</div>
28-
{% if not session.type_counter.agenda %}
29-
<span class="label label-warning">This session does not yet have an agenda</span>
30-
{% endif %}
31-
{% endif %}
32-
{% endif %}
33-
34-
<div class="panel panel-default">
35-
<div class="panel-heading">Agenda, Minutes, and Bluesheets</div>
36-
<div class="panel-body">
37-
<table class="table table-condensed table-striped">
38-
{% for pres in session.filtered_artifacts %}
39-
<tr>
40-
{% if pres.rev %}
41-
{% url 'ietf.doc.views_doc.document_main' name=pres.document.name rev=pres.rev as url %}
42-
{% else %}
43-
{% url 'ietf.doc.views_doc.document_main' name=pres.document.name as url %}
44-
{% endif %}
45-
<td>
46-
<a href="{{pres.document.href}}">{{pres.document.title}}</a>
47-
<a href="{{url}}">({{ pres.document.name }}{% if pres.rev %}-{{ pres.rev }}{% endif %})</a>
48-
</td>
49-
{% if user|has_role:"Secretariat" or can_manage_materials %}
50-
<td class="col-md-2">
51-
{% if pres.document.type.slug == 'minutes' %}
52-
{% url 'ietf.meeting.views.upload_session_minutes' session_id=session.pk num=session.meeting.number as upload_url %}
53-
{% elif pres.document.type.slug == 'agenda' %}
54-
{% url 'ietf.meeting.views.upload_session_agenda' session_id=session.pk num=session.meeting.number as upload_url %}
55-
{% else %}
56-
{% url 'ietf.meeting.views.upload_session_bluesheets' session_id=session.pk num=session.meeting.number as upload_url %}
57-
{% endif %}
58-
{% if pres.document.type.slug != 'bluesheets' or user|has_role:"Secretariat" %}
59-
<a class="btn btn-default btn-sm pull-right" href="{{upload_url}}">Upload Revision</a>
60-
{% endif %}
61-
</td>
62-
{% endif %}
63-
</tr>
64-
{% endfor %}
65-
</table>
66-
{% if can_manage_materials %}
67-
{% if not session.type_counter.agenda %}
68-
<a class="btn btn-default pull-right" href="{% url 'ietf.meeting.views.upload_session_agenda' session_id=session.pk num=session.meeting.number %}">Upload Agenda</a>
69-
{% endif %}
70-
{% if not session.type_counter.minutes %}
71-
<a class="btn btn-default pull-right" href="{% url 'ietf.meeting.views.upload_session_minutes' session_id=session.pk num=session.meeting.number %}">Upload Minutes</a>
72-
{% endif %}
73-
{% endif %}
74-
{% if user|has_role:"Secretariat" and not session.type_counter.bluesheets or meeting.type.slug == 'interim' and can_manage_materials and not session.type_counter.bluesheets %}
75-
<a class="btn btn-default pull-right" href="{% url 'ietf.meeting.views.upload_session_bluesheets' session_id=session.pk num=session.meeting.number %}">Upload Bluesheets</a>
76-
{% endif %}
77-
</div>
78-
</div>
17+
{% with use_panels=unscheduled_sessions %}
18+
{% if use_panels %}
7919
<div class="panel panel-default">
80-
<div class="panel-heading" data-toggle="tooltip" title="Drag and drop to reorder slides">Slides</div>
20+
<div class="panel-heading">Scheduled Sessions</div>
8121
<div class="panel-body">
82-
<table class="table table-condensed table-striped slides" id="slides">
83-
<tbody>
84-
{% for pres in session.filtered_slides %}
85-
<tr data-order="{{pres.order}}" data-url="{% url 'ietf.meeting.views.set_slide_order' session_id=session.pk num=session.meeting.number name=pres.document.name %}">
86-
{% if pres.rev %}
87-
{% url 'ietf.doc.views_doc.document_main' name=pres.document.name rev=pres.rev as url %}
88-
{% else %}
89-
{% url 'ietf.doc.views_doc.document_main' name=pres.document.name as url %}
90-
{% endif %}
91-
<td>
92-
<a href="{{pres.document.href}}">{{pres.document.title}} </a>
93-
<a href="{{url}}">({{ pres.document.name }}{% if pres.rev %}-{{ pres.rev }}{% endif %}) </a>
94-
</td>
95-
{% if can_manage_materials %}
96-
<td class="col-md-2">
97-
<a class="btn btn-default btn-sm pull-right" href="{% url 'ietf.meeting.views.upload_session_slides' session_id=session.pk num=session.meeting.number name=pres.document.name %}">Upload Revision</a>
98-
<a class="btn btn-default btn-sm pull-right" href="{% url 'ietf.meeting.views.remove_sessionpresentation' session_id=session.pk num=session.meeting.number name=pres.document.name %}">Remove</a>
99-
</td>
100-
{% endif %}
101-
</tr>
102-
{% endfor %}
103-
</tbody>
104-
</table>
105-
{% if can_manage_materials %}
106-
<a class="btn btn-default pull-right" href="{% url 'ietf.meeting.views.upload_session_slides' session_id=session.pk num=session.meeting.number %}">Upload New Slides</a>
107-
{% endif %}
22+
{% endif %}
23+
{% include 'meeting/session_details_panel.html' with sessions=scheduled_sessions %}
24+
{% if use_panels %}
10825
</div>
109-
{% if can_manage_materials %}
110-
<div class="panel-footer small">Drag-and-drop to reorder slides</div>
111-
{% endif %}
11226
</div>
113-
<div class="panel panel-default">
114-
<div class="panel-heading">Drafts
115-
</div>
27+
<div class="panel panel-warning">
28+
<div class="panel-heading">Uncheduled Sessions</div>
11629
<div class="panel-body">
117-
<table class="table table-condensed table-striped">
118-
{% for pres in session.filtered_drafts %}
119-
<tr>
120-
<td>
121-
{% if pres.rev %}
122-
{% url 'ietf.doc.views_doc.document_main' name=pres.document.name rev=pres.rev as url %}
123-
{% else %}
124-
{% url 'ietf.doc.views_doc.document_main' name=pres.document.name as url %}
125-
{% endif %}
126-
<a href="{{url}}">{{pres.document.title}} ({{ pres.document.name }}{% if pres.rev %}-{{ pres.rev }}{% endif %})</a>
127-
</td>
128-
{% if can_manage_materials %}
129-
<td class="col-md-2">
130-
<a class="btn btn-default btn-sm pull-right" href="{% url 'ietf.meeting.views.remove_sessionpresentation' session_id=session.pk num=session.meeting.number name=pres.document.name %}">Remove</a>
131-
</td>
132-
{% endif %}
133-
</tr>
134-
{% endfor %}
135-
</table>
136-
{% if can_manage_materials %}
137-
<a class="btn btn-default pull-right" href="{% url 'ietf.meeting.views.add_session_drafts' session_id=session.pk num=session.meeting.number %}">
138-
Link additional drafts to session
139-
</a>
140-
{% endif %}
30+
{% endif %}
31+
{% include 'meeting/session_details_panel.html' with sessions=unscheduled_sessions %}
32+
{% if use_panels %}
14133
</div>
14234
</div>
143-
{% endfor %}
35+
{% endif %}
36+
{% endwith %}
14437

14538
{% endblock %}
14639

Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
{% load ietf_filters %}
2+
3+
{% for session in sessions %}
4+
<h2 class="anchor-target" id="session_{{session.pk}}">{% if sessions|length > 1 %}Session {{ forloop.counter }} : {% endif %}{{ session.time }}{% if session.name %} : {{ session.name }}{% endif %}</h2>
5+
{% if session.agenda_note %}<h3>{{session.agenda_note}}</h3>{% endif %}
6+
7+
{% if can_manage_materials %}
8+
{% if session.status.slug == 'sched' or session.status.slug == 'schedw' %}
9+
<div class="buttonlist">
10+
{% if meeting.type.slug == 'interim' and user|has_role:"Secretariat" %}
11+
<a class="btn btn-default" href="{% url 'ietf.meeting.views.interim_request_details' number=meeting.number %}">Meeting Details</a>
12+
{% endif %}
13+
</div>
14+
{% if not session.type_counter.agenda %}
15+
<span class="label label-warning">This session does not yet have an agenda</span>
16+
{% endif %}
17+
{% endif %}
18+
{% endif %}
19+
20+
<div class="panel panel-default">
21+
<div class="panel-heading">Agenda, Minutes, and Bluesheets</div>
22+
<div class="panel-body">
23+
<table class="table table-condensed table-striped">
24+
{% for pres in session.filtered_artifacts %}
25+
<tr>
26+
{% if pres.rev %}
27+
{% url 'ietf.doc.views_doc.document_main' name=pres.document.name rev=pres.rev as url %}
28+
{% else %}
29+
{% url 'ietf.doc.views_doc.document_main' name=pres.document.name as url %}
30+
{% endif %}
31+
<td>
32+
<a href="{{pres.document.href}}">{{pres.document.title}}</a>
33+
<a href="{{url}}">({{ pres.document.name }}{% if pres.rev %}-{{ pres.rev }}{% endif %})</a>
34+
</td>
35+
{% if user|has_role:"Secretariat" or can_manage_materials %}
36+
<td class="col-md-2">
37+
{% if pres.document.type.slug == 'minutes' %}
38+
{% url 'ietf.meeting.views.upload_session_minutes' session_id=session.pk num=session.meeting.number as upload_url %}
39+
{% elif pres.document.type.slug == 'agenda' %}
40+
{% url 'ietf.meeting.views.upload_session_agenda' session_id=session.pk num=session.meeting.number as upload_url %}
41+
{% else %}
42+
{% url 'ietf.meeting.views.upload_session_bluesheets' session_id=session.pk num=session.meeting.number as upload_url %}
43+
{% endif %}
44+
{% if pres.document.type.slug != 'bluesheets' or user|has_role:"Secretariat" %}
45+
<a class="btn btn-default btn-sm pull-right" href="{{upload_url}}">Upload Revision</a>
46+
{% endif %}
47+
</td>
48+
{% endif %}
49+
</tr>
50+
{% endfor %}
51+
</table>
52+
{% if can_manage_materials %}
53+
{% if not session.type_counter.agenda %}
54+
<a class="btn btn-default pull-right" href="{% url 'ietf.meeting.views.upload_session_agenda' session_id=session.pk num=session.meeting.number %}">Upload Agenda</a>
55+
{% endif %}
56+
{% if not session.type_counter.minutes %}
57+
<a class="btn btn-default pull-right" href="{% url 'ietf.meeting.views.upload_session_minutes' session_id=session.pk num=session.meeting.number %}">Upload Minutes</a>
58+
{% endif %}
59+
{% endif %}
60+
{% if user|has_role:"Secretariat" and not session.type_counter.bluesheets or meeting.type.slug == 'interim' and can_manage_materials and not session.type_counter.bluesheets %}
61+
<a class="btn btn-default pull-right" href="{% url 'ietf.meeting.views.upload_session_bluesheets' session_id=session.pk num=session.meeting.number %}">Upload Bluesheets</a>
62+
{% endif %}
63+
</div>
64+
</div>
65+
<div class="panel panel-default">
66+
<div class="panel-heading" data-toggle="tooltip" title="Drag and drop to reorder slides">Slides</div>
67+
<div class="panel-body">
68+
<table class="table table-condensed table-striped slides" id="slides">
69+
<tbody>
70+
{% for pres in session.filtered_slides %}
71+
<tr data-order="{{pres.order}}" data-url="{% url 'ietf.meeting.views.set_slide_order' session_id=session.pk num=session.meeting.number name=pres.document.name %}">
72+
{% if pres.rev %}
73+
{% url 'ietf.doc.views_doc.document_main' name=pres.document.name rev=pres.rev as url %}
74+
{% else %}
75+
{% url 'ietf.doc.views_doc.document_main' name=pres.document.name as url %}
76+
{% endif %}
77+
<td>
78+
<a href="{{pres.document.href}}">{{pres.document.title}} </a>
79+
<a href="{{url}}">({{ pres.document.name }}{% if pres.rev %}-{{ pres.rev }}{% endif %}) </a>
80+
</td>
81+
{% if can_manage_materials %}
82+
<td class="col-md-2">
83+
<a class="btn btn-default btn-sm pull-right" href="{% url 'ietf.meeting.views.upload_session_slides' session_id=session.pk num=session.meeting.number name=pres.document.name %}">Upload Revision</a>
84+
<a class="btn btn-default btn-sm pull-right" href="{% url 'ietf.meeting.views.remove_sessionpresentation' session_id=session.pk num=session.meeting.number name=pres.document.name %}">Remove</a>
85+
</td>
86+
{% endif %}
87+
</tr>
88+
{% endfor %}
89+
</tbody>
90+
</table>
91+
{% if can_manage_materials %}
92+
<a class="btn btn-default pull-right" href="{% url 'ietf.meeting.views.upload_session_slides' session_id=session.pk num=session.meeting.number %}">Upload New Slides</a>
93+
{% endif %}
94+
</div>
95+
{% if can_manage_materials %}
96+
<div class="panel-footer small">Drag-and-drop to reorder slides</div>
97+
{% endif %}
98+
</div>
99+
<div class="panel panel-default">
100+
<div class="panel-heading">Drafts
101+
</div>
102+
<div class="panel-body">
103+
<table class="table table-condensed table-striped">
104+
{% for pres in session.filtered_drafts %}
105+
<tr>
106+
<td>
107+
{% if pres.rev %}
108+
{% url 'ietf.doc.views_doc.document_main' name=pres.document.name rev=pres.rev as url %}
109+
{% else %}
110+
{% url 'ietf.doc.views_doc.document_main' name=pres.document.name as url %}
111+
{% endif %}
112+
<a href="{{url}}">{{pres.document.title}} ({{ pres.document.name }}{% if pres.rev %}-{{ pres.rev }}{% endif %})</a>
113+
</td>
114+
{% if can_manage_materials %}
115+
<td class="col-md-2">
116+
<a class="btn btn-default btn-sm pull-right" href="{% url 'ietf.meeting.views.remove_sessionpresentation' session_id=session.pk num=session.meeting.number name=pres.document.name %}">Remove</a>
117+
</td>
118+
{% endif %}
119+
</tr>
120+
{% endfor %}
121+
</table>
122+
{% if can_manage_materials %}
123+
<a class="btn btn-default pull-right" href="{% url 'ietf.meeting.views.add_session_drafts' session_id=session.pk num=session.meeting.number %}">
124+
Link additional drafts to session
125+
</a>
126+
{% endif %}
127+
</div>
128+
</div>
129+
{% endfor %}

0 commit comments

Comments
 (0)