From 0c681b615d3e984519d465e283fce17c1a58c704 Mon Sep 17 00:00:00 2001 From: Oleg Lavrovsky Date: Fri, 25 May 2018 15:17:53 +0200 Subject: [PATCH] English language fields --- publichealth/home/models/models.py | 13 +++++++++++++ publichealth/home/models/snippets.py | 3 +++ publichealth/home/templatetags/navigation.py | 2 ++ publichealth/home/util.py | 2 +- 4 files changed, 19 insertions(+), 1 deletion(-) diff --git a/publichealth/home/models/models.py b/publichealth/home/models/models.py index a3bd587..d7284df 100644 --- a/publichealth/home/models/models.py +++ b/publichealth/home/models/models.py @@ -219,16 +219,20 @@ class ArticleRelatedLink(Orderable): class HomePage(Page): intro_de = RichTextField(default='') intro_fr = RichTextField(default='') + intro_en = RichTextField(default='') trans_intro = TranslatedField( 'intro_de', 'intro_fr', + 'intro_en', ) body_de = RichTextField(default='', blank=True) body_fr = RichTextField(default='', blank=True) + body_en = RichTextField(default='', blank=True) trans_body = TranslatedField( 'body_de', 'body_fr', + 'body_en', ) infos_de = StreamField([ @@ -237,9 +241,13 @@ class HomePage(Page): infos_fr = StreamField([ ('info', InfoBlock()) ], null=True, blank=True) + infos_en = StreamField([ + ('info', InfoBlock()) + ], null=True, blank=True) trans_infos = TranslatedField( 'infos_de', 'infos_fr', + 'infos_en', ) content_panels = Page.content_panels + [ @@ -253,6 +261,11 @@ class HomePage(Page): FieldPanel('body_fr', classname="full"), StreamFieldPanel('infos_fr'), ], heading="Français"), + MultiFieldPanel([ + FieldPanel('intro_en', classname="full"), + FieldPanel('body_en', classname="full"), + StreamFieldPanel('infos_en'), + ], heading="English"), ] @property diff --git a/publichealth/home/models/snippets.py b/publichealth/home/models/snippets.py index 045d2a8..2565da7 100644 --- a/publichealth/home/models/snippets.py +++ b/publichealth/home/models/snippets.py @@ -52,9 +52,11 @@ class Contact(models.Model): """ title = models.CharField(max_length=255, default="") title_fr = models.CharField(max_length=255, default="") + title_en = models.CharField(max_length=255, default="") trans_title = TranslatedField( 'title', 'title_fr', + 'title_en', ) address = models.TextField(default="", blank=True) phone = models.CharField(max_length=40, default="") @@ -75,6 +77,7 @@ class Contact(models.Model): panels = Page.content_panels + [ FieldPanel('title_fr'), + FieldPanel('title_en'), FieldPanel('address'), FieldPanel('phone'), FieldPanel('email'), diff --git a/publichealth/home/templatetags/navigation.py b/publichealth/home/templatetags/navigation.py index f8b0ae0..a5bb3b8 100644 --- a/publichealth/home/templatetags/navigation.py +++ b/publichealth/home/templatetags/navigation.py @@ -13,6 +13,8 @@ def language_switcher(context): if len(url) > 2 and len(url[1]) >= 2: url[1] = '$lang$' url = '/'.join(url) + else: + url = context['page'].url return { 'languages': [ { 'code': 'de', 'title': 'De', 'url': url.replace('$lang$','de') }, diff --git a/publichealth/home/util.py b/publichealth/home/util.py index f917f50..4b03c5d 100644 --- a/publichealth/home/util.py +++ b/publichealth/home/util.py @@ -1,7 +1,7 @@ from django.utils import translation class TranslatedField(object): - def __init__(self, de_field, fr_field, en_field=None): + def __init__(self, de_field, fr_field, en_field): self.de_field = de_field self.fr_field = fr_field self.en_field = en_field