continue # hardcoded paths... bleh if key in translations: links.append(( key, name, translations[key].get_absolute_url() + trailing_path)) elif not only_existing: links.append((key, name, None)) return links register.tag( 'feincms_languagelinks', do_simple_assignment_node_with_var_and_args_helper(LanguageLinksNode)) # ------------------------------------------------------------------------ def _translate_page_into(page, language, default=None): """ Return the translation for a given page """ # Optimisation shortcut: No need to dive into translations if page already # what we want try: if page.language == language: return page if language is not None: translations = dict(
class FooterNavigationNode(SimpleAssignmentNodeWithVarAndArgs): """ DEPRICATED: USE footer_pages TAG {% load in_footer %} {% footer_navigation for feincms_page as footer_pages %} {% for p in footer_pages %} <a href="{{p.get_absolute_url}}">{{p.title}}</a>{% if not forloop.last %} |{% endif %} {% endfor %} """ def what(self, page, args, default=None): queryset = Page.objects.active().filter(in_footer=True) return queryset.filter(language=translation.get_language()) if 'language' in [f.name for f in Page._meta.fields] else queryset register.tag('footer_navigation', do_simple_assignment_node_with_var_and_args_helper(FooterNavigationNode)) @register.simple_tag(name="footer_pages") def in_footer(): """ {% load in_footer %} {% footer_pages as footer_pages %} {% for p in footer_pages %} <li> <a href="{{ p.get_absolute_url }}">{{ p.title }}</a> </li> {% endfor %} """ queryset = Page.objects.active().filter(in_footer=True) return queryset.filter(language=translation.get_language()) if 'language' in [f.name for f in Page._meta.fields] else queryset
translations[page.language] = page links = [] for key, name in settings.LANGUAGES: if exclude_current and key == page.language: continue # hardcoded paths... bleh if key in translations: links.append((key, name, translations[key].get_absolute_url() + trailing_path)) elif not only_existing: links.append((key, name, None)) return links register.tag('feincms_languagelinks', do_simple_assignment_node_with_var_and_args_helper(LanguageLinksNode)) # ------------------------------------------------------------------------ def _translate_page_into(page, language, default=None): """ Return the translation for a given page """ # Optimisation shortcut: No need to dive into translations if page already what we want try: if page.language == language: return page if language is not None: translations = dict((t.language, t) for t in page.available_translations()) if language in translations:
from django import template from django.utils import translation from feincms.module.page.models import Page from feincms.utils.templatetags import SimpleAssignmentNodeWithVarAndArgs from feincms.utils.templatetags import do_simple_assignment_node_with_var_and_args_helper register = template.Library() class FooterNavigationNode(SimpleAssignmentNodeWithVarAndArgs): """ {% load in_footer %} {% footer_navigation for feincms_page as footer_pages %} {% for p in footer_pages %} <a href="{{p.get_absolute_url}}">{{p.title}}</a>{% if not forloop.last %} |{% endif %} {% endfor %} """ def what(self, page, args, default=None): queryset = Page.objects.active().filter(in_footer=True) return queryset.filter(language=translation.get_language()) if 'language' in [f.name for f in Page._meta.fields] else queryset register.tag('footer_navigation', do_simple_assignment_node_with_var_and_args_helper(FooterNavigationNode))