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
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()
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()