def toplevel_navigation(self, current_page=None, for_user=None, language_code=None): """ Return all toplevel items, ordered by menu ordering. When current_page is passed, the object values such as 'is_current' will be set. """ qs = self.toplevel().in_navigation(for_user=for_user).non_polymorphic()._mark_current(current_page) # Make sure only translated menu items are visible. if is_multilingual_project(): if language_code is None: if current_page is None or getattr(current_page, '_fetched_in_fallback_language', False): # Show the menu in the current site language. # When a page is fetched in a fallback, the menu shouldn't change. language_code = get_language() else: # This exists to preserve old behavior. Maybe it can be removed: language_code = current_page.get_current_language() lang_dict = appsettings.FLUENT_PAGES_LANGUAGES.get_language(language_code) if lang_dict['hide_untranslated_menu_items']: qs = qs.translated(language_code) else: qs = qs.active_translations(language_code) return qs
def toplevel_navigation(self, current_page=None, for_user=None, language_code=None): """ Return all toplevel items, ordered by menu ordering. When current_page is passed, the object values such as 'is_current' will be set. """ qs = self.toplevel().in_navigation( for_user=for_user).non_polymorphic()._mark_current(current_page) # Make sure only translated menu items are visible. if is_multilingual_project(): if language_code is None: if current_page is None or getattr( current_page, '_fetched_in_fallback_language', False): # Show the menu in the current site language. # When a page is fetched in a fallback, the menu shouldn't change. language_code = get_language() else: # This exists to preserve old behavior. Maybe it can be removed: language_code = current_page.get_current_language() lang_dict = appsettings.FLUENT_PAGES_LANGUAGES.get_language( language_code) if lang_dict['hide_untranslated_menu_items']: qs = qs.translated(language_code) else: qs = qs.active_translations(language_code) return qs
def toplevel_navigation(self, current_page=None): """ Return all toplevel items, ordered by menu ordering. When current_page is passed, the object values such as 'is_current' will be set. """ qs = self.toplevel().in_navigation().non_polymorphic()._mark_current(current_page) # Make sure only translated menu items are visible. if is_multilingual_project(): qs = qs.active_translations() return qs
def __init__(self, *args, **kwargs): if 'parent' not in self.base_fields and mptt.VERSION[:2] == (0, 6): # Skip bug in django-mptt 0.6.0 # https://github.com/django-mptt/django-mptt/issues/275 TranslatableModelForm.__init__(self, *args, **kwargs) else: super(UrlNodeAdminForm, self).__init__(*args, **kwargs) if 'override_url' in self.fields: self.fields['override_url'].language_code = self.language_code # Warn about django-parler issue that inherited models are not yet translatable. if is_multilingual_project(): for f_name in ('meta_description', 'meta_keywords', 'meta_title', 'new_url'): if f_name in self.fields: field = self.fields[f_name] field.help_text += " " + ugettext("Note: this field is not yet translatable")
def toplevel_navigation(self, current_page=None, for_user=None): """ Return all toplevel items, ordered by menu ordering. When current_page is passed, the object values such as 'is_current' will be set. """ qs = self.toplevel().in_navigation(for_user=for_user).non_polymorphic()._mark_current(current_page) # Make sure only translated menu items are visible. if is_multilingual_project(): language_code = current_page.get_current_language() if current_page is not None else get_language() lang_dict = appsettings.FLUENT_PAGES_LANGUAGES.get_language(language_code) if lang_dict['hide_untranslated_menu_items']: qs = qs.translated(language_code) else: qs = qs.active_translations(language_code) return qs
def toplevel_navigation(self, current_page=None): """ Return all toplevel items, ordered by menu ordering. When current_page is passed, the object values such as 'is_current' will be set. """ qs = self.toplevel().in_navigation().non_polymorphic()._mark_current(current_page) if is_multilingual_project(): # Make sure only translated menu items are visible. language = get_language() fallback = appsettings.get_language_settings(language).get('fallback') if fallback and fallback != language: qs = qs.filter(translations__language_code__in=(language, fallback)).distinct() else: qs = qs.filter(translations__language_code=language) return qs
def toplevel_navigation(self, current_page=None, for_user=None): """ Return all toplevel items, ordered by menu ordering. When current_page is passed, the object values such as 'is_current' will be set. """ qs = self.toplevel().in_navigation( for_user=for_user).non_polymorphic()._mark_current(current_page) # Make sure only translated menu items are visible. if is_multilingual_project(): language_code = current_page.get_current_language( ) if current_page is not None else get_language() lang_dict = appsettings.FLUENT_PAGES_LANGUAGES.get_language( language_code) if lang_dict['hide_untranslated_menu_items']: qs = qs.translated(language_code) else: qs = qs.active_translations(language_code) return qs
def __init__(self, *args, **kwargs): if "parent" not in self.base_fields and mptt.VERSION[:2] == (0, 6): # Skip bug in django-mptt 0.6.0 # https://github.com/django-mptt/django-mptt/issues/275 TranslatableModelForm.__init__(self, *args, **kwargs) else: super(UrlNodeAdminForm, self).__init__(*args, **kwargs) if "override_url" in self.fields: self.fields["override_url"].language_code = self.language_code # When the is_sitemap field is exposed, make sure it has the right default. # This can't be set on the model level, because the default depends on the page type. if "in_sitemaps" in self.fields and not self.instance.pk: self.fields["in_sitemaps"].initial = self.instance.plugin.default_in_sitemaps # Warn about django-parler issue that inherited models are not yet translatable. if is_multilingual_project(): for f_name in ("meta_description", "meta_keywords", "meta_title", "new_url"): if f_name in self.fields: field = self.fields[f_name] field.help_text += " " + ugettext("Note: this field is not yet translatable")
def __init__(self, *args, **kwargs): if 'parent' not in self.base_fields and mptt.VERSION[:2] == (0, 6): # Skip bug in django-mptt 0.6.0 # https://github.com/django-mptt/django-mptt/issues/275 TranslatableModelForm.__init__(self, *args, **kwargs) else: super(UrlNodeAdminForm, self).__init__(*args, **kwargs) if 'override_url' in self.fields: self.fields['override_url'].language_code = self.language_code # When the is_sitemap field is exposed, make sure it has the right default. # This can't be set on the model level, because the default depends on the page type. if 'in_sitemaps' in self.fields and not self.instance.pk: self.fields['in_sitemaps'].initial = self.instance.plugin.default_in_sitemaps # Warn about django-parler issue that inherited models are not yet translatable. if is_multilingual_project(): for f_name in ('meta_description', 'meta_keywords', 'meta_title', 'new_url'): if f_name in self.fields: field = self.fields[f_name] field.help_text += " " + ugettext("Note: this field is not yet translatable")