Skip to content

Commit c3f460c

Browse files
committed
Refactored history snippets for general use
Moved from VersionedMaterials to SessionPresentation for the through table name Added the abstract and most recent presentation to the documents on the group materials page Working snapshot before building historic edu-team documents - Legacy-Id: 8349
1 parent 75b94bd commit c3f460c

12 files changed

Lines changed: 39 additions & 23 deletions

File tree

ietf/doc/templatetags/ietf_filters.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -447,7 +447,11 @@ def format_history_text(text):
447447
if text.startswith("This was part of a ballot set with:"):
448448
full = urlize_ietf_docs(full)
449449

450-
full = mark_safe(keep_spacing(linebreaksbr(urlize(sanitize_html(full)))))
450+
return format_snippet(full)
451+
452+
@register.filter
453+
def format_snippet(text):
454+
full = mark_safe(keep_spacing(linebreaksbr(urlize(sanitize_html(text)))))
451455
snippet = truncatewords_html(full, 25)
452456
if snippet != full:
453457
return mark_safe(u'<div class="snippet">%s<span class="show-all">[show all]</span></div><div style="display:none" class="full">%s</div>' % (snippet, full))

ietf/group/info.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,8 @@ def concluded_groups(request):
267267
dict(group_types=group_types))
268268

269269
def get_group_materials(group):
270-
return Document.objects.filter(group=group, type__in=group.features.material_types, session=None).exclude(states__slug="deleted")
270+
# return Document.objects.filter(group=group, type__in=group.features.material_types, session=None).exclude(states__slug="deleted")
271+
return Document.objects.filter(group=group, type__in=group.features.material_types).exclude(states__slug="deleted")
271272

272273
def construct_group_menu_context(request, group, selected, group_type, others):
273274
"""Return context with info for the group menu filled in."""
@@ -450,6 +451,8 @@ def materials(request, acronym, group_type=None):
450451
if d.type not in doc_types:
451452
doc_types[d.type] = []
452453
doc_types[d.type].append(d)
454+
# This needs to be better - probably looking at ScheduledSession, and perhaps ignoring future Sessions
455+
d.last_presented = d.sessionpresentation_set.order_by('-session__meeting__date').first()
453456

454457
return render(request, 'group/materials.html',
455458
construct_group_menu_context(request, group, "materials", group_type, {

ietf/meeting/migrations/0019_version_materials.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ def backwards(self, orm):
188188
'comments': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
189189
'group': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['group.Group']"}),
190190
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
191-
'materials': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['doc.Document']", 'symmetrical': 'False', 'through': u"orm['meeting.VersionedMaterials']", 'blank': 'True'}),
191+
'materials': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['doc.Document']", 'symmetrical': 'False', 'through': u"orm['meeting.SessionPresentation']", 'blank': 'True'}),
192192
'meeting': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['meeting.Meeting']"}),
193193
'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
194194
'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
@@ -213,8 +213,8 @@ def backwards(self, orm):
213213
'time': ('django.db.models.fields.DateTimeField', [], {}),
214214
'type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['name.TimeSlotTypeName']"})
215215
},
216-
u'meeting.versionedmaterials': {
217-
'Meta': {'object_name': 'VersionedMaterials', 'db_table': "'meeting_session_materials'"},
216+
u'meeting.sessionpresentation': {
217+
'Meta': {'object_name': 'SessionPresentation', 'db_table': "'meeting_session_materials'"},
218218
'doc': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['doc.Document']"}),
219219
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
220220
'rev': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}),

ietf/meeting/migrations/0020_snapshot_material_revisions.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
class Migration(DataMigration):
55

66
def forwards(self, orm):
7-
for vm in orm['meeting.VersionedMaterials'].objects.all():
7+
for vm in orm['meeting.SessionPresentation'].objects.all():
88
vm.rev = vm.document.rev
99
vm.save()
1010

@@ -185,7 +185,7 @@ def backwards(self, orm):
185185
'comments': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
186186
'group': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['group.Group']"}),
187187
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
188-
'materials': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['doc.Document']", 'symmetrical': 'False', 'through': u"orm['meeting.VersionedMaterials']", 'blank': 'True'}),
188+
'materials': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['doc.Document']", 'symmetrical': 'False', 'through': u"orm['meeting.SessionPresentation']", 'blank': 'True'}),
189189
'meeting': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['meeting.Meeting']"}),
190190
'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
191191
'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
@@ -210,8 +210,8 @@ def backwards(self, orm):
210210
'time': ('django.db.models.fields.DateTimeField', [], {}),
211211
'type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['name.TimeSlotTypeName']"})
212212
},
213-
u'meeting.versionedmaterials': {
214-
'Meta': {'object_name': 'VersionedMaterials', 'db_table': "'meeting_session_materials'"},
213+
u'meeting.sessionpresentation': {
214+
'Meta': {'object_name': 'SessionPresentation', 'db_table': "'meeting_session_materials'"},
215215
'document': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['doc.Document']"}),
216216
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
217217
'rev': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}),

ietf/meeting/models.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -777,7 +777,7 @@ def json_dict(self, host_scheme):
777777
return ct1
778778

779779

780-
class VersionedMaterials(models.Model):
780+
class SessionPresentation(models.Model):
781781
session = models.ForeignKey('Session')
782782
document = models.ForeignKey(Document)
783783
rev = models.CharField(verbose_name="revision", max_length=16, blank=True)
@@ -811,7 +811,7 @@ class Session(models.Model):
811811
scheduled = models.DateTimeField(null=True, blank=True)
812812
modified = models.DateTimeField(default=datetime.datetime.now)
813813

814-
materials = models.ManyToManyField(Document, through=VersionedMaterials, blank=True)
814+
materials = models.ManyToManyField(Document, through=SessionPresentation, blank=True)
815815
resources = models.ManyToManyField(ResourceAssociation)
816816

817817
unique_constraints_dict = None

ietf/meeting/test_data.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from ietf.doc.models import Document, State
44
from ietf.group.models import Group
5-
from ietf.meeting.models import Meeting, Room, TimeSlot, Session, Schedule, ScheduledSession, ResourceAssociation, VersionedMaterials
5+
from ietf.meeting.models import Meeting, Room, TimeSlot, Session, Schedule, ScheduledSession, ResourceAssociation, SessionPresentation
66
from ietf.name.models import RoomResourceName
77
from ietf.person.models import Person
88
from ietf.utils.test_data import make_test_data
@@ -46,15 +46,15 @@ def make_meeting_test_data():
4646

4747
doc = Document.objects.create(name='agenda-mars-ietf-42', type_id='agenda', title="Agenda", external_url="agenda-mars")
4848
doc.set_state(State.objects.get(type=doc.type_id, slug="active"))
49-
mars_session.versionedmaterials_set.add(VersionedMaterials(session=mars_session,document=doc,rev=doc.rev))
49+
mars_session.sessionpresentation_set.add(SessionPresentation(session=mars_session,document=doc,rev=doc.rev))
5050

5151
doc = Document.objects.create(name='minutes-mars-ietf-42', type_id='minutes', title="Minutes", external_url="minutes-mars")
5252
doc.set_state(State.objects.get(type=doc.type_id, slug="active"))
53-
mars_session.versionedmaterials_set.add(VersionedMaterials(session=mars_session,document=doc,rev=doc.rev))
53+
mars_session.sessionpresentation_set.add(SessionPresentation(session=mars_session,document=doc,rev=doc.rev))
5454

5555
doc = Document.objects.create(name='slides-mars-ietf-42', type_id='slides', title="Slideshow", external_url="slides-mars")
5656
doc.set_state(State.objects.get(type=doc.type_id, slug="active"))
57-
mars_session.versionedmaterials_set.add(VersionedMaterials(session=mars_session,document=doc,rev=doc.rev))
57+
mars_session.sessionpresentation_set.add(SessionPresentation(session=mars_session,document=doc,rev=doc.rev))
5858

5959
return meeting
6060

ietf/secr/proceedings/views.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
from ietf.doc.models import Document, DocAlias, DocEvent, State, NewRevisionDocEvent
2424
from ietf.group.models import Group
2525
from ietf.ietfauth.utils import has_role
26-
from ietf.meeting.models import Meeting, Session, TimeSlot, ScheduledSession, VersionedMaterials
26+
from ietf.meeting.models import Meeting, Session, TimeSlot, ScheduledSession, SessionPresentation
2727
from ietf.secr.proceedings.forms import EditSlideForm, InterimMeetingForm, ReplaceSlideForm, UnifiedUploadForm
2828
from ietf.secr.proceedings.proc_utils import ( gen_acknowledgement, gen_agenda, gen_areas, gen_attendees,
2929
gen_group_pages, gen_index, gen_irtf, gen_overview, gen_plenaries, gen_progress, gen_research,
@@ -842,9 +842,9 @@ def upload_unified(request, meeting_num, acronym=None, session_id=None):
842842
# for the current meeting (until tools support different materials for diff sessions)
843843
if sessions:
844844
for s in sessions:
845-
s.materials.versionedmaterials_set.add(VersionedMaterials(session=s,document=doc,rev=doc.rev))
845+
s.materials.sessionpresentation_set.add(SessionPresentation(session=s,document=doc,rev=doc.rev))
846846
else:
847-
session.materials.versionedmaterials_set.add(VersionedMaterials(session=session,document=doc,rev=doc.rev))
847+
session.materials.sessionpresentation_set.add(SessionPresentation(session=session,document=doc,rev=doc.rev))
848848

849849
# create NewRevisionDocEvent instead of uploaded, per Ole
850850
NewRevisionDocEvent.objects.create(type='new_revision',

ietf/templates/doc/document_history.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,5 +77,5 @@ <h2>Document history</h2>
7777
{% endblock content %}
7878

7979
{% block content_end %}
80-
<script type="text/javascript" src="/js/history.js"></script>
80+
<script type="text/javascript" src="/js/snippet.js"></script>
8181
{% endblock content_end %}

ietf/templates/group/history.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,5 @@ <h2>Group History</h2>
2222
{% endblock %}
2323

2424
{% block content_end %}
25-
<script src="/js/history.js" type="text/javascript"></script>
25+
<script src="/js/snippet.js" type="text/javascript"></script>
2626
{% endblock %}

ietf/templates/group/materials.html

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
{% block morecss %}
77
{{ block.super }}
88
.materials .edit-options { float: right; margin-left: 2em; font-style: italic; }
9+
.materials .snippable { width:25em; }
910
{% endblock %}
1011

1112
{% block group_content %}
@@ -19,15 +20,19 @@ <h2>{{ doc_type.name }}</h2>
1920

2021
<tr>
2122
<th>Title</th>
22-
<th>Rev.</th>
23+
<th>Abstract</th>
24+
<th>Curr. Rev.</th>
2325
<th>Date</th>
26+
<th>Last Presented</th>
2427
</tr>
2528

2629
{% for d in docs %}
2730
<tr class="{% cycle "evenrow" "oddrow" %}">
2831
<td><a class="title-link" href="{% url "doc_view" name=d.name %}">{{ d.title }}</a></td>
32+
<td class='snippable'>{{ d.abstract|format_snippet }} </td>
2933
<td>{{ d.rev }}</td>
3034
<td>{{ d.time|date:"Y-m-d" }}</td>
35+
<td>{% if d.last_presented %}-{{ d.last_presented.rev }} at {{d.last_presented.session.meeting}}{% endif %}</td>
3136
</tr>
3237
{% endfor %}
3338
</table>
@@ -39,3 +44,7 @@ <h2>Materials</h2>
3944
{% endif %}
4045

4146
{% endblock %}
47+
48+
{% block content_end %}
49+
<script src="/js/snippet.js" type="text/javascript"></script>
50+
{% endblock %}

0 commit comments

Comments
 (0)