Skip to content

Commit a91ab77

Browse files
committed
Provided navigation for managing materials from the group meeting and meeting session views
- Legacy-Id: 10760
1 parent 0db7901 commit a91ab77

2 files changed

Lines changed: 45 additions & 17 deletions

File tree

ietf/meeting/views.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import tarfile
77
import urllib
88
from tempfile import mkstemp
9-
from collections import OrderedDict
9+
from collections import OrderedDict, Counter
1010
import csv
1111
import json
1212

@@ -25,6 +25,7 @@
2525

2626
from ietf.doc.models import Document, State
2727
from ietf.group.models import Group
28+
from ietf.group.utils import can_manage_materials
2829
from ietf.ietfauth.utils import role_required, has_role
2930
from ietf.meeting.models import Meeting, Session, Schedule, Room
3031
from ietf.meeting.helpers import get_areas, get_person_by_email, get_schedule_by_name
@@ -844,21 +845,32 @@ def sort_key(session):
844845
if not sessions:
845846
raise Http404
846847

848+
type_counter = Counter()
849+
847850
for session in sessions:
848851

849852
ss = session.timeslotassignments.filter(schedule=meeting.agenda).order_by('timeslot__time')
850853
if ss:
851854
session.time = ', '.join(x.timeslot.time.strftime("%A %b-%d-%Y %H%M") for x in ss)
855+
if session.status.slug == 'canceled':
856+
session.time += " CANCELLED"
852857
elif session.meeting.type_id=='interim':
853858
session.time = session.meeting.date.strftime("%A %b-%d-%Y")
859+
if session.status.slug == 'canceled':
860+
session.time += " CANCELLED"
854861
else:
855-
session.time = 'Not yet scheduled'
862+
session.time = session.status.name
856863

857864
# TODO FIXME Deleted materials shouldn't be in the sessionpresentation_set
858865
session.filtered_sessionpresentation_set = [p for p in session.sessionpresentation_set.all() if p.document.get_state_slug(p.document.type_id)!='deleted']
866+
type_counter.update([p.document.type.slug for p in session.filtered_sessionpresentation_set])
867+
868+
can_manage = can_manage_materials(request.user, Group.objects.get(acronym=acronym))
859869

860870
return render(request, "meeting/session_details.html",
861871
{ 'sessions':sessions ,
862872
'meeting' :meeting ,
863873
'acronym' :acronym,
874+
'can_manage_materials' : can_manage,
875+
'type_counter': type_counter,
864876
})

ietf/templates/meeting/session_details.html

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,23 +9,39 @@
99
<h1>{{ meeting }} : {{ acronym }}</h1>
1010

1111
{% for session in sessions %}
12-
<h2>{{ session.time }}{% if session.name %} : {{ session.name }}{% endif %}</h2>
12+
<h2>{% if sessions|length > 1 %}Session {{ forloop.counter }} : {% endif %}{{ session.time }}{% if session.name %} : {{ session.name }}{% endif %}</h2>
1313

14-
{% if session.filtered_sessionpresentation_set %}
15-
<p>Materials:</p>
14+
{% if can_manage_materials %}
15+
{% if session.status.slug == 'sched' or session.status.slug == 'schedw' %}
16+
<div class="buttonlist">
17+
<a class="btn btn-default" href="{% url 'ietf.secr.proceedings.views.upload_unified' meeting_num=session.meeting.number acronym=session.group.acronym %}">
18+
Upload/Edit Materials
19+
</a>
20+
{% if not type_counter.agenda %}
21+
<span class="label label-warning">This session does not yet have an agenda</span>
22+
{% endif %}
23+
</div>
24+
{% endif %}
25+
{% endif %}
1626

17-
<table class="table table-condensed table-striped">
18-
{% for pres in session.filtered_sessionpresentation_set %}
19-
{% if pres.document.type_id != 'bluesheets' and pres.document.type_id != 'recording' %}
20-
<tr>
21-
<td>
22-
<a href="{% url 'doc_view' name=pres.document.name rev=pres.rev%}">{{pres.document.title}} ({{ pres.document.name }}-{{ pres.rev }})
23-
</a>
24-
</td>
25-
</tr>
26-
{% endif %}
27-
{% endfor %}
28-
</table>
27+
{% if session.filtered_sessionpresentation_set %}
28+
<div class="panel panel-default">
29+
<div class="panel-heading">Materials:</div>
30+
<div class="panel-body">
31+
<table class="table table-condensed table-striped">
32+
{% for pres in session.filtered_sessionpresentation_set %}
33+
{% if pres.document.type_id != 'bluesheets' and pres.document.type_id != 'recording' %}
34+
<tr>
35+
<td>
36+
<a href="{% url 'doc_view' name=pres.document.name rev=pres.rev%}">{{pres.document.title}} ({{ pres.document.name }}-{{ pres.rev }})
37+
</a>
38+
</td>
39+
</tr>
40+
{% endif %}
41+
{% endfor %}
42+
</table>
43+
</div>
44+
</div>
2945
{% endif %}
3046
{% endfor %}
3147

0 commit comments

Comments
 (0)