Exemplo n.º 1
0
def post_migrate_handler(sender, **kwargs):
    from merengue.pluggable import enable_active_plugins
    global post_save_receivers, cache_backend
    app = kwargs['app']
    if is_last_application(app):
        enable_active_plugins()
    # site fixtures loading after migration
    for app_name, fixtures in getattr(settings, 'SITE_FIXTURES', {}).items():
        if app_name == app:  # only migrate
            for fixture in fixtures:
                call_command('loaddata', fixture, verbosity=1)
    # will set again saved receivers and cache backend
    post_save.receivers = post_save_receivers
    settings.CACHES['default']['BACKEND'] = cache_backend
Exemplo n.º 2
0
def active_default_plugins(*args, **kwargs):
    """ active default plugins and creates the portal menu in each language """
    # Only want to run this signal after all application was migrated, but
    # south have not a "post all migrations" signal.
    # The workaround is "collab" have to be the last application migrated
    if is_last_application(kwargs['app']):
        # register required plugins
        for plugin_dir in settings.REQUIRED_PLUGINS:
            active_plugin_with_deps(plugin_dir)
        # populate menu
        from merengue.section.models import Menu
        name_attr = get_fallback_fieldname('name')
        attrs = {name_attr: 'Portal menu', 'slug': settings.MENU_PORTAL_SLUG}
        try:
            portal_menu = Menu.objects.get(slug=settings.MENU_PORTAL_SLUG)
        except Menu.DoesNotExist:
            # creating portal menu if does not exist
            portal_menu = Menu.objects.create(**attrs)
            for lang_code, lang_text in settings.LANGUAGES:
                setattr(portal_menu, 'name_%s' % lang_code, ugettext('portal menu'))
            portal_menu.save()
Exemplo n.º 3
0
def active_default_plugins(*args, **kwargs):
    """ active default plugins and creates the portal menu in each language """
    # Only want to run this signal after all application was migrated, but
    # south have not a "post all migrations" signal.
    # The workaround is "collab" have to be the last application migrated
    if is_last_application(kwargs['app']):
        # register required plugins
        for plugin_dir in settings.REQUIRED_PLUGINS:
            active_plugin_with_deps(plugin_dir)
        # populate menu
        from merengue.section.models import Menu
        name_attr = get_fallback_fieldname('name')
        attrs = {name_attr: 'Portal menu', 'slug': settings.MENU_PORTAL_SLUG}
        try:
            portal_menu = Menu.objects.get(slug=settings.MENU_PORTAL_SLUG)
        except Menu.DoesNotExist:
            # creating portal menu if does not exist
            portal_menu = Menu.objects.create(**attrs)
            for lang_code, lang_text in settings.LANGUAGES:
                setattr(portal_menu, 'name_%s' % lang_code,
                        ugettext('portal menu'))
            portal_menu.save()