mirror of
https://github.com/Hopiu/wagtail-modeltranslation.git
synced 2026-05-11 16:53:11 +00:00
v0.0.5
This commit is contained in:
parent
139d7adb11
commit
588abe760f
9 changed files with 52 additions and 5 deletions
|
|
@ -45,6 +45,11 @@ Simple app containing a mixin model that integrates modeltranslation
|
|||
|
||||
## Release Notes
|
||||
|
||||
### v0.0.5
|
||||
|
||||
- Now using django-modeltranslation 0.9.1;
|
||||
- Fixed problem related to slug field fallbacks;
|
||||
|
||||
### v0.0.4
|
||||
|
||||
** IMPORTANT: ** make sure that TranslationMixin comes before Page class on model inheritance
|
||||
|
|
|
|||
BIN
dist/wagtail-modeltranslation-0.0.5.tar.gz
vendored
Normal file
BIN
dist/wagtail-modeltranslation-0.0.5.tar.gz
vendored
Normal file
Binary file not shown.
4
setup.py
4
setup.py
|
|
@ -9,7 +9,7 @@ os.chdir(os.path.normpath(os.path.join(os.path.abspath(__file__), os.pardir)))
|
|||
|
||||
setup(
|
||||
name='wagtail-modeltranslation',
|
||||
version='0.0.4',
|
||||
version='0.0.5',
|
||||
packages=['wagtail_modeltranslation'],
|
||||
include_package_data=True,
|
||||
license='BSD License',
|
||||
|
|
@ -32,5 +32,5 @@ setup(
|
|||
'Topic :: Internet :: WWW/HTTP',
|
||||
'Topic :: Internet :: WWW/HTTP :: Dynamic Content',
|
||||
],
|
||||
install_requires=['django-modeltranslation==0.9', 'wagtail']
|
||||
install_requires=['django-modeltranslation==0.9.1', 'wagtail']
|
||||
)
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
Metadata-Version: 1.1
|
||||
Name: wagtail-modeltranslation
|
||||
Version: 0.0.4
|
||||
Version: 0.0.5
|
||||
Summary: Integration of django-modeltranslation with Wagtail CMS
|
||||
Home-page: UNKNOWN
|
||||
Author: Rui Martins
|
||||
|
|
@ -53,6 +53,11 @@ Description: # Wagtail modeltranslation
|
|||
|
||||
## Release Notes
|
||||
|
||||
### v0.0.5
|
||||
|
||||
- Now using django-modeltranslation 0.9.1;
|
||||
- Fixed problem related to slug field fallbacks;
|
||||
|
||||
### v0.0.4
|
||||
|
||||
** IMPORTANT: ** make sure that TranslationMixin comes before Page class on model inheritance
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
django-modeltranslation==0.9
|
||||
django-modeltranslation==0.9.1
|
||||
wagtail
|
||||
|
|
@ -8,8 +8,13 @@ from wagtail.wagtailcore.models import Page
|
|||
|
||||
class Command(NoArgsCommand):
|
||||
def set_subtree(self, root, root_path, lang=None):
|
||||
update_fields = ['url_path_'+lang]
|
||||
|
||||
setattr(root, 'url_path_'+lang, root_path)
|
||||
root.save(update_fields=['url_path_'+lang])
|
||||
if lang == settings.LANGUAGE_CODE:
|
||||
setattr(root, 'url_path', root_path)
|
||||
update_fields.append('url_path')
|
||||
root.save(update_fields=update_fields)
|
||||
for child in root.get_children():
|
||||
slug = getattr(child, 'slug_'+lang)
|
||||
if not slug or slug == '':
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -3,11 +3,15 @@
|
|||
import copy
|
||||
|
||||
from django.conf import settings
|
||||
from django.http import Http404
|
||||
from django.db.models import Q
|
||||
|
||||
from wagtail.wagtailcore.models import Page
|
||||
from wagtail.wagtailadmin.edit_handlers import FieldPanel,\
|
||||
MultiFieldPanel, FieldRowPanel
|
||||
from wagtail.wagtailadmin.views.pages import get_page_edit_handler,\
|
||||
PAGE_EDIT_HANDLERS
|
||||
from wagtail.wagtailcore.url_routing import RouteResult
|
||||
|
||||
from modeltranslation.translator import translator, NotRegistered
|
||||
|
||||
|
|
@ -219,3 +223,31 @@ class TranslationMixin(object):
|
|||
setattr(self, 'url_path_'+lang[0], '/')
|
||||
|
||||
return self.url_path
|
||||
|
||||
def route(self, request, path_components):
|
||||
"""
|
||||
Rewrite route method in order to handle languages fallbacks
|
||||
"""
|
||||
if path_components:
|
||||
# request is for a child of this page
|
||||
child_slug = path_components[0]
|
||||
remaining_components = path_components[1:]
|
||||
|
||||
try:
|
||||
q = Q()
|
||||
for lang in settings.LANGUAGES:
|
||||
tr_field_name = 'slug_%s' % (lang[0])
|
||||
condition = {tr_field_name: child_slug}
|
||||
q |= Q(**condition)
|
||||
subpage = self.get_children().get(q)
|
||||
except Page.DoesNotExist:
|
||||
raise Http404
|
||||
|
||||
return subpage.specific.route(request, remaining_components)
|
||||
|
||||
else:
|
||||
# request is for this very page
|
||||
if self.live:
|
||||
return RouteResult(self)
|
||||
else:
|
||||
raise Http404
|
||||
|
|
|
|||
Binary file not shown.
Loading…
Reference in a new issue