71 lines
2.1 KiB
Python
71 lines
2.1 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Generated by Django 1.10.5 on 2017-03-04 08:30
|
|
from __future__ import unicode_literals, print_function
|
|
|
|
from tqdm import tqdm
|
|
|
|
from django.db import migrations
|
|
|
|
import debug # pyflakes:ignore
|
|
|
|
from ietf.doc.models import DocHistory
|
|
|
|
def ename(event):
|
|
return u"%s %s by %s at %s" % (event.doc.name, event.get_type_display().lower(), event.by.name, event.time)
|
|
|
|
def get_dochistory(event):
|
|
h = DocHistory.objects.filter(time__lte=event.time,doc__name=event.doc.name).order_by('-time', '-pk')
|
|
if not h.exists():
|
|
h = DocHistory.objects.filter(time__gte=event.time,doc__name=event.doc.name).order_by('time', 'pk')
|
|
return h
|
|
|
|
def get_history_rev(e):
|
|
h = e.get_dochistory()
|
|
rev = None
|
|
if h.exists():
|
|
for i in h:
|
|
if i.rev:
|
|
break
|
|
if i and i.rev:
|
|
rev = i.rev
|
|
return rev
|
|
|
|
def forwards(apps,schema_editor):
|
|
DocEvent = apps.get_model('doc', 'DocEvent')
|
|
DocEvent.get_dochistory = get_dochistory
|
|
NewRevisionDocEvent = apps.get_model('doc', 'NewRevisionDocEvent')
|
|
SubmissionDocEvent = apps.get_model('doc', 'SubmissionDocEvent')
|
|
print("\nProcessing NewRevisionDocEvents:")
|
|
for e in tqdm(list(NewRevisionDocEvent.objects.filter(rev=''))):
|
|
if e.revision:
|
|
e.rev = e.revision
|
|
e.save()
|
|
print("\nProcessing SubmissionDocEvents:")
|
|
for e in tqdm(list(SubmissionDocEvent.objects.filter(rev=''))):
|
|
if e.revision:
|
|
e.rev = e.revision
|
|
e.save()
|
|
print("\nProcessing remaining DocEvents:")
|
|
for e in tqdm(list(DocEvent.objects.filter(rev=''))):
|
|
rev = get_history_rev(e)
|
|
if rev:
|
|
e.rev = rev
|
|
e.save()
|
|
|
|
def backwards(apps,schema_editor):
|
|
DocEvent = apps.get_model('doc', 'DocEvent')
|
|
print("\nProcessing DocEvents:")
|
|
for e in tqdm(list(DocEvent.objects.exclude(rev=''))):
|
|
e.rev = ''
|
|
e.save()
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
dependencies = [
|
|
('doc', '0022_add_docevent_rev'),
|
|
]
|
|
|
|
operations = [
|
|
migrations.RunPython(forwards, backwards),
|
|
]
|