コード例 #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
ファイル: 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,
            })
コード例 #4
0
    def test_image(self):
        """Test image method."""
        organization = Organization()
        organization.save()
        offer = Offer(title='Offer Title 123', organization=organization)
        offer.save()
        image = OfferImage(offer=offer, path=SimpleUploadedFile(
            name='test_image.jpg',
            content=b'test_content',
        ))
        image.save()
        context = {
            'request': RequestFactory().get('/')
        }

        self.assertEqual(
            urlparse(OfferSerializer(context=context).get_image(offer)).path,
            image.path.url,
        )
コード例 #5
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(),
            })
コード例 #6
0
 def test_slug(self):
     """Test slug method."""
     offer = Offer(title='Offer Title 123')
     self.assertEqual(OfferSerializer().get_slug(offer), 'offer-title-123')