Ejemplo n.º 1
0
    def _language(self, request, obj=None):
        """
        Get the language parameter from the current request.
        """
        if not is_multilingual_project() or not self._has_translatable_model():
            # By default, the objects are stored in a single static language.
            # This makes the transition to multilingual easier as well.
            # The default language can operate as fallback language too.
            return appsettings.PARLER_DEFAULT_LANGUAGE_CODE
        else:
            # In multilingual mode, take the provided language of the request.
            code = request.GET.get(self.query_language_key)

            if not code:
                # Show first tab by default
                try:
                    lang_choices = appsettings.PARLER_LANGUAGES[
                        settings.SITE_ID]
                    code = lang_choices[0]['code']
                except (KeyError, IndexError):
                    # No configuration, always fallback to default language.
                    # This is essentially a non-multilingual configuration.
                    code = appsettings.PARLER_DEFAULT_LANGUAGE_CODE

            return normalize_language_code(code)
Ejemplo n.º 2
0
 def get_queryset_language(self, request):
     if not is_multilingual_project():
         # Make sure the current translations remain visible, not the dynamically set get_language() value.
         return appsettings.PARLER_LANGUAGES.get_default_language()
     else:
         # Set the initial language for fetched objects.
         # This is needed for the TranslatableInlineModelAdmin
         return self._language(request)
Ejemplo n.º 3
0
 def get_queryset_language(self, request):
     if not is_multilingual_project():
         # Make sure the current translations remain visible, not the dynamically set get_language() value.
         return appsettings.PARLER_LANGUAGES.get_default_language()
     else:
         # Set the initial language for fetched objects.
         # This is needed for the TranslatableInlineModelAdmin
         return self._language(request)
Ejemplo n.º 4
0
 def get_queryset_language(self, request):
     """
     Return the language to use in the queryset.
     """
     if not is_multilingual_project():
         # Make sure the current translations remain visible, not the dynamically set get_language() value.
         return appsettings.PARLER_LANGUAGES.get_default_language()
     else:
         # Allow to adjust to current language
         # This is overwritten for the inlines, which follow the primary object.
         return get_language()
Ejemplo n.º 5
0
 def get_queryset_language(self, request):
     """
     Return the language to use in the queryset.
     """
     if not is_multilingual_project():
         # Make sure the current translations remain visible, not the dynamically set get_language() value.
         return appsettings.PARLER_LANGUAGES.get_default_language()
     else:
         # Allow to adjust to current language
         # This is overwritten for the inlines, which follow the primary object.
         return get_language()
Ejemplo n.º 6
0
    def queryset(self, request):
        """
        Make sure the current language is selected.
        """
        qs = super(TranslatableAdmin, self).queryset(request)

        if self._has_translatable_model():
            if not isinstance(qs, TranslatableQuerySet):
                raise ImproperlyConfigured("{0} class does not inherit from TranslatableQuerySet".format(qs.__class__.__name__))

            if not is_multilingual_project():
                # Make sure the current translations remain visible, not the dynamically set get_language() value.
                qs = qs.language(appsettings.PARLER_DEFAULT_LANGUAGE_CODE)
        return qs
Ejemplo n.º 7
0
    def queryset(self, request):
        """
        Make sure the current language is selected.
        """
        qs = super(BaseTranslatableAdmin, self).queryset(request)

        if self._has_translatable_model():
            if not isinstance(qs, TranslatableQuerySet):
                raise ImproperlyConfigured(
                    "{0} class does not inherit from TranslatableQuerySet".
                    format(qs.__class__.__name__))

            if not is_multilingual_project():
                # Make sure the current translations remain visible, not the dynamically set get_language() value.
                qs = qs.language(appsettings.PARLER_DEFAULT_LANGUAGE_CODE)
            else:
                # Set the initial language for fetched objects.
                # This is needed for the TranslatableInlineModelAdmin
                qs = qs.language(self._language(request))
        return qs
Ejemplo n.º 8
0
    def _language(self, request, obj=None):
        """
        Get the language parameter from the current request.
        """
        if not is_multilingual_project() or not self._has_translatable_model():
            # By default, the objects are stored in a single static language.
            # This makes the transition to multilingual easier as well.
            # The default language can operate as fallback language too.
            return appsettings.PARLER_DEFAULT_LANGUAGE_CODE
        else:
            # In multilingual mode, take the provided language of the request.
            code = request.GET.get(self.query_language_key)

            if not code:
                # Show first tab by default
                try:
                    lang_choices = appsettings.PARLER_LANGUAGES[settings.SITE_ID]
                    code = lang_choices[0]['code']
                except (KeyError, IndexError):
                    # No configuration, always fallback to default language.
                    # This is essentially a non-multilingual configuration.
                    code = appsettings.PARLER_DEFAULT_LANGUAGE_CODE

            return normalize_language_code(code)