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)
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)
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)