示例#1
0
 def save(self, commit=True):
     is_default = self.cleaned_data.get('is_default', False)
     if (not self.initial.get('is_default') == is_default and is_default
             and not get_wagtailtrans_setting('LANGUAGES_PER_SITE')):
         from wagtailtrans.utils.language_switch import change_default_language  # noqa
         change_default_language(self.instance)
     return super().save(commit=commit)
示例#2
0
    def save(self, commit=True):
        data = self.cleaned_data
        if not data['default_language'].pk == self.initial['default_language']:
            from wagtailtrans.utils.language_switch import change_default_language  # noqa
            change_default_language(data['default_language'], self.instance.site)

        return super(SiteLanguagesForm, self).save(commit=commit)
示例#3
0
    def test_switch_new_language(self, languages):

        en = languages.get(code='en')
        nl = languages.get(code='nl')

        self.canonical_page.create_translation(language=nl, copy_fields=True)
        subpage1 = TranslatablePageFactory.build(language=en,
                                                 title='subpage1 in EN tree')
        subpage2 = TranslatablePageFactory.build(language=en,
                                                 title='subpage2 in EN tree')

        self.canonical_page.add_child(instance=subpage1)
        self.canonical_page.add_child(instance=subpage2)

        TranslatablePageFactory.build(language=nl,
                                      title='subpage1 in NL tree',
                                      canonical_page=subpage1)
        TranslatablePageFactory.build(language=nl,
                                      title='subpage2 in NL tree',
                                      canonical_page=subpage2)

        change_default_language(nl)

        assert nl.is_default
        assert models.TranslatablePage.objects.filter(
            language=en).first().canonical_page.language == nl
        assert models.TranslatablePage.objects.filter(
            language=nl).first().canonical_page is None
    def handle(self, language, *args, **kwargs):
        if not language:
            raise CommandError("Missing --language argument")
        try:
            new_default = Language.objects.get(code=language)
        except ObjectDoesNotExist:
            raise CommandError("Language is not yet set in your site")

        current_default = Language.objects.default()
        if new_default == current_default:
            raise CommandError(
                "Language {} is already default language".format(new_default))

        change_default_language(new_default)