Exemplo n.º 1
0
def get_survey_list(context,
                    only_linked_surveys=False,
                    only_direct_surveys=False):
    if only_linked_surveys and only_direct_surveys:
        raise ValueError('arguments "only_linked_surveys" and '
                         '"only_direct_surveys" cannot both be True')

    context = copy(context)
    locale_code = context.get('locale_code')
    main = context['request'].site.root_page
    page = SurveysIndexPage.objects.child_of(main).live().first()
    if page:
        surveys = []
        if only_linked_surveys:
            surveys = (MoloSurveyPage.objects.child_of(page).filter(
                languages__language__is_main_language=True).filter(
                    display_survey_directly=False).specific())
        elif only_direct_surveys:
            surveys = (MoloSurveyPage.objects.child_of(page).filter(
                languages__language__is_main_language=True).filter(
                    display_survey_directly=True).specific())
        else:
            surveys = (MoloSurveyPage.objects.child_of(page).filter(
                languages__language__is_main_language=True).specific())
    else:
        surveys = MoloSurveyPage.objects.none()

    context.update({'surveys': get_pages(context, surveys, locale_code)})
    return context
Exemplo n.º 2
0
def tag_index(request,
              extra_context=None,
              template=('core/article_tags_for_paging.html')):
    tag_name = request.GET.get("tag_name")
    if not tag_name:
        raise Http404

    main = request.site.root_page
    tag = Tag.objects.filter(slug=tag_name).descendant_of(main)

    if tag.exists():
        tag = tag.first()
        context = {'request': request}
        locale = request.LANGUAGE_CODE
        articles = []
        for article_tag in ArticlePageTags.objects.filter(
                tag=tag.get_main_language_page()).all():
            articles.append(article_tag.page.pk)
        articles = ArticlePage.objects.filter(pk__in=articles).descendant_of(
            main).order_by('latest_revision_created_at')
        # count = articles.count() if articles.count() < count else count
        # context = self.get_context_data(
        #     object_list=get_pages(context, articles[:count], locale))
        object_list = get_pages(context, articles, locale)
        locale_code = request.GET.get('locale')
        return render(request, template, {
            'object_list': object_list,
            'tag': tag,
            'locale_code': locale_code
        })
    raise Http404
Exemplo n.º 3
0
def tag_index(request, extra_context=None,
              template=('core/article_tags_for_paging.html')):
    tag_name = request.GET.get("tag_name")
    if not tag_name:
        raise Http404

    main = request.site.root_page
    tag = Tag.objects.filter(slug=tag_name).descendant_of(main)

    if tag.exists():
        tag = tag.first()
        context = {'request': request}
        locale = request.LANGUAGE_CODE
        articles = []
        for article_tag in ArticlePageTags.objects.filter(
                tag=tag.get_main_language_page()).all():
            articles.append(article_tag.page.pk)
        articles = ArticlePage.objects.filter(
            pk__in=articles).descendant_of(main).order_by(
                'latest_revision_created_at')
        # count = articles.count() if articles.count() < count else count
        # context = self.get_context_data(
        #     object_list=get_pages(context, articles[:count], locale))
        object_list = get_pages(context, articles, locale)
        locale_code = request.GET.get('locale')
        return render(request, template, {
            'object_list': object_list, 'tag': tag,
            'locale_code': locale_code})
    raise Http404
def forms_list_linked_to_pages(context, article):
    locale_code = context.get('locale_code')

    queryset = article.forms.all()\
        .values_list('form', flat=True)

    forms = MoloFormPage.objects\
        .filter(pk__in=queryset)

    if context.get('forms'):
        forms = context['forms'] \
            + get_pages(context, forms, locale_code)
    else:
        forms = get_pages(context, forms, locale_code)

    context.update({'forms': forms})
    return add_form_objects_to_forms(context)
def forms_list_for_pages(context, pk=None, page=None):
    context = copy(context)
    locale_code = context.get('locale_code')
    if page:
        forms = (MoloFormPage.objects.descendant_of(page).filter(
            language__is_main_language=True).specific())
    else:
        forms = MoloFormPage.objects.none()

    context.update({'forms': get_pages(context, forms, locale_code)})
    return add_form_objects_to_forms(context)
def surveys_list_for_pages(context, pk=None, page=None):
    context = copy(context)
    locale_code = context.get('locale_code')
    if page:
        surveys = (MoloSurveyPage.objects.child_of(page).filter(
            language__is_main_language=True).specific())
    else:
        surveys = MoloSurveyPage.objects.none()

    context.update({'surveys': get_pages(context, surveys, locale_code)})
    return add_form_objects_to_surveys(context)
Exemplo n.º 7
0
def gembannerpages(context):
    request = context['request']
    locale = context.get('locale_code')
    pages = []
    if request.site:
        pages = request.site.root_page.specific.bannerpages().exact_type(
            GemTextBanner)
    return {
        'bannerpages': get_pages(context, pages, locale),
        'request': context['request'],
        'locale_code': locale,
    }
Exemplo n.º 8
0
    def get_form_kwargs(self):
        kwargs = super(RegistrationView, self).get_form_kwargs()
        self.questions = SecurityQuestion.objects.descendant_of(
            self.request.site.root_page).live().filter(
            language__is_main_language=True)

        context = {"request": self.request}
        self.translated_questions = get_pages(
            context, self.questions, self.request.LANGUAGE_CODE)
        kwargs["questions"] = self.translated_questions
        kwargs["request"] = self.request
        return kwargs
Exemplo n.º 9
0
    def get_form_kwargs(self):
        kwargs = super(RegistrationView, self).get_form_kwargs()
        self.questions = SecurityQuestion.objects.descendant_of(
            self.request.site.root_page).live().filter(
                language__is_main_language=True)

        context = {"request": self.request}
        self.translated_questions = get_pages(context, self.questions,
                                              self.request.LANGUAGE_CODE)
        kwargs["questions"] = self.translated_questions
        kwargs["request"] = self.request
        return kwargs
Exemplo n.º 10
0
def contact_forms_list(context):
    context = copy(context)
    locale_code = context.get('locale_code')
    main = context['request'].site.root_page
    page = FormsIndexPage.objects.child_of(main).live().first()
    if page:
        forms = (MoloFormPage.objects.descendant_of(page).filter(
            language__is_main_language=True, contact_form=True).specific())
    else:
        forms = MoloFormPage.objects.none()
    context.update({'forms': get_pages(context, forms, locale_code)})
    return context
Exemplo n.º 11
0
def get_survey_list_for_site(context):
    context = copy(context)
    locale_code = context.get('locale_code')
    main = context['request'].site.root_page
    page = SurveysIndexPage.objects.child_of(main).live().first()
    if page:
        surveys = (MoloSurveyPage.objects.child_of(page).filter(
            languages__language__is_main_language=True).specific())
    else:
        surveys = MoloSurveyPage.objects.none()

    return get_pages(context, surveys, locale_code)
def get_form_list(
    context,
    only_linked_forms=False,
    only_direct_forms=False,
    only_yourwords=False,
    personalisable_form=False,
    contact_form=False,
):
    if only_linked_forms and only_direct_forms:
        raise ValueError('arguments "only_linked_forms" and '
                         '"only_direct_forms" cannot both be True')

    context = copy(context)
    locale_code = context.get('locale_code')
    main = context['request'].site.root_page
    page = FormsIndexPage.objects.child_of(main).live().first()
    if page:
        forms = []
        if only_linked_forms:
            forms = (MoloFormPage.objects.descendant_of(page).filter(
                language__is_main_language=True,
                display_form_directly=False,
                contact_form=False,
                your_words_competition=False).exact_type(
                    MoloFormPage).specific())
        elif only_direct_forms:
            forms = (MoloFormPage.objects.descendant_of(page).filter(
                language__is_main_language=True,
                display_form_directly=True,
                your_words_competition=False).exact_type(
                    MoloFormPage).specific())
        elif only_yourwords:
            forms = (MoloFormPage.objects.descendant_of(page).filter(
                language__is_main_language=True,
                your_words_competition=True).exact_type(
                    MoloFormPage).specific())
        elif personalisable_form:
            forms = (PersonalisableForm.objects.descendant_of(page).filter(
                language__is_main_language=True).exact_type(
                    PersonalisableForm).specific())
        elif contact_form:
            forms = (MoloFormPage.objects.descendant_of(page).filter(
                language__is_main_language=True,
                contact_form=True).exact_type(MoloFormPage).specific())
        else:
            forms = (MoloFormPage.objects.descendant_of(page).filter(
                language__is_main_language=True).exact_type(
                    MoloFormPage).specific())
    else:
        forms = MoloFormPage.objects.none()
    context.update({'forms': get_pages(context, forms, locale_code)})
    return context
Exemplo n.º 13
0
def surveys_list_for_pages(context, pk=None, page=None):
    context = copy(context)
    locale_code = context.get('locale_code')
    if page:
        surveys = (
            MoloSurveyPage.objects.child_of(page).filter(
                language__is_main_language=True).specific())
    else:
        surveys = MoloSurveyPage.objects.none()

    context.update({
        'surveys': get_pages(context, surveys, locale_code)
    })
    return add_form_objects_to_surveys(context)
Exemplo n.º 14
0
def your_words_competition(context):
    context = copy(context)
    locale_code = context.get('locale_code')
    page = YourWordsCompetitionIndexPage.objects.live().all().first()
    if page:
        competitions = (
            YourWordsCompetition.objects.child_of(page).filter(
                languages__language__is_main_language=True).specific())
    else:
        competitions = YourWordsCompetition.objects.none()

    context.update({
        'competitions': get_pages(context, competitions, locale_code)
    })
    return context
Exemplo n.º 15
0
def forms_list(context):
    context = copy(context)
    locale_code = context.get('locale_code')
    main = context['request'].site.root_page
    page = FormIndexPage.objects.child_of(main).live().first()
    if page:
        forms = (
            FormPage.objects.child_of(page).filter(
                language__is_main_language=True).specific())
    else:
        forms = FormPage.objects.none()
    context.update({
        'forms': get_pages(context, forms, locale_code)
    })
    return context
Exemplo n.º 16
0
def load_thank_you_page_for_competition(context, competition):

    page = competition.get_main_language_page()
    locale = context.get('locale_code')

    qs = ThankYou.objects.child_of(page).filter(
        language__is_main_language=True)

    if not locale:
        return qs

    if qs:
        return get_pages(context, qs, locale)
    else:
        return []
Exemplo n.º 17
0
def load_thank_you_page_for_competition(context, competition):

    page = competition.get_main_language_page()
    locale = context.get('locale_code')

    qs = ThankYou.objects.child_of(page).filter(
        languages__language__is_main_language=True)

    if not locale:
        return qs

    if qs:
        return get_pages(context, qs, locale)
    else:
        return []
Exemplo n.º 18
0
def your_words_competition_in_section(context, section):
    context = copy(context)
    locale_code = context.get('locale_code')
    page = section.get_main_language_page()
    if page:
        competitions = (
            YourWordsCompetition.objects.child_of(page).filter(
                language__is_main_language=True).specific())
    else:
        competitions = YourWordsCompetition.objects.none()

    context.update({
        'competitions': get_pages(context, competitions, locale_code),
        'section': section
    })
    return context
Exemplo n.º 19
0
def your_words_competition(context):
    context = copy(context)
    locale_code = context.get('locale_code')
    main = context['request'].site.root_page
    page = YourWordsCompetitionIndexPage.objects.child_of(main).live().first()
    if page:
        competitions = (
            YourWordsCompetition.objects.child_of(page).filter(
                language__is_main_language=True).specific())
    else:
        competitions = YourWordsCompetition.objects.none()

    context.update({
        'competitions': get_pages(context, competitions, locale_code)
    })
    return context
Exemplo n.º 20
0
def get_survey_list(context,
                    only_linked_surveys=False,
                    only_direct_surveys=False,
                    only_yourwords=False,
                    personalisable_survey=False):
    if only_linked_surveys and only_direct_surveys:
        raise ValueError('arguments "only_linked_surveys" and '
                         '"only_direct_surveys" cannot both be True')

    context = copy(context)
    locale_code = context.get('locale_code')
    main = context['request'].site.root_page
    page = SurveysIndexPage.objects.child_of(main).live().first()
    if page:
        surveys = []
        if only_linked_surveys:
            surveys = (MoloSurveyPage.objects.child_of(page)
                       .filter(language__is_main_language=True,
                               display_survey_directly=False,
                               your_words_competition=False)
                       .exact_type(MoloSurveyPage).specific())
        elif only_direct_surveys:
            surveys = (MoloSurveyPage.objects.child_of(page)
                       .filter(language__is_main_language=True,
                               display_survey_directly=True,
                               your_words_competition=False)
                       .exact_type(MoloSurveyPage).specific())
        elif only_yourwords:
            surveys = (MoloSurveyPage.objects.child_of(page)
                       .filter(language__is_main_language=True,
                               your_words_competition=True)
                       .exact_type(MoloSurveyPage).specific())
        elif personalisable_survey:
            surveys = (PersonalisableSurvey.objects.child_of(page)
                       .filter(language__is_main_language=True)
                       .exact_type(PersonalisableSurvey).specific())
        else:
            surveys = (MoloSurveyPage.objects.child_of(page)
                       .filter(language__is_main_language=True)
                       .exact_type(MoloSurveyPage).specific())
    else:
        surveys = MoloSurveyPage.objects.none()
    context.update({
        'surveys': get_pages(context, surveys, locale_code)
    })
    return context
Exemplo n.º 21
0
 def get_context_data(self, **kwargs):
     context = super(ReactionQuestionChoiceFeedbackView,
                     self).get_context_data(**kwargs)
     locale = self.request.LANGUAGE_CODE
     choice_slug = self.kwargs.get('choice_slug')
     context['request'] = self.request
     main_lang_choice = ReactionQuestionChoice.objects.descendant_of(
         self.request.site.root_page).filter(slug=choice_slug)
     choice = get_pages(context, main_lang_choice, locale)
     if choice:
         choice = choice[0]
     else:
         choice = main_lang_choice
     context.update({'choice': choice})
     article_slug = self.kwargs.get('article_slug')
     article = ArticlePage.objects.descendant_of(
         self.request.site.root_page).filter(slug=article_slug).first()
     context.update({'article': article})
     return context
Exemplo n.º 22
0
 def get_context_data(self, **kwargs):
     context = super(ReactionQuestionChoiceFeedbackView,
                     self).get_context_data(**kwargs)
     locale = self.request.LANGUAGE_CODE
     choice_slug = self.kwargs.get('choice_slug')
     context['request'] = self.request
     main_lang_choice = ReactionQuestionChoice.objects.descendant_of(
         self.request.site.root_page).filter(
         slug=choice_slug)
     choice = get_pages(context, main_lang_choice, locale)
     if choice:
         choice = choice[0]
     else:
         choice = main_lang_choice
     context.update({'choice': choice})
     article_slug = self.kwargs.get('article_slug')
     article = ArticlePage.objects.descendant_of(
         self.request.site.root_page).filter(slug=article_slug).first()
     context.update({'article': article})
     return context
Exemplo n.º 23
0
    def get_form_kwargs(self):
        # add security questions for form field generation
        # the security questions should be a random subset of
        # all the questions the user has answered
        kwargs = super(ForgotPasswordView, self).get_form_kwargs()
        profile_settings = UserProfilesSettings.for_site(self.request.site)
        self.security_questions = SecurityQuestion.objects.descendant_of(
            self.request.site.root_page).live().filter(
                language__is_main_language=True)

        context = {"request": self.request}
        translated_questions = get_pages(context, self.security_questions,
                                         self.request.LANGUAGE_CODE)
        kwargs["questions"] = translated_questions[:profile_settings.
                                                   num_security_questions]
        # limit security questions - done here because query in get_pages()
        # cannot be performed once queryset is sliced into a list
        self.security_questions = self.security_questions[:profile_settings.
                                                          num_security_questions]
        return kwargs
Exemplo n.º 24
0
    def get_form_kwargs(self):
        # add security questions for form field generation
        # the security questions should be a random subset of
        # all the questions the user has answered
        kwargs = super(ForgotPasswordView, self).get_form_kwargs()
        profile_settings = UserProfilesSettings.for_site(self.request.site)
        self.security_questions = SecurityQuestion.objects.descendant_of(
            self.request.site.root_page).live().filter(
            language__is_main_language=True
        )

        context = {"request": self.request}
        translated_questions = get_pages(
            context, self.security_questions, self.request.LANGUAGE_CODE
        )
        kwargs["questions"] = translated_questions[
            :profile_settings.num_security_questions]
        # limit security questions - done here because query in get_pages()
        # cannot be performed once queryset is sliced into a list
        self.security_questions = self.security_questions[
            :profile_settings.num_security_questions]
        return kwargs
Exemplo n.º 25
0
    def get_queryset(self, *args, **kwargs):
        site_settings = SiteSettings.for_site(self.request.site)
        main = self.request.site.root_page
        tag = self.kwargs["tag_name"]
        if site_settings.enable_tag_navigation:
            count = self.request.GET.get("count")
            context = {'request': self.request}
            locale = self.request.LANGUAGE_CODE

            tag = Tag.objects.filter(slug=tag).descendant_of(main)
            if tag.exists():
                tag = tag.first()
                articles = []
                for article_tag in ArticlePageTags.objects.filter(
                        tag=tag.get_main_language_page()).all():
                    articles.append(article_tag.page.pk)
                articles = ArticlePage.objects.filter(
                    pk__in=articles).descendant_of(main).order_by(
                        '-first_published_at')
                return get_pages(context, articles[:count], locale)
            raise Http404
        return ArticlePage.objects.descendant_of(main).filter(
            tags__name__in=[tag]).order_by('-first_published_at')
Exemplo n.º 26
0
    def get_queryset(self, *args, **kwargs):
        site_settings = SiteSettings.for_site(self.request.site)
        main = self.request.site.root_page
        tag = self.kwargs["tag_name"]
        if site_settings.enable_tag_navigation:
            count = self.request.GET.get("count")
            context = {'request': self.request}
            locale = self.request.LANGUAGE_CODE

            tag = Tag.objects.filter(slug=tag).descendant_of(main)
            if tag.exists():
                tag = tag.first()
                articles = []
                for article_tag in ArticlePageTags.objects.filter(
                        tag=tag.get_main_language_page()).all():
                    articles.append(article_tag.page.pk)
                articles = ArticlePage.objects.filter(
                    pk__in=articles).descendant_of(main).order_by(
                        '-first_published_at')
                return get_pages(context, articles[:count], locale)
            raise Http404
        return ArticlePage.objects.descendant_of(main).filter(
            tags__name__in=[tag]).order_by(
                '-first_published_at')