Commit 2cd898da authored by Michal Čihař's avatar Michal Čihař

Merge pull request #537 from tymofij/optional-south

make South installation optional
parents 779faaa8 315c8e08
...@@ -33,7 +33,6 @@ from django.utils import translation as django_translation ...@@ -33,7 +33,6 @@ from django.utils import translation as django_translation
from django.template.loader import render_to_string from django.template.loader import render_to_string
from django.core.mail import EmailMultiAlternatives from django.core.mail import EmailMultiAlternatives
from south.signals import post_migrate
from social.apps.django_app.default.models import UserSocialAuth from social.apps.django_app.default.models import UserSocialAuth
from weblate.lang.models import Language from weblate.lang.models import Language
...@@ -706,8 +705,6 @@ def remove_user(user): ...@@ -706,8 +705,6 @@ def remove_user(user):
user.social_auth.all().delete() user.social_auth.all().delete()
@receiver(post_syncdb)
@receiver(post_migrate)
def sync_create_groups(sender, app, **kwargs): def sync_create_groups(sender, app, **kwargs):
''' '''
Create groups on syncdb. Create groups on syncdb.
...@@ -716,6 +713,11 @@ def sync_create_groups(sender, app, **kwargs): ...@@ -716,6 +713,11 @@ def sync_create_groups(sender, app, **kwargs):
or getattr(app, '__name__', '') == 'weblate.accounts.models'): or getattr(app, '__name__', '') == 'weblate.accounts.models'):
create_groups(False) create_groups(False)
post_syncdb.connect(sync_create_groups)
if 'south' in settings.INSTALLED_APPS:
from south.signals import post_migrate
post_migrate.connect(sync_create_groups)
@receiver(post_save, sender=User) @receiver(post_save, sender=User)
def create_profile_callback(sender, instance, created=False, **kwargs): def create_profile_callback(sender, instance, created=False, **kwargs):
......
...@@ -25,9 +25,8 @@ from translate.lang.data import languages ...@@ -25,9 +25,8 @@ from translate.lang.data import languages
from weblate.lang import data from weblate.lang import data
from weblate.trans.mixins import PercentMixin from weblate.trans.mixins import PercentMixin
from south.signals import post_migrate from django.conf import settings
from django.db.models.signals import post_syncdb from django.db.models.signals import post_syncdb
from django.dispatch import receiver
from weblate.appsettings import SIMPLIFY_LANGUAGES from weblate.appsettings import SIMPLIFY_LANGUAGES
import weblate import weblate
...@@ -288,8 +287,6 @@ class LanguageManager(models.Manager): ...@@ -288,8 +287,6 @@ class LanguageManager(models.Manager):
return errors return errors
@receiver(post_syncdb)
@receiver(post_migrate)
def setup_lang(sender, app, **kwargs): def setup_lang(sender, app, **kwargs):
''' '''
Hook for creating basic set of languages on database migration. Hook for creating basic set of languages on database migration.
...@@ -297,6 +294,11 @@ def setup_lang(sender, app, **kwargs): ...@@ -297,6 +294,11 @@ def setup_lang(sender, app, **kwargs):
if app == 'lang' or getattr(app, '__name__', '') == 'weblate.lang.models': if app == 'lang' or getattr(app, '__name__', '') == 'weblate.lang.models':
Language.objects.setup(False) Language.objects.setup(False)
post_syncdb.connect(setup_lang)
if 'south' in settings.INSTALLED_APPS:
from south.signals import post_migrate
post_migrate.connect(setup_lang)
class Language(models.Model, PercentMixin): class Language(models.Model, PercentMixin):
PLURAL_CHOICES = ( PLURAL_CHOICES = (
......
...@@ -24,6 +24,7 @@ from distutils.version import LooseVersion ...@@ -24,6 +24,7 @@ from distutils.version import LooseVersion
from weblate.trans.vcs import GitRepository from weblate.trans.vcs import GitRepository
import importlib import importlib
import sys import sys
import django
def get_version_module(module, name, url, optional=False): def get_version_module(module, name, url, optional=False):
...@@ -139,13 +140,14 @@ def get_versions(): ...@@ -139,13 +140,14 @@ def get_versions():
name = 'South' name = 'South'
url = 'http://south.aeracode.org/' url = 'http://south.aeracode.org/'
mod = get_version_module('south', name, url) if django.VERSION < (1, 7, 0):
result.append(( mod = get_version_module('south', name, url)
name, result.append((
url, name,
mod.__version__, url,
'1.0', mod.__version__,
)) '1.0',
))
name = 'Pillow (PIL)' name = 'Pillow (PIL)'
url = 'http://python-imaging.github.io/' url = 'http://python-imaging.github.io/'
......
...@@ -18,11 +18,9 @@ ...@@ -18,11 +18,9 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
from south.signals import post_migrate from django.conf import settings
from django.dispatch import receiver
@receiver(post_migrate)
def create_permissions_compat(app, **kwargs): def create_permissions_compat(app, **kwargs):
''' '''
Creates permissions like syncdb would if we were not using South Creates permissions like syncdb would if we were not using South
...@@ -30,7 +28,6 @@ def create_permissions_compat(app, **kwargs): ...@@ -30,7 +28,6 @@ def create_permissions_compat(app, **kwargs):
See http://south.aeracode.org/ticket/211 See http://south.aeracode.org/ticket/211
''' '''
from django.db.models import get_app, get_models from django.db.models import get_app, get_models
from django.conf import settings
from django.contrib.auth.management import create_permissions from django.contrib.auth.management import create_permissions
if app in ('trans', 'lang', 'accounts'): if app in ('trans', 'lang', 'accounts'):
try: try:
...@@ -40,3 +37,7 @@ def create_permissions_compat(app, **kwargs): ...@@ -40,3 +37,7 @@ def create_permissions_compat(app, **kwargs):
except AttributeError as error: except AttributeError as error:
# See https://code.djangoproject.com/ticket/20442 # See https://code.djangoproject.com/ticket/20442
print 'Failed to create permission objects: {0}'.format(error) print 'Failed to create permission objects: {0}'.format(error)
if 'south' in settings.INSTALLED_APPS:
from south.signals import post_migrate
post_migrate.connect(create_permissions_compat)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment