Remove obsolete jsonfield dependency.
[wolnelektury.git] / src / picture / migrations / 0005_auto_20141022_1001.py
1 import json
2 from django.core.files.base import ContentFile
3 from django.db import models, migrations
4 from django.template.loader import render_to_string
5
6
7 def rebuild_extra_info(apps, schema_editor):
8     Picture = apps.get_model("picture", "Picture")
9     from librarian.picture import PictureInfo
10     from librarian import dcparser
11     for pic in Picture.objects.all():
12         info = dcparser.parse(pic.xml_file.path, PictureInfo)
13         pic.extra_info = json.dumps(info.to_dict())
14         areas_json = json.loads(pic.areas_json)
15         for field in areas_json['things'].values():
16             field['object'] = field['object'].capitalize()
17         pic.areas_json = json.dumps(areas_json)
18         html_text = render_to_string('picture/picture_info.html', {
19                     'things': areas_json['things'],
20                     'themes': areas_json['themes'],
21                     })
22         pic.html_file.save("%s.html" % pic.slug, ContentFile(html_text))
23         pic.save()
24
25
26 class Migration(migrations.Migration):
27
28     dependencies = [
29         ('picture', '0004_auto_20141016_1337'),
30     ]
31
32     operations = [
33         migrations.RunPython(rebuild_extra_info),
34     ]