From b8e94e0e7cc7576cbaacd3c737d6ffca6b12db53 Mon Sep 17 00:00:00 2001 From: Radek Czajka Date: Wed, 22 Oct 2014 11:26:39 +0200 Subject: [PATCH] Fixes #3511: capitalize objects. --- .../migrations/0006_auto_20141022_1059.py | 23 +++++++++++++++++++ .../migrations/0005_auto_20141022_1001.py | 12 ++++++++++ apps/picture/models.py | 6 ++++- 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 apps/catalogue/migrations/0006_auto_20141022_1059.py diff --git a/apps/catalogue/migrations/0006_auto_20141022_1059.py b/apps/catalogue/migrations/0006_auto_20141022_1059.py new file mode 100644 index 000000000..f36eb0742 --- /dev/null +++ b/apps/catalogue/migrations/0006_auto_20141022_1059.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + + +def capitalize_objects(apps, schema_editor): + """Capitalize Polish names of things.""" + Tag = apps.get_model('catalogue', 'Tag') + for tag in Tag.objects.filter(category='thing'): + tag.name = tag.name_pl = tag.name.capitalize() + tag.save() + + +class Migration(migrations.Migration): + + dependencies = [ + ('catalogue', '0005_auto_20141016_1337'), + ] + + operations = [ + migrations.RunPython(capitalize_objects), + ] diff --git a/apps/picture/migrations/0005_auto_20141022_1001.py b/apps/picture/migrations/0005_auto_20141022_1001.py index e5e87387c..677877eae 100644 --- a/apps/picture/migrations/0005_auto_20141022_1001.py +++ b/apps/picture/migrations/0005_auto_20141022_1001.py @@ -1,7 +1,10 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals +from django.core.files.base import ContentFile from django.db import models, migrations +from django.template.loader import render_to_string + def rebuild_extra_info(apps, schema_editor): Picture = apps.get_model("picture", "Picture") @@ -10,6 +13,15 @@ def rebuild_extra_info(apps, schema_editor): for pic in Picture.objects.all(): info = dcparser.parse(pic.xml_file.path, PictureInfo) pic.extra_info = info.to_dict() + areas_json = pic.areas_json + for field in areas_json[u'things'].values(): + field[u'object'] = field[u'object'].capitalize() + pic.areas_json = areas_json + html_text = unicode(render_to_string('picture/picture_info.html', { + 'things': pic.areas_json['things'], + 'themes': pic.areas_json['themes'], + })) + pic.html_file.save("%s.html" % pic.slug, ContentFile(html_text)) pic.save() diff --git a/apps/picture/models.py b/apps/picture/models.py index 97dbd0ec2..7ef6ca7cd 100644 --- a/apps/picture/models.py +++ b/apps/picture/models.py @@ -170,6 +170,9 @@ class Picture(models.Model): area_data = {'themes':{}, 'things':{}} + # Treat all names in picture XML as in default language. + lang = settings.LANGUAGE_CODE + for part in picture_xml.partiter(): if picture_xml.frame: c = picture_xml.frame[0] @@ -180,7 +183,8 @@ class Picture(models.Model): objname = objname.strip() tag, created = catalogue.models.Tag.objects.get_or_create(slug=slughifi(objname), category='thing') if created: - tag.name = objname + tag.name = objname.capitalize() + setattr(tag, 'name_%s' % lang, tag.name) tag.sort_key = sortify(tag.name) tag.save() #thing_tags.add(tag) -- 2.20.1