From 2f1ae788b8903f835a06f77ede2fd71a5d350b74 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C5=81ukasz=20Rekucki?= Date: Thu, 27 May 2010 22:09:08 +0200 Subject: [PATCH 1/1] Patched django-modeltranslation to work correctly with south. Removed a weird migration that did something to filesystem !? --- ... => 0004_book_html_shorts_translations.py} | 74 +++++++++---------- apps/modeltranslation/fields.py | 4 + apps/sponsors/migrations/0002_move_path.py | 59 --------------- 3 files changed, 41 insertions(+), 96 deletions(-) rename apps/catalogue/migrations/{0009__short_html_translation.py => 0004_book_html_shorts_translations.py} (91%) delete mode 100644 apps/sponsors/migrations/0002_move_path.py diff --git a/apps/catalogue/migrations/0009__short_html_translation.py b/apps/catalogue/migrations/0004_book_html_shorts_translations.py similarity index 91% rename from apps/catalogue/migrations/0009__short_html_translation.py rename to apps/catalogue/migrations/0004_book_html_shorts_translations.py index 1a47e8f2e..8d8e06af2 100644 --- a/apps/catalogue/migrations/0009__short_html_translation.py +++ b/apps/catalogue/migrations/0004_book_html_shorts_translations.py @@ -8,56 +8,56 @@ class Migration(SchemaMigration): def forwards(self, orm): - # Adding field 'Book._short_html_pl' - db.add_column('catalogue_book', '_short_html_pl', self.gf('django.db.models.fields.TextField')(default=''), keep_default=False) - - # Adding field 'Book._short_html_de' - db.add_column('catalogue_book', '_short_html_de', self.gf('django.db.models.fields.TextField')(default=''), keep_default=False) - # Adding field 'Book._short_html_en' - db.add_column('catalogue_book', '_short_html_en', self.gf('django.db.models.fields.TextField')(default=''), keep_default=False) + db.add_column('catalogue_book', '_short_html_en', self.gf('django.db.models.fields.TextField')(null=True, blank=True), keep_default=False) - # Adding field 'Book._short_html_lt' - db.add_column('catalogue_book', '_short_html_lt', self.gf('django.db.models.fields.TextField')(default=''), keep_default=False) + # Adding field 'Book._short_html_es' + db.add_column('catalogue_book', '_short_html_es', self.gf('django.db.models.fields.TextField')(null=True, blank=True), keep_default=False) + + # Adding field 'Book._short_html_de' + db.add_column('catalogue_book', '_short_html_de', self.gf('django.db.models.fields.TextField')(null=True, blank=True), keep_default=False) # Adding field 'Book._short_html_fr' - db.add_column('catalogue_book', '_short_html_fr', self.gf('django.db.models.fields.TextField')(default=''), keep_default=False) + db.add_column('catalogue_book', '_short_html_fr', self.gf('django.db.models.fields.TextField')(null=True, blank=True), keep_default=False) - # Adding field 'Book._short_html_ru' - db.add_column('catalogue_book', '_short_html_ru', self.gf('django.db.models.fields.TextField')(default=''), keep_default=False) + # Adding field 'Book._short_html_uk' + db.add_column('catalogue_book', '_short_html_uk', self.gf('django.db.models.fields.TextField')(null=True, blank=True), keep_default=False) - # Adding field 'Book._short_html_es' - db.add_column('catalogue_book', '_short_html_es', self.gf('django.db.models.fields.TextField')(default=''), keep_default=False) + # Adding field 'Book._short_html_pl' + db.add_column('catalogue_book', '_short_html_pl', self.gf('django.db.models.fields.TextField')(null=True, blank=True), keep_default=False) - # Adding field 'Book._short_html_uk' - db.add_column('catalogue_book', '_short_html_uk', self.gf('django.db.models.fields.TextField')(default=''), keep_default=False) + # Adding field 'Book._short_html_ru' + db.add_column('catalogue_book', '_short_html_ru', self.gf('django.db.models.fields.TextField')(null=True, blank=True), keep_default=False) + # Adding field 'Book._short_html_lt' + db.add_column('catalogue_book', '_short_html_lt', self.gf('django.db.models.fields.TextField')(null=True, blank=True), keep_default=False) + def backwards(self, orm): - # Deleting field 'Book._short_html_pl' - db.delete_column('catalogue_book', '_short_html_pl') - - # Deleting field 'Book._short_html_de' - db.delete_column('catalogue_book', '_short_html_de') - # Deleting field 'Book._short_html_en' db.delete_column('catalogue_book', '_short_html_en') - # Deleting field 'Book._short_html_lt' - db.delete_column('catalogue_book', '_short_html_lt') + # Deleting field 'Book._short_html_es' + db.delete_column('catalogue_book', '_short_html_es') + + # Deleting field 'Book._short_html_de' + db.delete_column('catalogue_book', '_short_html_de') # Deleting field 'Book._short_html_fr' db.delete_column('catalogue_book', '_short_html_fr') + # Deleting field 'Book._short_html_uk' + db.delete_column('catalogue_book', '_short_html_uk') + + # Deleting field 'Book._short_html_pl' + db.delete_column('catalogue_book', '_short_html_pl') + # Deleting field 'Book._short_html_ru' db.delete_column('catalogue_book', '_short_html_ru') - # Deleting field 'Book._short_html_es' - db.delete_column('catalogue_book', '_short_html_es') - - # Deleting field 'Book._short_html_uk' - db.delete_column('catalogue_book', '_short_html_uk') + # Deleting field 'Book._short_html_lt' + db.delete_column('catalogue_book', '_short_html_lt') models = { @@ -93,14 +93,14 @@ class Migration(SchemaMigration): 'catalogue.book': { 'Meta': {'object_name': 'Book'}, '_short_html': ('django.db.models.fields.TextField', [], {}), - '_short_html_de': ('django.db.models.fields.TextField', [], {}), - '_short_html_en': ('django.db.models.fields.TextField', [], {}), - '_short_html_es': ('django.db.models.fields.TextField', [], {}), - '_short_html_fr': ('django.db.models.fields.TextField', [], {}), - '_short_html_lt': ('django.db.models.fields.TextField', [], {}), - '_short_html_pl': ('django.db.models.fields.TextField', [], {}), - '_short_html_ru': ('django.db.models.fields.TextField', [], {}), - '_short_html_uk': ('django.db.models.fields.TextField', [], {}), + '_short_html_de': ('django.db.models.fields.TextField', [], {'null': True, 'blank': True}), + '_short_html_en': ('django.db.models.fields.TextField', [], {'null': True, 'blank': True}), + '_short_html_es': ('django.db.models.fields.TextField', [], {'null': True, 'blank': True}), + '_short_html_fr': ('django.db.models.fields.TextField', [], {'null': True, 'blank': True}), + '_short_html_lt': ('django.db.models.fields.TextField', [], {'null': True, 'blank': True}), + '_short_html_pl': ('django.db.models.fields.TextField', [], {'null': True, 'blank': True}), + '_short_html_ru': ('django.db.models.fields.TextField', [], {'null': True, 'blank': True}), + '_short_html_uk': ('django.db.models.fields.TextField', [], {'null': True, 'blank': True}), 'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), 'extra_info': ('catalogue.fields.JSONField', [], {}), diff --git a/apps/modeltranslation/fields.py b/apps/modeltranslation/fields.py index 5498d6b1d..be942f6a5 100644 --- a/apps/modeltranslation/fields.py +++ b/apps/modeltranslation/fields.py @@ -74,6 +74,10 @@ class TranslationField(Field): field_class = '%s.%s' % (self.translated_field.__class__.__module__, self.translated_field.__class__.__name__) args, kwargs = introspector(self.translated_field) + + # This is patched in init and so should be here! -- lqc + kwargs['blank'], kwargs['null'] = True, True + # That's our definition! return (field_class, args, kwargs) diff --git a/apps/sponsors/migrations/0002_move_path.py b/apps/sponsors/migrations/0002_move_path.py deleted file mode 100644 index 1f3819e6a..000000000 --- a/apps/sponsors/migrations/0002_move_path.py +++ /dev/null @@ -1,59 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import DataMigration -from django.db import models - -from django.conf import settings -from shutil import move -from os import path - - -def move_sponsors_media(orm, old, new): - try: - move(path.join(settings.MEDIA_ROOT, old), - path.join(settings.MEDIA_ROOT, new)) - except IOError: - # there could be no sponsors directory yet - pass - for sponsor in orm.Sponsor.objects.all(): - base, rest = sponsor.logo.name.split('/', 1) - sponsor.logo.name = '/'.join((new, rest)) - sponsor.save() - # reset cache - for sponsor_page in orm.SponsorPage.objects.all(): - sponsor_page.save() - - -class Migration(DataMigration): - - def forwards(self, orm): - "Write your forwards methods here." - if not db.dry_run: - move_sponsors_media(orm, 'sponsors', 'sponsorzy') - - def backwards(self, orm): - "Write your backwards methods here." - if not db.dry_run: - move_sponsors_media(orm, 'sponsorzy', 'sponsors') - - - models = { - 'sponsors.sponsor': { - 'Meta': {'object_name': 'Sponsor'}, - '_description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'logo': ('django.db.models.fields.files.ImageField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '120'}), - 'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) - }, - 'sponsors.sponsorpage': { - 'Meta': {'object_name': 'SponsorPage'}, - '_html': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '120'}), - 'sponsors': ('sponsors.fields.JSONField', [], {'default': '{}'}) - } - } - - complete_apps = ['sponsors'] -- 2.20.1