Exemple #1
0
    def setUp(self):
        self.mk_main()
        main = Main.objects.all().first()
        self.english = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(main.get_site()),
            locale='en',
            is_active=True)
        self.french = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(main.get_site()),
            locale='fr',
            is_active=True)
        self.spanish_mexico = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(main.get_site()),
            locale='es-mx',
            is_active=True)

        # Creates a section under the main page
        self.english_section = self.mk_section(
            self.section_index, title='English section')
        # Creates a sub-section under the section
        self.english_subsection = self.mk_section(
            self.english_section, title='English subsection')

        # Login
        self.user = self.login()
    def setUp(self):
        self.mk_main()
        main = Main.objects.all().first()
        self.english = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(main.get_site()),
            locale='en',
            is_active=True)

        self.french = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(main.get_site()),
            locale='fr',
            is_active=True)
        self.new_section = self.mk_section(
            self.section_index,
            title="New Section",
            extra_style_hints='primary')

        self.new_section2 = self.mk_section(
            self.new_section, title="New Section 2")

        self.new_section3 = self.mk_section(
            self.section_index, title="New Section 3", slug="new-section-3")

        self.new_section4 = self.mk_section(
            self.new_section2, title="New Section 4", slug="new-section-4")

        self.new_section5 = self.mk_section(
            self.new_section,
            title="New Section 5", slug="new-section-5",
            extra_style_hints='secondary')
Exemple #3
0
    def setUp(self):
        self.mk_main()
        main = Main.objects.all().first()
        self.english = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(main.get_site()),
            locale='en',
            is_active=True)

        self.french = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(main.get_site()),
            locale='fr',
            is_active=True)

        self.yourmind = self.mk_section(
            self.section_index, title='Your mind')

        self.yourmind_fr = self.mk_section_translation(
            self.yourmind, self.french, title='Your mind in french')

        self.mk_main2()
        self.main2 = Main.objects.all().last()
        self.language_setting2 = Languages.objects.create(
            site_id=self.main2.get_site().pk)
        self.english2 = SiteLanguageRelation.objects.create(
            language_setting=self.language_setting2,
            locale='en',
            is_active=True)

        self.spanish = SiteLanguageRelation.objects.create(
            language_setting=self.language_setting2,
            locale='es',
            is_active=True)

        self.yourmind2 = self.mk_section(
            self.section_index2, title='Your mind2')
Exemple #4
0
    def setUp(self):
        self.mk_main()
        main = Main.objects.all().first()
        self.english = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(main.get_site()),
            locale='en',
            is_active=True)
        self.french = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(main.get_site()),
            locale='fr',
            is_active=True)
        self.spanish_mexico = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(main.get_site()),
            locale='es-mx',
            is_active=True)

        # Creates a section under the main page
        self.english_section = self.mk_section(self.section_index,
                                               title='English section')
        # Creates a sub-section under the section
        self.english_subsection = self.mk_section(self.english_section,
                                                  title='English subsection')

        # Login
        self.user = self.login()
    def setUp(self):
        self.main = self.mk_main(title='main1',
                                 slug='main1',
                                 path='00010002',
                                 url_path='/main1/')
        self.client = Client(HTTP_HOST=self.main.get_site().hostname)
        self.form_index = FormsIndexPage.objects.child_of(self.main).first()
        self.section_index = SectionIndexPage.objects.child_of(
            self.main).first()
        self.site_settings = SiteSettings.for_site(self.main.get_site())
        self.site_settings.enable_tag_navigation = True
        self.site_settings.save()
        self.banner_message = ("Share your opinions and stories, " +
                               "take polls, win fun prizes.")
        self.english = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(self.main.get_site()),
            locale='en',
            is_active=True)

        self.french = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(Site.objects.first()),
            locale='fr',
            is_active=True)

        self.yourmind = self.mk_section(self.section_index, title='Your mind')

        self.yourmind_fr = self.mk_section_translation(
            self.yourmind, self.french, title='Your mind in french')
    def setUp(self):
        self.main = self.mk_main(
            title='main1', slug='main1', path='00010002', url_path='/main1/')
        self.client = Client(HTTP_HOST=self.main.get_site().hostname)
        self.site_settings = SiteSettings.for_site(self.main.get_site())

        self.yourmind = self.mk_section(
            SectionIndexPage.objects.child_of(self.main).first(),
            title='Your mind')

        self.article = self.mk_article(self.yourmind, title='article')
        self.article.save_revision().publish()

        self.english = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(self.main.get_site()),
            locale='en',
            is_active=True)
        self.french = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(self.main.get_site()),
            locale='fr',
            is_active=True)

        self.fr_article = self.mk_article_translation(
            self.article, self.french)

        self.fr_yourmind = self.mk_section_translation(
            self.yourmind, self.french)
    def setUp(self):
        self.mk_main()
        main = Main.objects.all().first()
        self.english = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(main.get_site()),
            locale='en',
            is_active=True)

        self.french = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(main.get_site()),
            locale='fr',
            is_active=True)
        self.spanish = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(main.get_site()),
            locale='es',
            is_active=True)
        self.arabic = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(main.get_site()),
            locale='ar',
            is_active=True)

        self.yourmind = self.mk_section(
            self.section_index, title='Your mind')
        self.yourbody = self.mk_section(
            self.section_index, title='Your body')
        self.yourmind_sub = self.mk_section(
            self.yourmind, title='Your mind subsection')

        self.yourmind_fr = self.mk_section_translation(
            self.yourmind, self.french, title='Your mind in french')
        self.yourmind_sub_fr = self.mk_section_translation(
            self.yourmind_sub, self.french,
            title='Your mind subsection in french')

        self.mk_main2()
        self.main2 = Main.objects.all().last()
        self.language_setting2 = Languages.objects.create(
            site_id=self.main2.get_site().pk)
        self.english2 = SiteLanguageRelation.objects.create(
            language_setting=self.language_setting2,
            locale='en',
            is_active=True)

        self.spanish = SiteLanguageRelation.objects.create(
            language_setting=self.language_setting2,
            locale='es',
            is_active=True)

        self.yourmind2 = self.mk_section(
            self.section_index2, title='Your mind2')
        self.yourmind_sub2 = self.mk_section(
            self.yourmind2, title='Your mind subsection2')

        self.site_settings = SiteSettings.for_site(main.get_site())
        self.site_settings2 = SiteSettings.for_site(self.main2.get_site())
        self.site_settings.enable_clickable_tags = True
        self.site_settings.enable_tag_navigation = True
        self.site_settings.save()
Exemple #8
0
 def test_move_method_of_article_page_copies_over_languages(self):
     self.assertFalse(
         Languages.for_site(
             self.main2.get_site()).languages.filter(locale='fr').exists())
     article = self.mk_articles(self.yourmind, 1)[0]
     fr_article = self.mk_article_translation(article, self.french)
     fr_article.move(self.yourmind2)
     self.assertTrue(
         Languages.for_site(
             self.main2.get_site()).languages.filter(locale='fr').exists())
     self.assertFalse(
         Languages.for_site(self.main2.get_site()).languages.filter(
             locale='fr').first().is_active)
Exemple #9
0
 def test_move_method_of_article_page_copies_over_languages(self):
     self.assertFalse(
         Languages.for_site(
             self.main2.get_site()).languages.filter(locale='fr').exists())
     article = self.mk_articles(self.yourmind, 1)[0]
     fr_article = self.mk_article_translation(article, self.french)
     fr_article.move(self.yourmind2)
     self.assertTrue(
         Languages.for_site(
             self.main2.get_site()).languages.filter(locale='fr').exists())
     self.assertFalse(
         Languages.for_site(
             self.main2.get_site()).languages.filter(
                 locale='fr').first().is_active)
    def test_two_sites_point_to_one_root_page(self):
        # assert that there is only one site rooted at main
        self.assertEqual(self.main.sites_rooted_here.count(), 1)
        client_1 = Client()
        # add a site that points to the same root page
        site_2 = Site.objects.create(hostname=generate_slug('site2'),
                                     port=80,
                                     root_page=self.main)
        # create a link buetween the current langauges and the new site
        Languages.objects.create(site_id=site_2.pk)
        SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(site_2),
            locale='en',
            is_active=True)
        client_2 = Client(HTTP_HOST=site_2.hostname)

        # assert that there are now two sites rooted at main
        self.assertEqual(self.main.sites_rooted_here.count(), 2)

        # create molo form page
        molo_form_page, molo_form_field = \
            self.create_molo_form_page(
                parent=self.forms_index,
                homepage_button_text='share your story yo')

        # assert that both sites render the form
        response = client_1.get('/molo-forms-main-1/test-form/')
        self.assertEqual(response.status_code, 200)
        response = client_2.get(site_2.root_url +
                                '/molo-forms-main-1/test-form/')
        self.assertEqual(response.status_code, 200)
    def test_two_sites_point_to_one_root_page(self):
        # assert that there is only one site rooted at main
        self.assertEquals(self.main.sites_rooted_here.count(), 1)
        client_1 = Client()
        # add a site that points to the same root page
        site_2 = Site.objects.create(
            hostname=generate_slug('site2'), port=80, root_page=self.main)
        # create a link buetween the current langauges and the new site
        Languages.objects.create(
            site_id=site_2.pk)
        SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(site_2),
            locale='en',
            is_active=True)
        client_2 = Client(HTTP_HOST=site_2.hostname)

        # assert that there are now two sites rooted at main
        self.assertEquals(self.main.sites_rooted_here.count(), 2)

        # create molo survey page
        molo_survey_page, molo_survey_form_field = \
            self.create_molo_survey_page(
                parent=self.surveys_index,
                homepage_button_text='share your story yo')

        # assert that both sites render the survey
        response = client_1.get('/surveys-main-1/test-survey/')
        self.assertEquals(response.status_code, 200)
        response = client_2.get(
            site_2.root_url + '/surveys-main-1/test-survey/')
        self.assertEquals(response.status_code, 200)
    def test_submit_to_local_ga_translated_articlepage_title(
            self, mock_submit_tracking):
        """requests for article with tags should
        make a submit tracking with a cd6 value in the
        custom params containing all the article tags"""

        french = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(Site.objects.first()),
            locale='fr',
            is_active=True)
        french_article = self.mk_article_translation(self.article2, french)
        french_article.title = "french translation of article"
        french_article.save_revision().publish()
        request = RequestFactory().get(
            '/sections-main1-1/{}/{}/'.format(
                self.yourmind.slug,
                french_article.slug),
            HTTP_HOST='localhost',
            HTTP_X_DCMGUID="0000-000-01"
        )
        request.COOKIES[settings.LANGUAGE_COOKIE_NAME] = french.locale
        request.site = self.main.get_site()

        middleware = GemMoloGoogleAnalyticsMiddleware()
        middleware.process_response(
            request, self.response)
        # check that the tilte of the article in the main languge is used
        mock_submit_tracking.assert_called_once_with(
            'local_ga_tracking_code',
            request, self.response,
            {'cd5': self.article2.title,
                "cd3": 'Visitor',
                'cd1': "0000-000-01",
             })
Exemple #13
0
 def get_queryset(self):
     '''
     Only serve site-specific languages
     '''
     request = self.request
     return (Languages.for_site(request.site)
                      .languages.filter().order_by('pk'))
Exemple #14
0
def render_translations(context, page):
    from molo.core.models import TranslatablePageMixinNotRoutable
    if not issubclass(type(page.specific), TranslatablePageMixinNotRoutable):
        return {}
    if not page.specific.language.is_main_language:
        return {}

    languages = [
        (l.locale, str(l))
        for l in Languages.for_site(
            context['request'].site.root_page.get_site()).languages.filter(
                is_main_language=False)]

    translated = []
    for code, title in languages:
        if page.specific.translated_pages.filter(
                language__locale=code).exists():
            translated.append({
                'locale': {'title': title, 'code': code},
                'translated':
                    page.specific.translated_pages.filter(
                        language__locale=code).first()})
        else:
            translated.append({
                'locale': {'title': title, 'code': code},
                'translated': []})
    return {
        'translations': translated,
        'page': page
    }
 def get_queryset(self):
     '''
     Only serve site-specific languages
     '''
     request = self.request
     return (Languages.for_site(
         request.site).languages.filter().order_by('pk'))
def show_main_language_only(parent_page, pages, request):
    main_language = Languages.for_site(
        request.site).languages.filter(is_main_language=True).first()
    if pages and main_language and parent_page.depth > 2:

        if isinstance(pages, QuerySet):
            for page in pages:
                has_lang = hasattr(page.specific, 'language')
                if 'indexpage' in page.slug or not has_lang:
                    continue
                elif not page.specific:
                    pages = pages.exclude(pk=page.pk)
                elif not page.specific.language:
                    pages = pages.exclude(pk=page.pk)
                elif page.specific.language.pk != main_language.pk:
                    pages = pages.exclude(pk=page.pk)
            return pages
        else:
            specific_pages = [page.specific for page in pages]
            new_pages = [
                page for page in specific_pages
                if page.language and page.language.pk == main_language.pk
            ]
            return new_pages
    return pages
Exemple #17
0
    def setUp(self):
        self.mk_main()

        language_setting = Languages.for_site(self.main.get_site())

        SiteLanguageRelation.objects.create(
            language_setting=language_setting,
            locale='en',
        )

        zulu = SiteLanguageRelation.objects.create(
            language_setting=language_setting,
            locale='zu',
        )

        xhosa = SiteLanguageRelation.objects.create(
            language_setting=language_setting,
            locale='xh',
        )

        self.login()

        self.page_english = self.mk_article(self.main, title='En')

        self.page_xhosa = self.mk_article_translation(
            self.page_english, xhosa, title='Xh')
        self.page_zulu = self.mk_article_translation(
            self.page_english, zulu, title='Zu')
    def test_two_sites_point_to_one_root_page(self):
        # assert that there is only one site rooted at main
        self.assertEqual(self.main.sites_rooted_here.count(), 1)
        client_1 = Client()
        # add a site that points to the same root page
        site_2 = Site.objects.create(hostname=generate_slug('site2'),
                                     port=80,
                                     root_page=self.main)
        # create a link buetween the current langauges and the new site
        Languages.objects.create(site_id=site_2.pk)
        SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(site_2),
            locale='en',
            is_active=True)
        client_2 = Client(HTTP_HOST=site_2.hostname)

        # assert that there are now two sites rooted at main
        self.assertEqual(self.main.sites_rooted_here.count(), 2)

        # assert that the correct hostname is returned for both sites
        response = client_1.get('/sections-main-1/your-mind/')
        self.assertEqual(response.status_code, 200)
        response = client_2.get(site_2.root_url +
                                '/sections-main-1/your-mind/')
        self.assertEqual(response.status_code, 200)
    def setUp(self):
        self.mk_main()
        self.main = Main.objects.all().first()
        self.english = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(self.main.get_site()),
            locale='en',
            is_active=True)

        self.index = PersonaIndexPage(title='Personae', slug="personae")
        self.main.add_child(instance=self.index)
        self.index.save_revision().publish()

        self.page = PersonaPage(title="child", slug="child")
        self.index.add_child(instance=self.page)
        self.page.save_revision().publish()

        self.client = Client()
        # Login
        self.user = self.login()

        site = Site.objects.get(is_default_site=True)
        setting = SettingsProxy(site)
        self.persona_settings = setting['usermetadata']['PersonaeSettings']
        self.persona_settings.persona_required = True
        self.persona_settings.save()

        self.site_settings = setting['core']['SiteSettings']
        self.site_settings.ga_tag_manager = 'GTM-xxxx'
        self.site_settings.save()
Exemple #20
0
def copy_translation_pages(page, new_page):
    from molo.core.models import Languages
    # Only copy translations for TranslatablePageMixin
    if not hasattr(page.specific, 'copy_language'):
        return 'Not translatable page'

    current_site = page.get_site()
    destination_site = new_page.get_site()
    if current_site is not destination_site and (page.depth > 2):
        page.specific.copy_language(current_site, destination_site)
    languages = Languages.for_site(destination_site).languages
    if languages.filter(is_main_language=True).exists():
        new_page.language = languages.filter(is_main_language=True).first()

    for translation in page.specific.translated_pages.all():
        new_lang = translation.specific.copy_language(current_site,
                                                      destination_site)
        new_translation = translation.copy(to=new_page.get_parent())
        new_translation.language = new_lang
        new_translation.specific.translated_pages.add(new_page)
        new_page.specific.translated_pages.add(new_translation)
        new_page.save()
        new_translation.save()
        for translated_page in \
                page.specific.translated_pages.all():
            translations = page.specific.translated_pages.all().\
                exclude(language__pk=translated_page.language.pk)
            for translation in translations:
                translated_page.translated_pages.add(translation)
            translated_page.save()
        new_translation.save()
Exemple #21
0
    def load_article_info(self, request):
        """get the tags in an article if the request is for an article page"""
        path = request.get_full_path()
        path_components = [
            component for component in path.split('/') if component
        ]
        article_info = {}
        try:
            page, args, kwargs = request.site.root_page.specific.route(
                request, path_components)
            if issubclass(type(page.specific), ArticlePage):
                tags_str = ""
                main_lang = Languages.for_site(request.site).languages.filter(
                    is_main_language=True).first()
                locale_code = get_locale_code(
                    get_language_from_request(request))
                if main_lang.locale == locale_code:
                    article_info['cd5'] = page.specific.title
                else:
                    article_info['cd5'] = page.specific.get_main_language_page(
                    ).title
                qs = load_tags_for_article(
                    {
                        'locale_code': 'en',
                        'request': request
                    }, page)
                if qs:
                    for q in qs:
                        tags_str += "|" + q.title
                    article_info.update({'cd6': tags_str[1:]})
                    return article_info
        except Http404:
            return article_info

        return article_info
    def setUp(self):
        # make main one with section and sub section with fr translations
        self.mk_main()
        self.english = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(self.main.get_site()),
            locale='en',
            is_active=True)

        self.french = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(self.main.get_site()),
            locale='fr',
            is_active=True)

        self.yourmind = self.mk_section(
            self.section_index, title='Your mind', slug='yourmind')
        self.yourmind_sub = self.mk_section(
            self.yourmind, title='Your mind subsection')

        self.yourmind_fr = self.mk_section_translation(
            self.yourmind, self.french, title='Your mind in french',
            slug='yourmind_fr')
        self.yourmind_sub_fr = self.mk_section_translation(
            self.yourmind_sub, self.french,
            title='Your mind subsection in french')

        # make main 2 with different section to main 1
        self.mk_main2()
        self.language_setting2 = Languages.objects.create(
            site_id=self.main2.get_site().pk)
        self.english2 = SiteLanguageRelation.objects.create(
            language_setting=self.language_setting2,
            locale='en',
            is_active=True)
        self.french2 = SiteLanguageRelation.objects.create(
            language_setting=self.language_setting2,
            locale='fr',
            is_active=True)
        self.yourmind2 = self.mk_section(
            self.section_index2, title='Your mind', slug='yourmind')
        self.yourmind_sub2 = self.mk_section(
            self.yourmind2, title='Your mind subsection2')
        self.yourmind_fr2 = self.mk_section_translation(
            self.yourmind2, self.french2, title='Your mind in french',
            slug='yourmind_fr')

        # create main 3 with nothing
        self.mk_main3()
Exemple #23
0
    def setUp(self):
        # make main one with section and sub section with fr translations
        self.mk_main()
        self.english = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(self.main.get_site()),
            locale='en',
            is_active=True)

        self.french = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(self.main.get_site()),
            locale='fr',
            is_active=True)

        self.yourmind = self.mk_section(
            self.section_index, title='Your mind', slug='yourmind')
        self.yourmind_sub = self.mk_section(
            self.yourmind, title='Your mind subsection')

        self.yourmind_fr = self.mk_section_translation(
            self.yourmind, self.french, title='Your mind in french',
            slug='yourmind_fr')
        self.yourmind_sub_fr = self.mk_section_translation(
            self.yourmind_sub, self.french,
            title='Your mind subsection in french')

        # make main 2 with different section to main 1
        self.mk_main2()
        self.language_setting2 = Languages.objects.create(
            site_id=self.main2.get_site().pk)
        self.english2 = SiteLanguageRelation.objects.create(
            language_setting=self.language_setting2,
            locale='en',
            is_active=True)
        self.french2 = SiteLanguageRelation.objects.create(
            language_setting=self.language_setting2,
            locale='fr',
            is_active=True)
        self.yourmind2 = self.mk_section(
            self.section_index2, title='Your mind', slug='yourmind')
        self.yourmind_sub2 = self.mk_section(
            self.yourmind2, title='Your mind subsection2')
        self.yourmind_fr2 = self.mk_section_translation(
            self.yourmind2, self.french2, title='Your mind in french',
            slug='yourmind_fr')

        # create main 3 with nothing
        self.mk_main3()
Exemple #24
0
def locale(request):
    locale_code = get_locale_code(get_language_from_request(request))
    languages = Languages.for_site(request.site).languages.filter(
        is_active=True)
    return {
        'locale_code': locale_code,
        'languages': languages,
        'selected_language': languages.filter(locale=locale_code).first()}
Exemple #25
0
def get_language(site, locale):
    language_cache_key = 'get_pages_language_{}_{}'.format(site.pk, locale)
    language = cache.get(language_cache_key)
    if not language:
        language = Languages.for_site(site).languages.filter(
            locale=locale).first()
        cache.set(language_cache_key, language, None)
    return language
Exemple #26
0
def get_language(site, locale):
    language_cache_key = 'get_pages_language_{}_{}'.format(site.pk, locale)
    language = cache.get(language_cache_key)
    if not language:
        language = Languages.for_site(site).languages.filter(
            locale=locale).first()
        cache.set(language_cache_key, language, None)
    return language
 def setUp(self):
     self.mk_main()
     self.main = Main.objects.all().first()
     self.english = SiteLanguageRelation.objects.create(
         language_setting=Languages.for_site(self.main.get_site()),
         locale='en',
         is_active=True)
     self.yourmind = self.mk_section(self.section_index, title='Your mind')
Exemple #28
0
    def test_copy_method_of_article_page_copies_over_languages(self):
        self.assertFalse(
            Languages.for_site(
                self.main2.get_site()).languages.filter(locale='fr').exists())
        article = self.mk_articles(self.yourmind, 1)[0]

        LanguageRelation.objects.create(page=article, language=self.english2)

        self.mk_article_translation(article, self.french)
        article2 = article.copy(to=self.yourmind2)
        copy_translation_pages(article, article2)
        self.assertTrue(
            Languages.for_site(
                self.main2.get_site()).languages.filter(locale='fr').exists())
        self.assertFalse(
            Languages.for_site(self.main2.get_site()).languages.filter(
                locale='fr').first().is_active)
 def setUp(self):
     self.mk_main()
     self.main = Main.objects.all().first()
     self.english = SiteLanguageRelation.objects.create(
         language_setting=Languages.for_site(self.main.get_site()),
         locale='en',
         is_active=True)
     self.main = Main.objects.all().first()
     self.factory = RequestFactory()
Exemple #30
0
 def get_context(self):
     languages = Languages.for_site(self.request.site).languages.all()
     return {
         'summaries': [{
             'language': l.get_locale_display(),
             'total': ArticlePage.objects.all().filter(
                 language=l).count()
         }for l in languages],
     }
Exemple #31
0
def locale(request):
    locale_code = get_locale_code(get_language_from_request(request))
    languages = Languages.for_site(
        request.site).languages.filter(is_active=True)
    return {
        'locale_code': locale_code,
        'languages': languages,
        'selected_language': languages.filter(locale=locale_code).first()
    }
Exemple #32
0
    def setUp(self):
        self.mk_main()
        main = Main.objects.all().first()
        self.english = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(main.get_site()),
            locale='en',
            is_active=True)

        self.french = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(main.get_site()),
            locale='fr',
            is_active=True)

        self.mylife = self.mk_section(
            self.section_index, title='My life')
        self.yourmind = self.mk_section(
            self.section_index, title='Your mind')
        self.yourmind_sub = self.mk_section(
            self.yourmind, title='Your mind subsection')
        self.yourmind_sub2 = self.mk_section(
            self.yourmind, title='Your mind subsection2')
        self.yourmind_sub3 = self.mk_section(
            self.yourmind, title='Your mind subsection3')

        self.mk_main2()
        self.main2 = Main.objects.all().last()
        self.english2 = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(self.main2.get_site()),
            locale='en',
            is_active=True)

        self.french2 = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(self.main2.get_site()),
            locale='fr',
            is_active=True)

        self.yourmind2 = self.mk_section(
            self.section_index2, title='Your mind2')
        self.yourmind_sub11 = self.mk_section(
            self.yourmind2, title='Your mind subsection11')
        self.yourmind_sub22 = self.mk_section(
            self.yourmind2, title='Your mind subsection22')
        self.yourmind_sub33 = self.mk_section(
            self.yourmind2, title='Your mind subsection33')
 def get_context(self):
     languages = Languages.for_site(self.request.site).languages.all()
     return {
         'summaries': [{
             'language':
             l.get_locale_display(),
             'total':
             ArticlePage.objects.all().filter(language=l).count()
         } for l in languages],
     }
Exemple #34
0
    def setUp(self):
        self.mk_main()
        main = Main.objects.all().first()
        self.english = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(main.get_site()),
            locale='en',
            is_active=True)

        self.french = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(main.get_site()),
            locale='fr',
            is_active=True)

        self.mylife = self.mk_section(self.section_index, title='My life')
        self.yourmind = self.mk_section(self.section_index, title='Your mind')
        self.yourmind_sub = self.mk_section(self.yourmind,
                                            title='Your mind subsection')
        self.yourmind_sub2 = self.mk_section(self.yourmind,
                                             title='Your mind subsection2')
        self.yourmind_sub3 = self.mk_section(self.yourmind,
                                             title='Your mind subsection3')

        self.mk_main2()
        self.main2 = Main.objects.all().last()
        self.english2 = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(self.main2.get_site()),
            locale='en',
            is_active=True)

        self.french2 = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(self.main2.get_site()),
            locale='fr',
            is_active=True)

        self.yourmind2 = self.mk_section(self.section_index2,
                                         title='Your mind2')
        self.yourmind_sub11 = self.mk_section(self.yourmind2,
                                              title='Your mind subsection11')
        self.yourmind_sub22 = self.mk_section(self.yourmind2,
                                              title='Your mind subsection22')
        self.yourmind_sub33 = self.mk_section(self.yourmind2,
                                              title='Your mind subsection33')
Exemple #35
0
    def test_site_languages(self):
        main = Main.objects.all().first()
        self.english = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(main.get_site()),
            locale='en',
            is_active=True)

        self.french = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(main.get_site()),
            locale='fr',
            is_active=True)
        self.spanish = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(main.get_site()),
            locale='sp',
            is_active=False)

        response = self.client.get('/')
        self.assertContains(response, 'English')
        self.assertContains(response, 'français')
        self.assertNotContains(response, 'español')
Exemple #36
0
 def process_request(self, request):
     if request.path.startswith('/admin/pages/') and \
             not request.path.startswith('/admin/pages/moderation/'):
         current_site = Site.find_for_request(request)
         func, args, kwargs = resolve(request.path)
         if args:
             p_site = Page.objects.get(pk=args[-1]).specific.get_site()
             if p_site and not current_site == p_site:
                 return redirect('%s%s' % (p_site.root_url, request.path))
         if not Languages.for_site(request.site).languages.all().exists():
             return redirect('%s/admin/' % request.site.root_url)
Exemple #37
0
    def test_site_languages(self):
        main = Main.objects.all().first()
        self.english = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(main.get_site()),
            locale='en',
            is_active=True)

        self.french = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(main.get_site()),
            locale='fr',
            is_active=True)
        self.spanish = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(main.get_site()),
            locale='sp',
            is_active=False)

        response = self.client.get('/')
        self.assertContains(response, 'English')
        self.assertContains(response, 'français')
        self.assertNotContains(response, 'español')
Exemple #38
0
 def process_request(self, request):
     if request.path.startswith('/admin/pages/') and \
             not request.path.startswith('/admin/pages/moderation/'):
         current_site = Site.find_for_request(request)
         func, args, kwargs = resolve(request.path)
         if args:
             p_site = Page.objects.get(pk=args[-1]).specific.get_site()
             if p_site and not current_site == p_site:
                 return redirect('%s%s' % (p_site.root_url, request.path))
         if not Languages.for_site(request.site).languages.all().exists():
             return redirect('%s/admin/' % request.site.root_url)
 def setUp(self):
     self.mk_main()
     self.main = Main.objects.all().first()
     self.english = SiteLanguageRelation.objects.create(
         language_setting=Languages.for_site(self.main.get_site()),
         locale='en',
         is_active=True)
     self.yourmind = self.mk_section(
         self.section_index, title='Your mind')
     self.surveys_index = SurveysIndexPage.objects.child_of(
         self.main).first()
Exemple #40
0
 def setUp(self):
     self.mk_main()
     self.main = Main.objects.all().first()
     self.language_setting = Languages.objects.create(
         site_id=self.main.get_site().pk)
     self.english = SiteLanguageRelation.objects.create(
         language_setting=Languages.for_site(self.main.get_site()),
         locale='en',
         is_active=True)
     self.spanish = SiteLanguageRelation.objects.create(
         language_setting=Languages.for_site(self.main.get_site()),
         locale='sp',
         is_active=True)
     self.french = SiteLanguageRelation.objects.create(
         language_setting=Languages.for_site(self.main.get_site()),
         locale='fr',
         is_active=True)
     self.yourmind = self.mk_section(self.section_index, title='Your mind')
     self.article = ArticlePage(title='Test Article', slug='test-article')
     self.yourmind.add_child(instance=self.article)
     self.article.save_revision().publish()
Exemple #41
0
 def setUp(self):
     self.client = Client()
     # Creates Main language
     self.mk_main()
     main = Main.objects.all().first()
     self.english = SiteLanguageRelation.objects.create(
         language_setting=Languages.for_site(main.get_site()),
         locale='en',
         is_active=True)
     # Creates a section under the index page
     self.english_section = self.mk_section(
         self.section_index, title='English section')
Exemple #42
0
    def setUp(self):
        self.mk_main()
        main = Main.objects.all().first()
        self.english = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(main.get_site()),
            locale='en',
            is_active=True)

        self.user = User.objects.create_user(
            'test', '*****@*****.**', 'test')
        self.content_type = ContentType.objects.get_for_model(self.user)
        self.client = Client()
Exemple #43
0
    def handle(self, *args, **options):
        locale_code = options.get('locale', None)
        mains = Main.objects.all()

        for main in mains:
            section_index = SectionIndexPage.objects.child_of(main).first()
            main_lang = Languages.for_site(main.get_site()).languages.filter(
                is_active=True, is_main_language=True).first()
            sections = SectionPage.objects.descendant_of(section_index).filter(
                languages__language__is_main_language=True).live()
            translated_sections = SectionPage.objects.descendant_of(
                section_index).filter(
                    languages__language__is_main_language=False).live()
            for translated_section in translated_sections:
                translated_section.image = None
                translated_section.save_revision().publish()

            if section_index and main_lang:
                if main_lang.locale == locale_code:
                    for section in sections:
                        if section.title == "Girl Stories":
                            section.slug = "girl-stories"

                        image = Image.objects.filter(title=section.slug +
                                                     ".png").first()
                        if image:
                            section.image = image
                            section.extra_style_hints = section.slug
                            section.save_revision().publish()

                        else:
                            self.stdout.write(
                                self.style.NOTICE(
                                    'Image "%s" does not exist in "%s"' %
                                    (section.slug, main)))

                else:
                    self.stdout.write(
                        self.style.NOTICE(
                            'Main language of "%s" is not "%s".'
                            ' The main language is "%s"' %
                            (main.get_site(), locale_code, main_lang)))
            else:
                if not section_index:
                    self.stdout.write(
                        self.style.NOTICE(
                            'Section Index Page does not exist in "%s"' %
                            main))
                if not main_lang:
                    self.stdout.write(
                        self.style.NOTICE(
                            'Main language does not exist in "%s"' % main))
Exemple #44
0
 def handle(self, **options):
     mains = Main.objects.all()
     tags = {}
     with open('data/tags.csv') as tags_csv:
         reader = csv.DictReader(tags_csv)
         if mains:
             for row in reader:
                 key = row.pop('Tags')
                 tags[key] = row
     for main in mains:
         tag_index = TagIndexPage.objects.child_of(main).first()
         main_lang = Languages.for_site(main.get_site()).languages.filter(
             is_active=True, is_main_language=True).first()
         child_languages = Languages.for_site(
             main.get_site()).languages.filter(
                 is_active=True, is_main_language=False).all()
         if main_lang:
             add_tags(self, main_lang, child_languages, tag_index, tags)
         else:
             self.stdout.write(
                 self.style.NOTICE('Main language does not exist in "%s"' %
                                   main))
Exemple #45
0
 def setUp(self):
     self.mk_main()
     self.main = Main.objects.all().first()
     self.language_setting = Languages.objects.create(
         site_id=self.main.get_site().pk)
     self.english = SiteLanguageRelation.objects.create(
         language_setting=Languages.for_site(self.main.get_site()),
         locale='en',
         is_active=True)
     self.spanish = SiteLanguageRelation.objects.create(
         language_setting=Languages.for_site(self.main.get_site()),
         locale='sp',
         is_active=True)
     self.french = SiteLanguageRelation.objects.create(
         language_setting=Languages.for_site(self.main.get_site()),
         locale='fr',
         is_active=True)
     self.yourmind = self.mk_section(
         self.section_index, title='Your mind')
     self.article = ArticlePage(title='Test Article', slug='test-article')
     self.yourmind.add_child(instance=self.article)
     self.article.save_revision().publish()
Exemple #46
0
    def setUp(self):
        self.mk_main()
        main = Main.objects.all().first()
        self.english = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(main.get_site()),
            locale='en',
            is_active=True)

        self.french = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(main.get_site()),
            locale='fr',
            is_active=True)

        self.yourmind = self.mk_section(
            self.section_index, title='Your Mind')

        self.yourmind_fr = self.mk_section_translation(
            self.yourmind, self.french, title='Your mind in french')

        self.mk_main2()
        self.main2 = Main.objects.all().last()
        self.language_setting2 = Languages.objects.create(
            site_id=self.main2.get_site().pk)
        self.english2 = SiteLanguageRelation.objects.create(
            language_setting=self.language_setting2,
            locale='en',
            is_active=True)

        self.spanish = SiteLanguageRelation.objects.create(
            language_setting=self.language_setting2,
            locale='es',
            is_active=True)

        self.yourmind2 = self.mk_section(
            self.section_index2, title='Your mind2')
        User.objects.create_superuser(
            username='******', password='******', email='*****@*****.**')
        self.client.login(username='******', password='******')
Exemple #47
0
    def setUp(self):
        self.client = Client()
        # Creates Main language
        self.mk_main()
        main = Main.objects.all().first()
        self.english = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(main.get_site()),
            locale='en',
            is_active=True)

        self.french = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(main.get_site()),
            locale='fr',
            is_active=True)

        # Creates a section under the index page
        self.english_section = self.mk_section(
            self.section_index, title='English section')

        self.mk_main2()
        self.main2 = Main.objects.all().last()
        self.language_setting2 = Languages.objects.create(
            site_id=self.main2.get_site().pk)
        self.english2 = SiteLanguageRelation.objects.create(
            language_setting=self.language_setting2,
            locale='en',
            is_active=True)

        self.spanish = SiteLanguageRelation.objects.create(
            language_setting=self.language_setting2,
            locale='es',
            is_active=True)

        self.yourmind2 = self.mk_section(
            self.section_index2, title='Your mind2')
        self.yourmind_sub2 = self.mk_section(
            self.yourmind2, title='Your mind subsection2')
    def handle(self, *args, **options):
        # first add all the translations to the main language Page
        # and add the main language page as a translated page
        # to the translated pages
        for main in Main.objects.all():
            try:
                main_language = Languages.for_site(
                    main.get_site()).languages.get(is_main_language=True)
            except ObjectDoesNotExist:
                self.stdout.write(self.style.NOTICE(
                    'Main with pk "%s"'
                    'is missing a main language'
                    % (main.pk)))
                continue
            pages = Page.objects.all().exclude(depth__in=[1, 2, 3])
            for page in pages:
                if page.specific.language and (
                   page.specific.language.pk == main_language.pk):
                    for translation in PageTranslation.objects.filter(
                            page=page):
                        if translation.page and \
                         translation.translated_page and \
                         translation.translated_page.specific.language and \
                         translation.translated_page.pk != translation.page.pk:
                            page.specific.translated_pages.add(
                                translation.translated_page.specific)
                            translation.translated_page.specific.\
                                translated_pages.add(page.specific)
                            page.save()
                            translation.translated_page.save()
                        else:
                            self.stdout.write(self.style.NOTICE(
                                'Translation with pk "%s"'
                                'is missing page/translated_page'
                                % (translation.pk)))

            # loop through all translated_pages on the main language page and
            # add all the translations to the rest of the translated pages
            # except the language that it is in
            for page in Page.objects.all().exclude(depth__in=[1, 2, 3]):
                if page.specific.language and (
                   page.specific.language.pk == main_language.pk):
                    for translated_page in \
                            page.specific.translated_pages.all():
                        translations = page.specific.translated_pages.all().\
                            exclude(language__pk=translated_page.language.pk)
                        for translation in translations:
                            translated_page.translated_pages.add(translation)
                        translated_page.save()
Exemple #49
0
    def handle(self, *args, **options):
        new_language_locale = options.get('new_language_locale', None)
        mains = Main.objects.all()
        if mains.count() != 1:
            self.stdout.write(self.style.ERROR(
                'This command only works for apps with one wagtail site'))
            exit(1)
        main = mains.first()
        old_main_langauge = SiteLanguageRelation.objects.get(
            is_main_language=True)
        if not main:
            self.stdout.write(self.style.ERROR(
                'Main page does not exist'))
        # add the new language if necessary
        desired_main_language = SiteLanguage.objects.filter(
            locale=new_language_locale)
        if not desired_main_language.exists():
            new_language = SiteLanguageRelation.objects.create(
                language_setting=Languages.for_site(main.get_site()),
                locale=new_language_locale,
                is_active=True)
            self.stdout.write(self.style.NOTICE(
                'New Language %s created' %
                new_language.locale))

        else:
            self.stdout.write(self.style.NOTICE(
                'Language %s already exists' %
                desired_main_language.first().locale))
            new_language = new_language = SiteLanguageRelation.objects.get(
                locale=new_language_locale)

        # switch the language relation to the new language
        for relation in LanguageRelation.objects.filter(
                language__is_main_language=True):
            relation.language = new_language
            relation.page.specific.language = new_language
            relation.save()

        new_language.is_main_language = True
        new_language.save()
        old_main_langauge.is_main_language = False
        old_main_langauge.is_active = False
        old_main_langauge.save()
        self.stdout.write(self.style.SUCCESS(
            'Main language swopped from %s to %s' %
            (old_main_langauge.locale, new_language.locale)))
Exemple #50
0
    def setUp(self):
        self.mk_main()
        self.client = Client()

        self.main = Main.objects.all().first()
        self.english = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(self.main.get_site()),
            locale='en',
            is_active=True)
        self.english_section = self.mk_section(
            self.section_index, title='English section')
        self.mk_article(self.english_section)

        User.objects.create_superuser(
            username="******", email="*****@*****.**", password="******"
        )
        self.client.login(username="******", password="******")
 def handle(self, **options):
     csv_name = options.get('csv_name', None)
     mains = Main.objects.all()
     dates = {}
     with open(csv_name) as dates_csv:
         reader = csv.DictReader(dates_csv)
         if mains:
             for row in reader:
                 dates[row['slug']] = row['date']
     for main in mains:
         main_lang = Languages.for_site(main.get_site()).languages.filter(
             is_active=True, is_main_language=True).first()
         if main_lang:
             add_dates(self, main_lang, main, dates)
         else:
             self.stdout.write(self.style.NOTICE(
                 'Main language does not exist in "%s"' % main))
Exemple #52
0
def rotate_content(day=None):
    """ this method gets the parameters that are needed for rotate_latest
    and rotate_featured_in_homepage methods, and calls them both"""
    # getting the content rotation settings from site settings

    for main in Main.objects.all():
        site = main.sites_rooted_here.all().first()
        main_lang = Languages.for_site(site).languages.filter(
            is_main_language=True).first()
        index = SectionIndexPage.objects.live().child_of(main).first()
        site_settings = SiteSettings.for_site(site)
        if day is None:
            day = timezone.now().weekday()

        # calls the two rotate methods with the necessary params
        if main and index:
            rotate_latest(main_lang, index, main, site_settings, day)
            rotate_featured_in_homepage(main_lang, day, main)
Exemple #53
0
def add_translation(request, page_id, locale):
    _page = get_object_or_404(Page, id=page_id)
    page = _page.specific
    if not issubclass(type(page), TranslatablePageMixinNotRoutable):
        messages.add_message(
            request, messages.INFO, _('That page is not translatable.'))
        return redirect(reverse('wagtailadmin_home'))
    # redirect to edit page if translation already exists for this locale
    translated_page = page.translated_pages.filter(language__locale=locale)
    if translated_page.exists():
        return redirect(
            reverse('wagtailadmin_pages:edit', args=[
                translated_page.first().id]))

    # create translation and redirect to edit page
    language = Languages.for_site(request.site).languages.filter(
        locale=locale).first()
    if not language:
        raise Http404
    new_title = str(language) + " translation of %s" % page.title
    new_slug = generate_slug(new_title)
    translation = page.__class__(
        title=new_title, slug=new_slug, language=language)
    page.get_parent().add_child(instance=translation)
    translation.save_revision()
    # add the translation the new way
    page.specific.translated_pages.add(translation)
    page.save()
    translation.specific.translated_pages.add(page)
    translation.save()
    for translated_page in \
            page.specific.translated_pages.all():
        translations = page.specific.translated_pages.all().\
            exclude(language__pk=translated_page.language.pk)
        for translation in translations:
            translated_page.translated_pages.add(translation)
        translated_page.save()

    # make sure new translation is in draft mode
    translation.unpublish()
    return redirect(
        reverse('wagtailadmin_pages:edit', args=[translation.id]))
Exemple #54
0
def show_main_language_only(parent_page, pages, request):
    main_language = Languages.for_site(request.site).languages.filter(
        is_main_language=True).first()
    if pages and main_language and parent_page.depth > 2:
        if isinstance(pages, QuerySet):
            for page in pages:
                if not page.specific:
                    pages = pages.exclude(pk=page.pk)
                elif not page.specific.language:
                    pages = pages.exclude(pk=page.pk)
                elif page.specific.language.pk != main_language.pk:
                    pages = pages.exclude(pk=page.pk)
            return pages
        else:
            specific_pages = [page.specific for page in pages]
            new_pages = [page for page in specific_pages
                         if page.language and
                         page.language.pk == main_language.pk]
            return new_pages
    return pages
Exemple #55
0
    def test_language_list_view(self):

        api_client = Client()
        url = "/api/v2/languages/"
        response = api_client.get(url)

        self.assertEqual(response.status_code, 200)
        obj = json.loads(response.content)['items']

        self.assertEqual(len(obj), 1)

        self.french = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(self.main.get_site()),
            locale='fr',
            is_active=True)

        response = api_client.get(url)
        obj = json.loads(response.content)['items']

        self.assertEqual(response.status_code, 200)
        self.assertEqual(len(obj), 2)
Exemple #56
0
    def test_language_detail_view(self):
        self.french = SiteLanguageRelation.objects.create(
            language_setting=Languages.for_site(self.main.get_site()),
            locale='fr',
            is_active=True)

        api_client = Client()
        url = "/api/v2/languages/"

        response = api_client.get("{}{}/".format(url, self.english.id))
        self.assertEqual(response.status_code, 200)
        obj = json.loads(response.content)

        self.assertEqual(obj['locale'], 'en')
        self.assertEqual(obj['is_main_language'], True)
        self.assertEqual(obj['is_active'], True)

        response = api_client.get("{}{}/".format(url, self.french.id))
        self.assertEqual(response.status_code, 200)
        obj = json.loads(response.content)

        self.assertEqual(obj['locale'], 'fr')
        self.assertEqual(obj['is_main_language'], False)
        self.assertEqual(obj['is_active'], True)
Exemple #57
0
    def handle(self, *args, **options):
        csv_name = options.get('csv_name', None)
        locale = options.get('locale', None)
        mains = Main.objects.all()
        articles = {}
        with open(csv_name) as articles_tags:
            reader = csv.reader(articles_tags)
            if mains:
                for row in reader:
                    key = row[0]
                    articles[key] = row[1:]

        for main in mains:
            section_index = SectionIndexPage.objects.child_of(main).first()
            tag_index = TagIndexPage.objects.child_of(main).first()
            main_lang = Languages.for_site(main.get_site()).languages.filter(
                is_active=True, is_main_language=True).first()
            if section_index and tag_index and main_lang:
                if main_lang.locale == locale:
                    for article_slug in articles:
                        article = ArticlePage.objects.descendant_of(
                            section_index).filter(slug=article_slug).first()
                        if article:
                            for tag_title in articles.get(article_slug):
                                tag = Tag.objects.child_of(tag_index).filter(
                                    title=tag_title.strip()).first()
                                if tag:
                                    if not article.nav_tags.filter(
                                            tag__title=tag):
                                        article_page_tag = ArticlePageTags(
                                            page=article, tag=tag)
                                        article_page_tag.save()
                                    else:
                                        self.stdout.write(self.style.WARNING(
                                            'Tag "%s" has been already asigned'
                                            ' to "%s" in "%s"'
                                            % (tag, article, main)))
                                else:
                                    self.stdout.write(self.style.NOTICE(
                                        'Tag "%s" does not exist in "%s"'
                                        % (tag_title, main)))
                        else:
                            self.stdout.write(self.style.ERROR(
                                'Article "%s" does not exist in "%s"'
                                % (article_slug, main.get_site())))
                else:
                    self.stdout.write(self.style.NOTICE(
                        'Main language of "%s" is not "%s".'
                        ' The main language is "%s"'
                        % (main.get_site(), Locale(locale).english_name,
                            main_lang)))
            else:
                if not section_index:
                    self.stdout.write(self.style.NOTICE(
                        'Section Index Page does not exist in "%s"' % main))
                if not tag_index:
                    self.stdout.write(self.style.NOTICE(
                        'Tag Index Page does not exist in "%s"' % main))
                if not main_lang:
                    self.stdout.write(self.style.NOTICE(
                        'Main language does not exist in "%s"' % main))