Skip to content

Commit 89a3afe

Browse files
committed
Added an order field to sessionpresentation to allow ordering slides. Reworked the session details page to break slides and drafts into their own sections. Commit ready for merge.
- Legacy-Id: 11888
1 parent 89c128d commit 89a3afe

5 files changed

Lines changed: 110 additions & 26 deletions

File tree

ietf/group/migrations/0009_auto_20150930_0758.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ class Migration(migrations.Migration):
109109
dependencies = [
110110
('doc', '0010_auto_20150930_0251'),
111111
('group', '0008_auto_20160505_0523'),
112+
('community', '0004_cleanup_data'),
112113
]
113114

114115
operations = [
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# -*- coding: utf-8 -*-
2+
from __future__ import unicode_literals
3+
4+
import debug # pyflakes:ignore
5+
6+
from django.db import models, migrations
7+
8+
def forward(apps, schema_editor):
9+
SessionPresentation = apps.get_model("meeting","SessionPresentation")
10+
for sp in SessionPresentation.objects.filter(document__type__slug='slides',session__meeting__number__in=['95','96']):
11+
sp.order = int(sp.document.name.split('-')[-1])
12+
sp.save()
13+
14+
def reverse(apps, schema_editor):
15+
pass
16+
17+
class Migration(migrations.Migration):
18+
19+
dependencies = [
20+
('meeting', '0035_auto_20160818_1610'),
21+
]
22+
23+
operations = [
24+
migrations.AddField(
25+
model_name='sessionpresentation',
26+
name='order',
27+
field=models.PositiveSmallIntegerField(default=0),
28+
preserve_default=True,
29+
),
30+
migrations.RunPython(forward,reverse)
31+
]

ietf/meeting/models.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -959,6 +959,7 @@ class SessionPresentation(models.Model):
959959
session = models.ForeignKey('Session')
960960
document = models.ForeignKey(Document)
961961
rev = models.CharField(verbose_name="revision", max_length=16, null=True, blank=True)
962+
order = models.PositiveSmallIntegerField(default=0)
962963

963964
class Meta:
964965
db_table = 'meeting_session_materials'

ietf/meeting/views.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1022,9 +1022,16 @@ def session_details(request, num, acronym ):
10221022
else:
10231023
session.time = session.status.name
10241024

1025+
session.filtered_artifacts = session.sessionpresentation_set.filter(document__type__slug__in=['agenda','minutes','bluesheets'])
1026+
session.filtered_slides = session.sessionpresentation_set.filter(document__type__slug='slides').order_by('order')
1027+
session.filtered_drafts = session.sessionpresentation_set.filter(document__type__slug='draft')
10251028
# TODO FIXME Deleted materials shouldn't be in the sessionpresentation_set
1026-
session.filtered_sessionpresentation_set = [p for p in session.sessionpresentation_set.all() if p.document.get_state_slug(p.document.type_id)!='deleted']
1027-
type_counter.update([p.document.type.slug for p in session.filtered_sessionpresentation_set])
1029+
for qs in [session.filtered_artifacts,session.filtered_slides,session.filtered_drafts]:
1030+
qs = [p for p in qs if p.document.get_state_slug(p.document.type_id)!='deleted']
1031+
type_counter.update([p.document.type.slug for p in qs])
1032+
1033+
#session.filtered_sessionpresentation_set = [p for p in session.sessionpresentation_set.all() if p.document.get_state_slug(p.document.type_id)!='deleted']
1034+
#type_counter.update([p.document.type.slug for p in session.filtered_sessionpresentation_set])
10281035

10291036
can_manage = can_manage_materials(request.user, Group.objects.get(acronym=acronym))
10301037

ietf/templates/meeting/session_details.html

Lines changed: 68 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ <h1>{{ meeting }} : {{ acronym }}</h1>
1010

1111
{% for session in sessions %}
1212
<h2>{% if sessions|length > 1 %}Session {{ forloop.counter }} : {% endif %}{{ session.time }}{% if session.name %} : {{ session.name }}{% endif %}</h2>
13+
{% if session.agenda_note %}<h3>{{session.agenda_note}}</h3>{% endif %}
1314

1415
{% if can_manage_materials %}
1516
{% if session.status.slug == 'sched' or session.status.slug == 'schedw' %}
@@ -33,30 +34,73 @@ <h2>{% if sessions|length > 1 %}Session {{ forloop.counter }} : {% endif %}{{ se
3334
{% endif %}
3435
{% endif %}
3536

36-
{% if session.filtered_sessionpresentation_set %}
37-
<div class="panel panel-default">
38-
<div class="panel-heading">Materials:</div>
39-
<div class="panel-body">
40-
<table class="table table-condensed table-striped">
41-
{% for pres in session.filtered_sessionpresentation_set %}
42-
{% if pres.document.type_id != 'bluesheets' and pres.document.type_id != 'recording' %}
43-
<tr>
44-
<td>
45-
{% if pres.rev %}
46-
{% url 'doc_view' name=pres.document.name rev=pres.rev as url %}
47-
{% else %}
48-
{% url 'doc_view' name=pres.document.name as url %}
49-
{% endif %}
50-
<a href="{{url}}">{{pres.document.title}} ({{ pres.document.name }}{% if pres.rev %}-{{ pres.rev }}{% endif %})
51-
</a>
52-
</td>
53-
</tr>
54-
{% endif %}
55-
{% endfor %}
56-
</table>
57-
</div>
58-
</div>
59-
{% endif %}
37+
{% if session.filtered_artifacts %}
38+
<div class="panel panel-default">
39+
<div class="panel-heading">Artifacts</div>
40+
<div class="panel-body">
41+
<table class="table table-condensed table-striped">
42+
{% for pres in session.filtered_artifacts %}
43+
<tr>
44+
<td>
45+
{% if pres.rev %}
46+
{% url 'doc_view' name=pres.document.name rev=pres.rev as url %}
47+
{% else %}
48+
{% url 'doc_view' name=pres.document.name as url %}
49+
{% endif %}
50+
<a href="{{url}}">{{pres.document.title}} ({{ pres.document.name }}{% if pres.rev %}-{{ pres.rev }}{% endif %})
51+
</a>
52+
</td>
53+
</tr>
54+
{% endfor %}
55+
</table>
56+
</div>
57+
</div>
58+
{% endif %}
59+
{% if session.filtered_slides %}
60+
<div class="panel panel-default">
61+
<div class="panel-heading">Slides</div>
62+
<div class="panel-body">
63+
<table class="table table-condensed table-striped">
64+
{% for pres in session.filtered_slides %}
65+
<tr>
66+
<td>
67+
{% if pres.rev %}
68+
{% url 'doc_view' name=pres.document.name rev=pres.rev as url %}
69+
{% else %}
70+
{% url 'doc_view' name=pres.document.name as url %}
71+
{% endif %}
72+
<a href="{{url}}">{{pres.document.title}} ({{ pres.document.name }}{% if pres.rev %}-{{ pres.rev }}{% endif %})
73+
</a>
74+
</td>
75+
</tr>
76+
{% endfor %}
77+
</table>
78+
</div>
79+
</div>
80+
{% endif %}
81+
{% if session.filtered_drafts %}
82+
<div class="panel panel-default">
83+
<div class="panel-heading">Drafts</div>
84+
<div class="panel-body">
85+
<table class="table table-condensed table-striped">
86+
{% for pres in session.filtered_drafts %}
87+
<tr>
88+
<td>
89+
{% if pres.rev %}
90+
{% url 'doc_view' name=pres.document.name rev=pres.rev as url %}
91+
{% else %}
92+
{% url 'doc_view' name=pres.document.name as url %}
93+
{% endif %}
94+
<a href="{{url}}">{{pres.document.title}} ({{ pres.document.name }}{% if pres.rev %}-{{ pres.rev }}{% endif %})
95+
</a>
96+
</td>
97+
</tr>
98+
{% endfor %}
99+
</table>
100+
</div>
101+
</div>
102+
{% endif %}
103+
60104
{% endfor %}
61105

62106
{% endblock %}

0 commit comments

Comments
 (0)