예제 #1
0
    def post(request):
        """Method responsible for saving new offer.

        :param request: WSGIRequest instance
        """
        form = CreateOfferForm(request.POST)
        if form.is_valid():
            offer = form.save()
            offer.create_new()
            offer.save()
            save_history(request, offer, action=ADDITION)
            send_mail(request, 'offer_creation',
                      ['*****@*****.**'], {'offer': offer})
            messages.success(request, "Dziękujemy za dodanie oferty.")
            return redirect(
                'offers_view',
                slug=slugify(offer.title),
                id_=offer.id,
            )
        messages.error(
            request,
            "Formularz zawiera niepoprawnie wypełnione pola <br />{0}".format(
                '<br />'.join(form.errors)),
        )
        return render(
            request, 'offers/offer_form.html', {
                'form': form,
                'offer': Offer(),
                'organizations': request.user.userprofile.organizations.all(),
            })
예제 #2
0
    def get(request):
        """Method responsible for rendering form for new offer.

        :param request: WSGIRequest instance
        """
        if request.user.is_anonymous():
            messages.info(
                request,
                "Aby założyć ofertę, musisz się zalogować lub zarejestrować.")

            return redirect('{login}?next={path}'.format(
                login=reverse('login'), path=request.path))

        if request.user.userprofile.is_administrator:
            messages.info(request,
                          "Administrator nie może tworzyć nowych ofert.")
            return redirect('offers_list')

        organizations = request.user.userprofile.organizations.all()

        if not organizations.exists():
            messages.info(
                request,
                mark_safe("Nie masz jeszcze żadnej założonej organizacji"
                          " na volontuloapp.org. Aby założyć organizację,"
                          " <a href='{}'>kliknij tu.</a>".format(
                              reverse('organizations_create'))))
            return redirect('offers_list')

        return render(
            request, 'offers/offer_form.html', {
                'offer': Offer(),
                'form': CreateOfferForm(),
                'organizations': organizations,
            })
예제 #3
0
    def post(request, slug, id_):  # pylint: disable=unused-argument
        """Method resposible for saving changed offer.

        :param request: WSGIRequest instance
        :param slug: string Offer title slugified
        :param id_: int Offer database unique identifier (primary key)
        """
        offer = Offer.objects.get(id=id_)
        if request.POST.get('submit') == 'save_image' and request.FILES:
            form = OfferImageForm(request.POST, request.FILES)
            if form.is_valid():
                offer.save_offer_image(form.save(commit=False),
                                       form.cleaned_data['is_main'])
                messages.success(request, "Dodano zdjęcie do galerii.")
            else:
                messages.error(
                    request, "Problem w trakcie dodawania grafiki: {}".format(
                        "<br />".join(form.errors)))

            return redirect(
                reverse('offers_edit', args=[slugify(offer.title), offer.id]))
        elif request.POST.get('close_offer') == 'close':
            offer.close_offer()
            return redirect(
                reverse('offers_view', args=[slugify(offer.title), offer.id]))
        elif request.POST.get('status_flag') == 'change_status':
            if request.POST.get('status') == 'published':
                offer.publish()
                if request.user.userprofile.is_administrator:
                    return redirect('offers_reorder', offer.id)
            elif request.POST.get('status') == 'rejected':
                offer.reject()
            return redirect('offers_list')

        form = CreateOfferForm(request.POST, instance=offer)

        if form.is_valid():
            offer = form.save()
            offer.unpublish()
            offer.save()
            save_history(request, offer, action=CHANGE)
            messages.success(request, "Oferta została zmieniona.")
        else:
            messages.error(
                request,
                "Formularz zawiera niepoprawnie wypełnione pola: {}".format(
                    "<br />".join(form.errors)))

        if offer.id or request.user.userprofile.is_administrator:
            organizations = [offer.organization]
        else:
            organizations = request.user.userprofile.organizations.all()

        return render(
            request, 'offers/offer_form.html', {
                'offer': offer,
                'form': form,
                'organizations': organizations,
                'offer_image_form': OfferImageForm(),
            })
예제 #4
0
파일: offers.py 프로젝트: maciekz/volontulo
    def get(request):
        u"""Method responsible for rendering form for new offer.

        :param request: WSGIRequest instance
        """
        if request.user.userprofile.is_administrator:
            messages.info(request,
                          u"Administrator nie może tworzyć nowych ofert.")
            return redirect('offers_list')

        organizations = request.user.userprofile.organizations.all()

        if not organizations.exists():
            messages.info(
                request, u"Nie masz jeszcze żadnej założonej organizacji"
                u" na volontuloapp.org. Aby założyć organizację,"
                u" <a href='{}'>kliknij tu.</a>".format(
                    reverse('organizations_create')))
            return redirect('offers_list')

        return render(
            request, 'offers/offer_form.html', {
                'offer': Offer(),
                'form': CreateOfferForm(),
                'organizations': organizations,
            })
예제 #5
0
    def post(request):
        u"""Method responsible for saving new offer.

        :param request: WSGIRequest instance
        """
        form = CreateOfferForm(request.POST)
        if form.is_valid():
            offer = form.save()
            offer.create_new()
            offer.save()
            save_history(request, offer, action=ADDITION)
            send_mail(
                request,
                'offer_creation',
                ['*****@*****.**'],
                {'offer': offer}
            )
            messages.success(request, u"Dziękujemy za dodanie oferty.")
            return redirect(
                'offers_view',
                slug=slugify(offer.title),
                id_=offer.id,
            )
        messages.error(
            request,
            u"Formularz zawiera niepoprawnie wypełnione pola <br />{0}".format(
                '<br />'.join(form.errors)),
        )
        return render(
            request,
            'offers/offer_form.html',
            {
                'form': form,
                'offer': Offer(),
                'organizations': request.user.userprofile.organizations.all(),
            }
        )
예제 #6
0
    def get(request):
        u"""Method responsible for rendering form for new offer.

        :param request: WSGIRequest instance
        """
        if request.user.userprofile.is_administrator:
            messages.info(request,
                          u"Administrator nie może tworzyć nowych ofert.")
            return redirect('offers_list')

        return render(
            request, 'offers/offer_form.html', {
                'offer': Offer(),
                'form': CreateOfferForm(),
                'organizations': request.user.userprofile.organizations.all(),
            })
예제 #7
0
    def get(request, slug, id_):  # pylint: disable=unused-argument
        """Method responsible for rendering form for offer to be changed.

        :param request: WSGIRequest instance
        :param slug: string Offer title slugified
        :param id_: int Offer database unique identifier (primary key)
        """
        offer = Offer.objects.get(id=id_)
        if offer.id or request.user.userprofile.is_administrator:
            organizations = [offer.organization]
        else:
            organizations = request.user.userprofile.organizations.all()

        return render(
            request, 'offers/offer_form.html', {
                'offer': offer,
                'offer_form': CreateOfferForm(),
                'organization': offer.organization,
                'organizations': organizations,
                'offer_image_form': OfferImageForm(),
                'images': OfferImage.objects.filter(offer=offer).all(),
                'MEDIA_URL': settings.MEDIA_URL,
            })