Browse Source

South migrations and initial commit for migration utils. #320

Rafał Pitoń 11 years ago
parent
commit
d4cfb559ea

+ 73 - 0
misago/conf/migrations/0001_initial.py

@@ -0,0 +1,73 @@
+# -*- coding: utf-8 -*-
+from south.utils import datetime_utils as datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+
+class Migration(SchemaMigration):
+
+    def forwards(self, orm):
+        # Adding model 'SettingsGroup'
+        db.create_table(u'conf_settingsgroup', (
+            (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('key', self.gf('django.db.models.fields.CharField')(unique=True, max_length=255)),
+            ('name', self.gf('django.db.models.fields.CharField')(max_length=255)),
+            ('description', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
+        ))
+        db.send_create_signal(u'conf', ['SettingsGroup'])
+
+        # Adding model 'Setting'
+        db.create_table(u'conf_setting', (
+            (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('group', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['conf.SettingsGroup'])),
+            ('setting', self.gf('django.db.models.fields.CharField')(unique=True, max_length=255)),
+            ('name', self.gf('django.db.models.fields.CharField')(max_length=255)),
+            ('description', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
+            ('legend', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)),
+            ('order', self.gf('django.db.models.fields.IntegerField')(default=0, db_index=True)),
+            ('dry_value', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
+            ('default_value', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
+            ('python_type', self.gf('django.db.models.fields.CharField')(max_length=255)),
+            ('is_lazy', self.gf('django.db.models.fields.BooleanField')(default=False)),
+            ('form_field', self.gf('django.db.models.fields.CharField')(max_length=255)),
+            ('pickled_field_extra', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
+        ))
+        db.send_create_signal(u'conf', ['Setting'])
+
+
+    def backwards(self, orm):
+        # Deleting model 'SettingsGroup'
+        db.delete_table(u'conf_settingsgroup')
+
+        # Deleting model 'Setting'
+        db.delete_table(u'conf_setting')
+
+
+    models = {
+        u'conf.setting': {
+            'Meta': {'object_name': 'Setting'},
+            'default_value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'dry_value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'form_field': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'group': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['conf.SettingsGroup']"}),
+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_lazy': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'legend': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'order': ('django.db.models.fields.IntegerField', [], {'default': '0', 'db_index': 'True'}),
+            'pickled_field_extra': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'python_type': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'setting': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'})
+        },
+        u'conf.settingsgroup': {
+            'Meta': {'object_name': 'SettingsGroup'},
+            'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        }
+    }
+
+    complete_apps = ['conf']

+ 0 - 0
misago/conf/migrations/__init__.py


+ 2 - 0
misago/conf/migrationutils.py

@@ -0,0 +1,2 @@
+def insert_or_update_settings_group(orm, group):
+    pass

+ 1 - 1
misago/conf/models.py

@@ -14,7 +14,7 @@ class SettingsGroup(models.Model):
 
 
 class Setting(models.Model):
-    group = models.ForeignKey('SettingsGroup')
+    group = models.ForeignKey(SettingsGroup)
     setting = models.CharField(max_length=255, unique=True)
     name = models.CharField(max_length=255)
     description = models.TextField(null=True, blank=True)

+ 34 - 0
misago/core/migrations/0001_initial.py

@@ -0,0 +1,34 @@
+# -*- coding: utf-8 -*-
+from south.utils import datetime_utils as datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+
+class Migration(SchemaMigration):
+
+    def forwards(self, orm):
+        # Adding model 'CacheVersion'
+        db.create_table(u'core_cacheversion', (
+            (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('cache', self.gf('django.db.models.fields.CharField')(max_length=128)),
+            ('version', self.gf('django.db.models.fields.PositiveIntegerField')(default=0)),
+        ))
+        db.send_create_signal(u'core', ['CacheVersion'])
+
+
+    def backwards(self, orm):
+        # Deleting model 'CacheVersion'
+        db.delete_table(u'core_cacheversion')
+
+
+    models = {
+        u'core.cacheversion': {
+            'Meta': {'object_name': 'CacheVersion'},
+            'cache': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'version': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+        }
+    }
+
+    complete_apps = ['core']

+ 0 - 0
misago/core/migrations/__init__.py


+ 29 - 0
misago/core/migrationutils.py

@@ -0,0 +1,29 @@
+from django.utils import translation
+from misago.core.cache import cache
+
+
+def ugettext_lazy(string):
+    """
+    Custom wrapper that preserves untranslated message on lazy translation
+    string object, useful for db entries that should be found by makemessages
+    and stored untranslated
+    """
+    t = translation.ugettext_lazy(string)
+    t.message = string
+    return t
+
+
+def cachebuster_register_cache(orm, cache):
+    orm.CacheVersion.objects.create(cache=cache)
+
+
+def cachebuster_unregister_cache(orm, cache):
+    try:
+        cache = orm.CacheVersion.objects.get(cache=cache)
+        cache.delete()
+    except orm.CacheVersion.DoesNotExist:
+        raise ValueError('Cache "%s" is not registered' % cache)
+
+
+def prune_cachebuster_cache():
+    default_cache.clear()