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
This commit is contained in:
parent
89c128de63
commit
89a3afe025
|
@ -109,6 +109,7 @@ class Migration(migrations.Migration):
|
|||
dependencies = [
|
||||
('doc', '0010_auto_20150930_0251'),
|
||||
('group', '0008_auto_20160505_0523'),
|
||||
('community', '0004_cleanup_data'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import debug # pyflakes:ignore
|
||||
|
||||
from django.db import models, migrations
|
||||
|
||||
def forward(apps, schema_editor):
|
||||
SessionPresentation = apps.get_model("meeting","SessionPresentation")
|
||||
for sp in SessionPresentation.objects.filter(document__type__slug='slides',session__meeting__number__in=['95','96']):
|
||||
sp.order = int(sp.document.name.split('-')[-1])
|
||||
sp.save()
|
||||
|
||||
def reverse(apps, schema_editor):
|
||||
pass
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('meeting', '0035_auto_20160818_1610'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='sessionpresentation',
|
||||
name='order',
|
||||
field=models.PositiveSmallIntegerField(default=0),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.RunPython(forward,reverse)
|
||||
]
|
|
@ -959,6 +959,7 @@ class SessionPresentation(models.Model):
|
|||
session = models.ForeignKey('Session')
|
||||
document = models.ForeignKey(Document)
|
||||
rev = models.CharField(verbose_name="revision", max_length=16, null=True, blank=True)
|
||||
order = models.PositiveSmallIntegerField(default=0)
|
||||
|
||||
class Meta:
|
||||
db_table = 'meeting_session_materials'
|
||||
|
|
|
@ -1022,9 +1022,16 @@ def session_details(request, num, acronym ):
|
|||
else:
|
||||
session.time = session.status.name
|
||||
|
||||
session.filtered_artifacts = session.sessionpresentation_set.filter(document__type__slug__in=['agenda','minutes','bluesheets'])
|
||||
session.filtered_slides = session.sessionpresentation_set.filter(document__type__slug='slides').order_by('order')
|
||||
session.filtered_drafts = session.sessionpresentation_set.filter(document__type__slug='draft')
|
||||
# TODO FIXME Deleted materials shouldn't be in the sessionpresentation_set
|
||||
session.filtered_sessionpresentation_set = [p for p in session.sessionpresentation_set.all() if p.document.get_state_slug(p.document.type_id)!='deleted']
|
||||
type_counter.update([p.document.type.slug for p in session.filtered_sessionpresentation_set])
|
||||
for qs in [session.filtered_artifacts,session.filtered_slides,session.filtered_drafts]:
|
||||
qs = [p for p in qs if p.document.get_state_slug(p.document.type_id)!='deleted']
|
||||
type_counter.update([p.document.type.slug for p in qs])
|
||||
|
||||
#session.filtered_sessionpresentation_set = [p for p in session.sessionpresentation_set.all() if p.document.get_state_slug(p.document.type_id)!='deleted']
|
||||
#type_counter.update([p.document.type.slug for p in session.filtered_sessionpresentation_set])
|
||||
|
||||
can_manage = can_manage_materials(request.user, Group.objects.get(acronym=acronym))
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
|
||||
{% for session in sessions %}
|
||||
<h2>{% if sessions|length > 1 %}Session {{ forloop.counter }} : {% endif %}{{ session.time }}{% if session.name %} : {{ session.name }}{% endif %}</h2>
|
||||
{% if session.agenda_note %}<h3>{{session.agenda_note}}</h3>{% endif %}
|
||||
|
||||
{% if can_manage_materials %}
|
||||
{% if session.status.slug == 'sched' or session.status.slug == 'schedw' %}
|
||||
|
@ -33,30 +34,73 @@
|
|||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% if session.filtered_sessionpresentation_set %}
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">Materials:</div>
|
||||
<div class="panel-body">
|
||||
<table class="table table-condensed table-striped">
|
||||
{% for pres in session.filtered_sessionpresentation_set %}
|
||||
{% if pres.document.type_id != 'bluesheets' and pres.document.type_id != 'recording' %}
|
||||
<tr>
|
||||
<td>
|
||||
{% if pres.rev %}
|
||||
{% url 'doc_view' name=pres.document.name rev=pres.rev as url %}
|
||||
{% else %}
|
||||
{% url 'doc_view' name=pres.document.name as url %}
|
||||
{% endif %}
|
||||
<a href="{{url}}">{{pres.document.title}} ({{ pres.document.name }}{% if pres.rev %}-{{ pres.rev }}{% endif %})
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if session.filtered_artifacts %}
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">Artifacts</div>
|
||||
<div class="panel-body">
|
||||
<table class="table table-condensed table-striped">
|
||||
{% for pres in session.filtered_artifacts %}
|
||||
<tr>
|
||||
<td>
|
||||
{% if pres.rev %}
|
||||
{% url 'doc_view' name=pres.document.name rev=pres.rev as url %}
|
||||
{% else %}
|
||||
{% url 'doc_view' name=pres.document.name as url %}
|
||||
{% endif %}
|
||||
<a href="{{url}}">{{pres.document.title}} ({{ pres.document.name }}{% if pres.rev %}-{{ pres.rev }}{% endif %})
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if session.filtered_slides %}
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">Slides</div>
|
||||
<div class="panel-body">
|
||||
<table class="table table-condensed table-striped">
|
||||
{% for pres in session.filtered_slides %}
|
||||
<tr>
|
||||
<td>
|
||||
{% if pres.rev %}
|
||||
{% url 'doc_view' name=pres.document.name rev=pres.rev as url %}
|
||||
{% else %}
|
||||
{% url 'doc_view' name=pres.document.name as url %}
|
||||
{% endif %}
|
||||
<a href="{{url}}">{{pres.document.title}} ({{ pres.document.name }}{% if pres.rev %}-{{ pres.rev }}{% endif %})
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if session.filtered_drafts %}
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">Drafts</div>
|
||||
<div class="panel-body">
|
||||
<table class="table table-condensed table-striped">
|
||||
{% for pres in session.filtered_drafts %}
|
||||
<tr>
|
||||
<td>
|
||||
{% if pres.rev %}
|
||||
{% url 'doc_view' name=pres.document.name rev=pres.rev as url %}
|
||||
{% else %}
|
||||
{% url 'doc_view' name=pres.document.name as url %}
|
||||
{% endif %}
|
||||
<a href="{{url}}">{{pres.document.title}} ({{ pres.document.name }}{% if pres.rev %}-{{ pres.rev }}{% endif %})
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% endfor %}
|
||||
|
||||
{% endblock %}
|
||||
|
|
Loading…
Reference in a new issue