Initial commit
This commit is contained in:
41
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/models.py
vendored
Normal file
41
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/models.py
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
from django.conf import settings
|
||||
from django.db.models import Model
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from wagtail import hooks
|
||||
from wagtail.models import Locale
|
||||
|
||||
|
||||
class SimpleTranslation(Model):
|
||||
"""
|
||||
SimpleTranslation, dummy model to create the `submit_translation` permission.
|
||||
|
||||
We need this model to be concrete or the following management commands will misbehave:
|
||||
- `remove_stale_contenttypes`, will drop the perm
|
||||
- `dump_data`, will complain about the missing table
|
||||
"""
|
||||
|
||||
class Meta:
|
||||
default_permissions = []
|
||||
permissions = [
|
||||
("submit_translation", _("Can submit translations")),
|
||||
]
|
||||
|
||||
|
||||
@hooks.register("after_create_page")
|
||||
def after_create_page(request, page):
|
||||
"""Creates page aliases in other locales when a page is created.
|
||||
|
||||
Whenever a page is created under a specific locale, this signal handler
|
||||
creates an alias page for that page under the other locales.
|
||||
|
||||
e.g. When an editor creates the page "blog/my-blog-post" under the English
|
||||
tree, this signal handler creates an alias of that page called
|
||||
"blog/my-blog-post" under the other locales' trees.
|
||||
"""
|
||||
if getattr(settings, "WAGTAILSIMPLETRANSLATION_SYNC_PAGE_TREE", False):
|
||||
# Check if the source tree needs to be synchronised into any other trees
|
||||
# Create aliases in all those locales
|
||||
for locale in Locale.objects.exclude(pk=page.locale_id):
|
||||
if not page.has_translation(locale):
|
||||
page.copy_for_translation(locale, copy_parents=True, alias=True)
|
||||
Reference in New Issue
Block a user