mirror of
https://github.com/jazzband/django-categories.git
synced 2026-03-16 22:30:24 +00:00
Updates the existing migration to south_migrations
This commit is contained in:
parent
7c73bd51c4
commit
28ef4d5565
2 changed files with 30 additions and 23 deletions
|
|
@ -9,7 +9,7 @@ def migrate_app(sender, app, created_models=None, verbosity=False, *args, **kwar
|
|||
"""
|
||||
from .fields import CategoryM2MField, CategoryFKField
|
||||
from .models import Category
|
||||
from .settings import FIELD_REGISTRY
|
||||
from .registration import registry
|
||||
import sys
|
||||
import StringIO
|
||||
|
||||
|
|
@ -26,7 +26,7 @@ def migrate_app(sender, app, created_models=None, verbosity=False, *args, **kwar
|
|||
else:
|
||||
app_name = app.__name__.split('.')[-2]
|
||||
|
||||
fields = [fld for fld in FIELD_REGISTRY.keys() if fld.startswith(app_name)]
|
||||
fields = [fld for fld in registry._field_registry.keys() if fld.startswith(app_name)]
|
||||
# call the south commands to add the fields/tables
|
||||
for fld in fields:
|
||||
app_name, model_name, field_name = fld.split('.')
|
||||
|
|
@ -35,12 +35,12 @@ def migrate_app(sender, app, created_models=None, verbosity=False, *args, **kwar
|
|||
# always best to be sure.
|
||||
mdl = models.get_model(app_name, model_name)
|
||||
|
||||
if isinstance(FIELD_REGISTRY[fld], CategoryFKField):
|
||||
if isinstance(registry._field_registry[fld], CategoryFKField):
|
||||
try:
|
||||
db.start_transaction()
|
||||
table_name = mdl._meta.db_table
|
||||
FIELD_REGISTRY[fld].default = -1
|
||||
db.add_column(table_name, field_name, FIELD_REGISTRY[fld], keep_default=False)
|
||||
registry._field_registry[fld].default = -1
|
||||
db.add_column(table_name, field_name, registry._field_registry[fld], keep_default=False)
|
||||
db.commit_transaction()
|
||||
if verbosity:
|
||||
print (_('Added ForeignKey %(field_name)s to %(model_name)s') %
|
||||
|
|
@ -54,7 +54,7 @@ def migrate_app(sender, app, created_models=None, verbosity=False, *args, **kwar
|
|||
else:
|
||||
sys.stderr = org_stderror
|
||||
raise e
|
||||
elif isinstance(FIELD_REGISTRY[fld], CategoryM2MField):
|
||||
elif isinstance(registry._field_registry[fld], CategoryM2MField):
|
||||
table_name = '%s_%s' % (mdl._meta.db_table, 'categories')
|
||||
try:
|
||||
db.start_transaction()
|
||||
|
|
@ -87,7 +87,7 @@ def drop_field(app_name, model_name, field_name):
|
|||
# Table is typically appname_modelname, but it could be different
|
||||
# always best to be sure.
|
||||
from .fields import CategoryM2MField, CategoryFKField
|
||||
from .settings import FIELD_REGISTRY
|
||||
from .registration import registry
|
||||
try:
|
||||
from south.db import db
|
||||
except ImportError:
|
||||
|
|
@ -97,7 +97,7 @@ def drop_field(app_name, model_name, field_name):
|
|||
|
||||
fld = '%s.%s.%s' % (app_name, model_name, field_name)
|
||||
|
||||
if isinstance(FIELD_REGISTRY[fld], CategoryFKField):
|
||||
if isinstance(registry._field_registry[fld], CategoryFKField):
|
||||
print (_('Dropping ForeignKey %(field_name)s from %(model_name)s') %
|
||||
{'field_name': field_name, 'model_name': model_name})
|
||||
try:
|
||||
|
|
@ -108,7 +108,7 @@ def drop_field(app_name, model_name, field_name):
|
|||
except DatabaseError, e:
|
||||
db.rollback_transaction()
|
||||
raise e
|
||||
elif isinstance(FIELD_REGISTRY[fld], CategoryM2MField):
|
||||
elif isinstance(registry._field_registry[fld], CategoryM2MField):
|
||||
print (_('Dropping Many2Many table between %(model_name)s and %(category_table)s') %
|
||||
{'model_name': model_name, 'category_table': 'category'})
|
||||
try:
|
||||
|
|
@ -2,11 +2,10 @@
|
|||
# Test adding 1 fk dict
|
||||
# test adding many-to-many
|
||||
# test adding 1 fk, 1 m2m
|
||||
|
||||
import django
|
||||
from django.test import TestCase
|
||||
|
||||
from categories.registration import (_process_registry, register_fk,
|
||||
register_m2m)
|
||||
from categories.registration import _process_registry, registry
|
||||
|
||||
|
||||
class CategoryRegistrationTest(TestCase):
|
||||
|
|
@ -18,7 +17,7 @@ class CategoryRegistrationTest(TestCase):
|
|||
FK_REGISTRY = {
|
||||
'flatpages.flatpage': 'category'
|
||||
}
|
||||
_process_registry(FK_REGISTRY, register_fk)
|
||||
_process_registry(FK_REGISTRY, registry.register_fk)
|
||||
from django.contrib.flatpages.models import FlatPage
|
||||
self.assertTrue('category' in FlatPage()._meta.get_all_field_names())
|
||||
|
||||
|
|
@ -26,7 +25,7 @@ class CategoryRegistrationTest(TestCase):
|
|||
FK_REGISTRY = {
|
||||
'flatpages.flatpage': {'name': 'category'}
|
||||
}
|
||||
_process_registry(FK_REGISTRY, register_fk)
|
||||
_process_registry(FK_REGISTRY, registry.register_fk)
|
||||
from django.contrib.flatpages.models import FlatPage
|
||||
self.assertTrue('category' in FlatPage()._meta.get_all_field_names())
|
||||
|
||||
|
|
@ -36,16 +35,24 @@ class CategoryRegistrationTest(TestCase):
|
|||
{'name': 'category', 'related_name': 'cats'},
|
||||
)
|
||||
}
|
||||
_process_registry(FK_REGISTRY, register_fk)
|
||||
_process_registry(FK_REGISTRY, registry.register_fk)
|
||||
from django.contrib.flatpages.models import FlatPage
|
||||
self.assertTrue('category' in FlatPage()._meta.get_all_field_names())
|
||||
|
||||
if django.VERSION[1] >= 7:
|
||||
def test_new_foreignkey_string(self):
|
||||
registry.register_model('flatpages', 'flatpage', 'ForeignKey', 'category')
|
||||
from django.contrib.flatpages.models import FlatPage
|
||||
self.assertTrue('category' in FlatPage()._meta.get_all_field_names())
|
||||
|
||||
|
||||
class Categorym2mTest(TestCase):
|
||||
def test_m2m_string(self):
|
||||
M2M_REGISTRY = {
|
||||
'flatpages.flatpage': 'categories'
|
||||
}
|
||||
_process_registry(M2M_REGISTRY, register_m2m)
|
||||
from django.contrib.flatpages.models import FlatPage
|
||||
self.assertTrue('category' in FlatPage()._meta.get_all_field_names())
|
||||
|
||||
|
||||
# class Categorym2mTest(TestCase):
|
||||
# def test_m2m_string(self):
|
||||
# M2M_REGISTRY = {
|
||||
# 'flatpages.flatpage': 'categories'
|
||||
# }
|
||||
# _process_registry(M2M_REGISTRY, register_m2m)
|
||||
# from django.contrib.flatpages.models import FlatPage
|
||||
# self.assertTrue('category' in FlatPage()._meta.get_all_field_names())
|
||||
|
|
|
|||
Loading…
Reference in a new issue