예제 #1
0
    def pre_dispatch(self, request, *args, **kwargs):
        response = super().pre_dispatch(request, *args, **kwargs)

        if self.page:
            self.page_form = PageForm(page=self.page, request=request)
            self.snippets_form_en = SnippetsForm(self.page, locale='en')
            self.snippets_form_fr = SnippetsForm(self.page, locale='fr')
            self.images_form = PageImagesForm(self.page, locale='en')

        return response
예제 #2
0
    def post(self, request, *args, **kwargs):
        edit_url = reverse('corp-site.pages-edit', kwargs={'page_pk': self.page.pk})

        if 'settings' in request.POST:
            self.page_form = PageForm(request=request, data=request.POST, page=self.page)

            if self.page_form.is_valid():
                for field in self.page_form.cleaned_data:
                    setattr(self.page, field, self.page_form.cleaned_data[field])
                try:
                    self.page.save()
                except IntegrityError:
                    messages.add_message(request, messages.ERROR, _('An error occured.'))
                else:
                    messages.add_message(request, messages.SUCCESS, _('Changes saved.'))
                    return redirect(edit_url)

        elif 'snippets_en' in request.POST or 'snippets_fr' in request.POST:
            self.snippets_form_en = SnippetsForm(self.page, 'en', request.POST)
            self.snippets_form_fr = SnippetsForm(self.page, 'fr', request.POST)

            locale = 'en'
            snippet_form = self.snippets_form_en

            if 'snippets_fr' in request.POST:
                locale = 'fr'
                snippet_form = self.snippets_form_fr

            if snippet_form.is_valid():
                for field in snippet_form.fields:
                    value = snippet_form.cleaned_data.get(field, None)
                    if value:
                        self.page.set_snippet(field, locale, value)
                    else:
                        self.page.snippets.filter(slug=field, locale=locale).delete()

            messages.add_message(request, messages.SUCCESS, _('Changes saved.'))
            return redirect('{}?edit-snippets&locale={}'.format(edit_url, locale))

        elif 'images' in request.POST:
            self.images_form = PageImagesForm(self.page, 'en', request.POST, request.FILES)

            if self.images_form.is_valid():
                for field in self.images_form.fields:
                    value = self.images_form.cleaned_data.get(field, None)
                    if value:
                        CorpImage.objects.update_or_create(
                            page=self.page, slug=field, locale='en', defaults={'image': value})

            messages.add_message(request, messages.SUCCESS, _('Changes saved.'))
            return redirect('{}?edit-images'.format(edit_url))

        return self.get(request, *args, **kwargs)
예제 #3
0
    def post(self, request, *args, **kwargs):
        self.form = PageForm(request=request, data=request.POST)

        if self.form.is_valid():
            # import pdb; pdb.set_trace()
            try:
                page = CorpPage.objects.create(**self.form.cleaned_data)
            except IntegrityError:
                messages.add_message(request, messages.ERROR, _('An error occured.'))
            else:
                edit_url = reverse('corp-site.pages-edit', kwargs={'page_pk': page.pk})
                messages.add_message(request, messages.SUCCESS, _('Page was created.'))
                return redirect(edit_url)

        return self.get(request, *args, **kwargs)
예제 #4
0
class PagesAddView(PagesView):
    template = 'cms/corp_site/pages-add.jinja'
    form = None

    def pre_dispatch(self, request, *args, **kwargs):
        response = super().pre_dispatch(request, *args, **kwargs)
        self.form = PageForm(request=request)
        return response

    def get_extra_context(self, request, *args, **kwargs):
        context = super().get_extra_context(request, *args, **kwargs)
        context.update({'form': self.form})
        return context

    def get_breadcrumbs(self, request, *args, **kwargs):
        crumbs = super().get_breadcrumbs(request, *args, **kwargs)
        return crumbs + [
            (reverse('corp-site.pages-add'), _('Add New')),
        ]

    def post(self, request, *args, **kwargs):
        self.form = PageForm(request=request, data=request.POST)

        if self.form.is_valid():
            # import pdb; pdb.set_trace()
            try:
                page = CorpPage.objects.create(**self.form.cleaned_data)
            except IntegrityError:
                messages.add_message(request, messages.ERROR, _('An error occured.'))
            else:
                edit_url = reverse('corp-site.pages-edit', kwargs={'page_pk': page.pk})
                messages.add_message(request, messages.SUCCESS, _('Page was created.'))
                return redirect(edit_url)

        return self.get(request, *args, **kwargs)
예제 #5
0
 def pre_dispatch(self, request, *args, **kwargs):
     response = super().pre_dispatch(request, *args, **kwargs)
     self.form = PageForm(request=request)
     return response
예제 #6
0
class PagesEditView(PagesDetailsView):
    template = 'cms/corp_site/pages-edit.jinja'
    page_form = None
    snippets_form_en = None
    snippets_form_fr = None
    images_form = None

    def pre_dispatch(self, request, *args, **kwargs):
        response = super().pre_dispatch(request, *args, **kwargs)

        if self.page:
            self.page_form = PageForm(page=self.page, request=request)
            self.snippets_form_en = SnippetsForm(self.page, locale='en')
            self.snippets_form_fr = SnippetsForm(self.page, locale='fr')
            self.images_form = PageImagesForm(self.page, locale='en')

        return response

    def get_extra_context(self, request, *args, **kwargs):
        context = super().get_extra_context(request, *args, **kwargs)
        context.update({
            'page_form': self.page_form,
            'snippets_form_en': self.snippets_form_en,
            'snippets_form_fr': self.snippets_form_fr,
            'images_form': self.images_form,
        })
        return context

    def get_breadcrumbs(self, request, *args, **kwargs):
        crumbs = super().get_breadcrumbs(request, *args, **kwargs)
        edit_url = reverse('corp-site.pages-edit',
                           kwargs={'page_pk': self.page.pk})
        return crumbs + [(edit_url, _('Edit'))]

    def post(self, request, *args, **kwargs):
        edit_url = reverse('corp-site.pages-edit',
                           kwargs={'page_pk': self.page.pk})

        if 'settings' in request.POST:
            self.page_form = PageForm(request=request,
                                      data=request.POST,
                                      page=self.page)

            if self.page_form.is_valid():
                for field in self.page_form.cleaned_data:
                    setattr(self.page, field,
                            self.page_form.cleaned_data[field])
                try:
                    self.page.save()
                except IntegrityError:
                    messages.add_message(request, messages.ERROR,
                                         _('An error occured.'))
                else:
                    messages.add_message(request, messages.SUCCESS,
                                         _('Changes saved.'))
                    return redirect(edit_url)

        elif 'snippets_en' in request.POST or 'snippets_fr' in request.POST:
            self.snippets_form_en = SnippetsForm(self.page, 'en', request.POST)
            self.snippets_form_fr = SnippetsForm(self.page, 'fr', request.POST)

            locale = 'en'
            snippet_form = self.snippets_form_en

            if 'snippets_fr' in request.POST:
                locale = 'fr'
                snippet_form = self.snippets_form_fr

            if snippet_form.is_valid():
                for field in snippet_form.fields:
                    value = snippet_form.cleaned_data.get(field, None)
                    if value:
                        self.page.set_snippet(field, locale, value)
                    else:
                        self.page.snippets.filter(slug=field,
                                                  locale=locale).delete()

            messages.add_message(request, messages.SUCCESS,
                                 _('Changes saved.'))
            return redirect('{}?edit-snippets&locale={}'.format(
                edit_url, locale))

        elif 'images' in request.POST:
            self.images_form = PageImagesForm(self.page, 'en', request.POST,
                                              request.FILES)

            if self.images_form.is_valid():
                for field in self.images_form.fields:
                    value = self.images_form.cleaned_data.get(field, None)
                    if value:
                        CorpImage.objects.update_or_create(
                            page=self.page,
                            slug=field,
                            locale='en',
                            defaults={'image': value})

            messages.add_message(request, messages.SUCCESS,
                                 _('Changes saved.'))
            return redirect('{}?edit-images'.format(edit_url))

        return self.get(request, *args, **kwargs)