Skip to content

Commit c79b40b

Browse files
committed
Changed the handling of DocEvent 'rev' fields in document history. We should give DocEvent a 'rev' field which is always filled in; the current handling is error prone and much to complicated.
- Legacy-Id: 12433
1 parent d717864 commit c79b40b

4 files changed

Lines changed: 26 additions & 4 deletions

File tree

ietf/doc/feeds.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ def items(self, obj):
3535
return events
3636

3737
def item_title(self, item):
38-
return u"[%s] %s [rev. %s]" % (item.by, truncatewords(strip_tags(item.desc), 15), item.rev)
38+
return u"[%s] %s [rev. %s]" % (item.by, truncatewords(strip_tags(item.desc), 15), item.get_rev())
3939

4040
def item_description(self, item):
4141
return truncatewords_html(format_textarea(item.desc), 20)

ietf/doc/models.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -749,6 +749,18 @@ def get_dochistory(self):
749749
def __unicode__(self):
750750
return u"%s %s by %s at %s" % (self.doc.name, self.get_type_display().lower(), self.by.plain_name(), self.time)
751751

752+
def get_rev(self):
753+
e = self
754+
# check subtypes which has a rev attribute
755+
for sub in ['newrevisiondocevent', 'submissiondocevent', ]:
756+
if hasattr(e, sub):
757+
e = getattr(e, sub)
758+
break
759+
if hasattr(e, 'rev'):
760+
return e.rev
761+
else:
762+
return None
763+
752764
class Meta:
753765
ordering = ['-time', '-id']
754766

ietf/doc/utils.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,12 @@ def augment_events_with_revision(doc, events):
237237
for e in sorted(events, key=lambda e: (e.time, e.id), reverse=True):
238238
while event_revisions and (e.time, e.id) < (event_revisions[-1]["time"], event_revisions[-1]["id"]):
239239
event_revisions.pop()
240-
240+
241+
# Check for all subtypes which have 'rev' fields:
242+
for sub in ['newrevisiondocevent', 'submissiondocevent', ]:
243+
if hasattr(e, sub):
244+
e = getattr(e, sub)
245+
break
241246
if not hasattr(e, 'rev'):
242247
if event_revisions:
243248
cur_rev = event_revisions[-1]["rev"]
@@ -255,6 +260,11 @@ def add_links_in_new_revision_events(doc, events, diff_revisions):
255260
if not e.type == "new_revision":
256261
continue
257262

263+
for sub in ['newrevisiondocevent', 'submissiondocevent', ]:
264+
if hasattr(e, sub):
265+
e = getattr(e, sub)
266+
break
267+
258268
if not (e.doc.name, e.rev) in diff_urls:
259269
continue
260270

ietf/templates/doc/document_history.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ <h2>Document history</h2>
103103
{% for e in events %}
104104
<tr class="anchor-target" id="history-{{ e.pk }}">
105105
<td class="text-nowrap">{{ e.time|date:"Y-m-d" }}</td>
106-
<td class="text-center">{{ e.rev }}</td>
106+
<td class="text-center">{{ e.get_rev }}</td>
107107
<td>{{ e.by|escape }}</td>
108108
<td>{{ e.desc|format_history_text|safe }}</td>
109109
</tr>
@@ -114,4 +114,4 @@ <h2>Document history</h2>
114114

115115
{% block js %}
116116
<script src="{% static "jquery.tablesorter/js/jquery.tablesorter.combined.min.js" %}"></script>
117-
{% endblock %}
117+
{% endblock %}

0 commit comments

Comments
 (0)