mirror of
https://github.com/Hopiu/wagtail-modeltranslation.git
synced 2026-03-16 22:10:30 +00:00
#175: Override Migrate command
To additionaly run `sync_page_translation_fields` To silence any missing migrations warnings
This commit is contained in:
parent
2135d7d081
commit
69ae7dfbd8
8 changed files with 57 additions and 1 deletions
5
setup.py
5
setup.py
|
|
@ -24,7 +24,10 @@ setup(
|
|||
'wagtail_modeltranslation.templatetags',
|
||||
'wagtail_modeltranslation.makemigrations',
|
||||
'wagtail_modeltranslation.makemigrations.management',
|
||||
'wagtail_modeltranslation.makemigrations.management.commands'],
|
||||
'wagtail_modeltranslation.makemigrations.management.commands',
|
||||
'wagtail_modeltranslation.migrate',
|
||||
'wagtail_modeltranslation.migrate.management',
|
||||
'wagtail_modeltranslation.migrate.management.commands'],
|
||||
package_data={'wagtail_modeltranslation': ['static/wagtail_modeltranslation/css/*.css',
|
||||
'static/wagtail_modeltranslation/js/*.js']},
|
||||
install_requires=['wagtail(>=1.4)', 'django-modeltranslation(>=0.12.2)'],
|
||||
|
|
|
|||
|
|
@ -0,0 +1,33 @@
|
|||
from django.core.management.commands.migrate import Command as MigrateCommand
|
||||
from django.db.migrations.autodetector import MigrationAutodetector
|
||||
from .sync_page_translation_fields import Command as SyncPageTranslationFieldsCommand
|
||||
|
||||
|
||||
# decorate MigrationAutodetector.changes so we can silence any wagtailcore migrations missing warnings
|
||||
def changes_decorator(func):
|
||||
def wrapper(self, graph, trim_to_apps=None, convert_apps=None, migration_name=None):
|
||||
changes = func(self, graph, trim_to_apps, convert_apps, migration_name)
|
||||
if 'wagtailcore' in changes:
|
||||
del changes['wagtailcore']
|
||||
return changes
|
||||
return wrapper
|
||||
|
||||
|
||||
class Command(MigrateCommand):
|
||||
help = "Updates database schema. Manages both apps with migrations and those without. " \
|
||||
"Updates Wagtail Page translation fields"
|
||||
|
||||
def handle(self, *args, **options):
|
||||
old_autodetector_changes = MigrationAutodetector.changes
|
||||
MigrationAutodetector.changes = changes_decorator(MigrationAutodetector.changes)
|
||||
|
||||
try:
|
||||
super(Command, self).handle(*args, **options)
|
||||
finally:
|
||||
MigrationAutodetector.changes = old_autodetector_changes
|
||||
|
||||
# Run sync_page_translation_fields command
|
||||
sync_page_command = SyncPageTranslationFieldsCommand()
|
||||
# Update the dict of sync_page_command with the content of this one
|
||||
sync_page_command.__dict__.update(self.__dict__)
|
||||
sync_page_command.handle(*args, **options)
|
||||
3
wagtail_modeltranslation/migrate/__init__.py
Normal file
3
wagtail_modeltranslation/migrate/__init__.py
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
# coding: utf-8
|
||||
|
||||
default_app_config = 'wagtail_modeltranslation.migrate.apps.MigrateConfig'
|
||||
7
wagtail_modeltranslation/migrate/apps.py
Normal file
7
wagtail_modeltranslation/migrate/apps.py
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class MigrateConfig(AppConfig):
|
||||
name = 'wagtail_modeltranslation.migrate'
|
||||
label = 'wagtail_modeltranslation_migrate'
|
||||
verbose_name = "Wagtail Modeltranslation migrate"
|
||||
0
wagtail_modeltranslation/migrate/management/__init__.py
Normal file
0
wagtail_modeltranslation/migrate/management/__init__.py
Normal file
0
wagtail_modeltranslation/migrate/management/commands/__init__.py
Executable file
0
wagtail_modeltranslation/migrate/management/commands/__init__.py
Executable file
|
|
@ -0,0 +1,5 @@
|
|||
from wagtail_modeltranslation.management.commands.migrate_translation import Command as MigrateCommand
|
||||
|
||||
|
||||
class Command(MigrateCommand):
|
||||
pass
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
from django.core.management.commands.migrate import Command as MigrateCommand
|
||||
|
||||
|
||||
class Command(MigrateCommand):
|
||||
pass
|
||||
Loading…
Reference in a new issue