Skip to content

Commit 88a9c30

Browse files
committed
Added a data migration to fix up incorrect submission doc events.
- Legacy-Id: 12073
1 parent 72cfe4c commit 88a9c30

1 file changed

Lines changed: 58 additions & 0 deletions

File tree

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# -*- coding: utf-8 -*-
2+
from __future__ import unicode_literals
3+
4+
from django.db import migrations
5+
6+
import debug # pyflakes:ignore
7+
8+
verbose = False
9+
def note(s):
10+
if verbose:
11+
print(s)
12+
13+
class Migration(migrations.Migration):
14+
15+
def clean_up_bad_docevent_dates(apps, schema_editor):
16+
DocEvent = apps.get_model('doc', 'DocEvent')
17+
events = DocEvent.objects.filter(time__gt='2016-09-10', doc__type='draft').order_by('id')
18+
docs = set()
19+
for e in events:
20+
docs.add(e.doc)
21+
for doc in docs:
22+
docevents = events.filter(doc=doc)
23+
prev = docevents.first()
24+
doc_shown = False
25+
prev_shown = False
26+
new_rev_msgs = []
27+
for e in docevents:
28+
if e.type == 'new_revision':
29+
new_rev_msgs.append(e.desc)
30+
if e.time < prev.time:
31+
if not doc_shown:
32+
note("\n%s:" % doc.name)
33+
doc_shown = True
34+
if not prev_shown:
35+
note("\n ---- %s: %-14s %s" % (prev.time, prev.type, prev.desc))
36+
prev_shown = True
37+
note((u" bad: %s: %-14s %s" % (e.time, e.type, e.desc)).encode('utf8'))
38+
if e.type == 'new_revision' and e.desc in new_rev_msgs:
39+
note(" * deleting duplicate new_revision event")
40+
e.newrevisiondocevent.delete()
41+
else:
42+
note((u" * fixing time of event %s %s" % (e.time, e.desc)).encode('utf8'))
43+
e.time = prev.time
44+
e.save()
45+
else:
46+
prev = e
47+
prev_shown = False
48+
49+
def noop(apps, schema_editor):
50+
pass
51+
52+
dependencies = [
53+
('submit', '0014_auto_20160627_1945'),
54+
]
55+
56+
operations = [
57+
migrations.RunPython(clean_up_bad_docevent_dates, noop)
58+
]

0 commit comments

Comments
 (0)