summaryrefslogtreecommitdiff
path: root/scripts/restore_find_data.py
blob: df5c380697d987ad4275099f698a678d4317fc9d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
"""
Restore find data on destructive import
"""

import sys

from ishtar_common.utils import update_data
from archaeological_finds.models import Find

ln = Find.objects.count()

sys.stdout.write("\n")
for idx, item in enumerate(Find.objects.all()):
    sys.stdout.write("\r* processing {}/{} ({}%)".format(
        idx + 1, ln, (idx + 1)*100.0 / ln))
    sys.stdout.flush()
    data = item.data
    for h in item.history.order_by('-history_modifier_id', '-history_date',
                                   '-history_id').all():
        data = update_data(data, h.data)
    item.data = data
    item.skip_history_when_saving = True
    item.save()
sys.stdout.write("\n")