Exemple #1
0
 def form_valid(self, form):
     code = form.cleaned_data["code"]
     if not self.request.basket.id:
         return redirect_to_referrer(self.request, "basket:summary")
     if self.request.basket.contains_voucher(code):
         messages.error(
             self.request, _("You have already added the '%(code)s' voucher to " "your basket") % {"code": code}
         )
     else:
         try:
             voucher = self.voucher_model._default_manager.get(code=code)
         except self.voucher_model.DoesNotExist:
             messages.error(self.request, _("No voucher found with code '%(code)s'") % {"code": code})
         else:
             self.apply_voucher_to_basket(voucher)
     return redirect_to_referrer(self.request, "basket:summary")
Exemple #2
0
 def formset_invalid(self, formset):
     messages.error(
         self.request,
         '\n'.join(
             error for ed in formset.errors for el
             in ed.values() for error in el))
     return redirect_to_referrer(self.request, 'basket:summary')
Exemple #3
0
    def form_invalid(self, form):
        msgs = []
        for error in form.errors.values():
            msgs.append(error.as_text())
        clean_msgs = [m.replace('* ', '') for m in msgs if m.startswith('* ')]
        messages.error(self.request, ",".join(clean_msgs))

        return redirect_to_referrer(self.request, 'basket:summary')
Exemple #4
0
 def post(self, request, *args, **kwargs):
     product = get_object_or_404(Product, pk=kwargs["product_pk"])
     wishlists = request.user.wishlists.all()
     if len(wishlists) == 0:
         wishlist = request.user.wishlists.create()
     else:
         # This shouldn't really happen but we default to using the first
         # wishlist for a user if one already exists when they make this
         # request.
         wishlist = wishlists[0]
     wishlist.add(product)
     messages.success(request, _("%(title)s has been added to your wishlist") % {"title": product.get_title()})
     return redirect_to_referrer(request, wishlist.get_absolute_url())
Exemple #5
0
    def get(self, request, *args, **kwargs):
        to_wishlist = get_object_or_404(
            WishList, owner=request.user, key=kwargs['to_key'])
        self.line.wishlist = to_wishlist
        self.line.save()

        msg = _("'%(title)s' moved to '%(name)s' wishlist") % {
            'title': self.product.get_title(),
            'name': to_wishlist.name}
        messages.success(self.request, msg)

        default_url = reverse(
            'customer:wishlists-detail', kwargs={'key': self.wishlist.key})
        return redirect_to_referrer(self.request, default_url)
Exemple #6
0
    def post(self, request, *args, **kwargs):
        product = get_object_or_404(Product, pk=self.kwargs['product_pk'])
        review = get_object_or_404(ProductReview, pk=self.kwargs['pk'])

        form = VoteForm(review, request.user, request.POST)
        if form.is_valid():
            if form.is_up_vote:
                review.vote_up(request.user)
            elif form.is_down_vote:
                review.vote_down(request.user)
            messages.success(request, _("Thanks for voting!"))
        else:
            for error_list in form.errors.values():
                for msg in error_list:
                    messages.error(request, msg)
        return redirect_to_referrer(request, product.get_absolute_url())
Exemple #7
0
    def post(self, request, *args, **kwargs):
        product = get_object_or_404(Product, pk=self.kwargs['product_pk'])
        review = get_object_or_404(ProductReview, pk=self.kwargs['pk'])

        form = VoteForm(review, request.user, request.POST)
        if form.is_valid():
            if form.is_up_vote:
                review.vote_up(request.user)
            elif form.is_down_vote:
                review.vote_down(request.user)
            messages.success(request, _("Thanks for voting!"))
        else:
            for error_list in form.errors.values():
                for msg in error_list:
                    messages.error(request, msg)
        return redirect_to_referrer(request, product.get_absolute_url())
Exemple #8
0
 def post(self, request, *args, **kwargs):
     product = get_object_or_404(Product, pk=kwargs['product_pk'])
     wishlists = request.user.wishlists.all()
     if len(wishlists) == 0:
         wishlist = request.user.wishlists.create()
     else:
         # This shouldn't really happen but we default to using the first
         # wishlist for a user if one already exists when they make this
         # request.
         wishlist = wishlists[0]
     wishlist.add(product)
     messages.success(
         request,
         _("%(title)s has been added to your wishlist") %
         {'title': product.get_title()})
     return redirect_to_referrer(request, wishlist.get_absolute_url())
Exemple #9
0
    def form_valid(self, form):
        super(VoucherAddMessagesView, self).form_valid(form)

        code = form.cleaned_data['code']

        for msg in list(messages.get_messages(self.request)):
            if msg.message == _("No voucher found with code '{code}'").format(code=code):
                messages.error(
                    self.request,
                    _("Coupon code '{code}' does not exist.").format(code=code)
                )
            elif msg.message == _("You have already added the '{code}' voucher to your basket").format(code=code):
                messages.error(
                    self.request,
                    _("You have already added coupon code '{code}' to your basket.").format(code=code)
                )
            elif msg.message == _("The '{code}' voucher has expired").format(code=code):
                messages.error(
                    self.request,
                    _("Coupon code '{code}' has expired.").format(code=code)
                )
            elif msg.message == _("Voucher '{code}' added to basket").format(code=code):
                messages.info(
                    self.request,
                    _("Coupon code '{code}' added to basket.").format(code=code)
                )
            elif msg.message == _("Your basket does not qualify for a voucher discount"):
                messages.warning(
                    self.request,
                    _("Your basket does not qualify for a coupon code discount.")
                )
            elif msg.message == _("This voucher has already been used"):
                messages.error(
                    self.request,
                    _("Coupon code '{code}' has already been redeemed.").format(code=code)
                )
            else:
                messages.error(
                    self.request,
                    _("Coupon code '{code}' is invalid.").format(code=code)
                )

        return redirect_to_referrer(self.request, 'basket:summary')
Exemple #10
0
    def form_valid(self, form):
        super(VoucherAddMessagesView, self).form_valid(form)

        code = form.cleaned_data['code']

        for msg in list(messages.get_messages(self.request)):
            if msg.message == _("No voucher found with code '{code}'").format(code=code):
                messages.error(
                    self.request,
                    _("Coupon code '{code}' does not exist.").format(code=code)
                )
            elif msg.message == _("You have already added the '{code}' voucher to your basket").format(code=code):
                messages.error(
                    self.request,
                    _("You have already added coupon code '{code}' to your basket.").format(code=code)
                )
            elif msg.message == _("The '{code}' voucher has expired").format(code=code):
                messages.error(
                    self.request,
                    _("Coupon code '{code}' has expired.").format(code=code)
                )
            elif msg.message == _("Voucher '{code}' added to basket").format(code=code):
                messages.info(
                    self.request,
                    _("Coupon code '{code}' added to basket.").format(code=code)
                )
            elif msg.message == _("Your basket does not qualify for a voucher discount"):
                messages.warning(
                    self.request,
                    _("Your basket does not qualify for a coupon code discount.")
                )
            elif msg.message == _("This voucher has already been used"):
                messages.error(
                    self.request,
                    _("Coupon code '{code}' has already been redeemed.").format(code=code)
                )
            else:
                messages.error(
                    self.request,
                    _("Coupon code '{code}' is invalid.").format(code=code)
                )

        return redirect_to_referrer(self.request, 'basket:summary')
Exemple #11
0
    def get(self, request, *args, **kwargs):
        to_wishlist = get_object_or_404(WishList, owner=request.user, key=kwargs["to_key"])

        if to_wishlist.lines.filter(product=self.line.product).count() > 0:
            msg = _("Wish list '%(name)s' already containing '%(title)s'") % {
                "title": self.product.get_title(),
                "name": to_wishlist.name,
            }
            messages.error(self.request, msg)
        else:
            self.line.wishlist = to_wishlist
            self.line.save()

            msg = _("'%(title)s' moved to '%(name)s' wishlist") % {
                "title": self.product.get_title(),
                "name": to_wishlist.name,
            }
            messages.success(self.request, msg)

        default_url = reverse("customer:wishlists-detail", kwargs={"key": self.wishlist.key})
        return redirect_to_referrer(self.request, default_url)
Exemple #12
0
    def get(self, request, *args, **kwargs):
        to_wishlist = get_object_or_404(
            WishList, owner=request.user, key=kwargs['to_key'])

        if to_wishlist.lines.filter(product=self.line.product).count() > 0:
            msg = _("Wish list '%(name)s' already containing '%(title)s'") % {
                'title': self.product.get_title(),
                'name': to_wishlist.name}
            messages.error(self.request, msg)
        else:
            self.line.wishlist = to_wishlist
            self.line.save()

            msg = _("'%(title)s' moved to '%(name)s' wishlist") % {
                'title': self.product.get_title(),
                'name': to_wishlist.name}
            messages.success(self.request, msg)

        default_url = reverse(
            'customer:wishlists-detail', kwargs={'key': self.wishlist.key})
        return redirect_to_referrer(self.request, default_url)
Exemple #13
0
 def post(self, request, *args, **kwargs):
     reply_answer = None
     review = None
     product = get_object_or_404(Product, pk=self.kwargs['product_pk'])
     review_pk = request.POST.get('review_id', None)
     if review_pk:
         review = get_object_or_404(ProductReview, pk=review_pk)
     else:
         reply_answer = get_object_or_404(ReviewAnswer,
                                          pk=request.POST.get(
                                              'answer_id', None))
     form = self.form_class(request.POST)
     if form.is_valid():
         answer = form.save(commit=False)
         answer.review = review
         answer.reply_to = reply_answer
         answer.save()
         return redirect_to_referrer(request, product.get_absolute_url())
     else:
         for error_list in form.errors.values():
             for msg in error_list:
                 messages.error(request, msg)
         return HttpResponseBadRequest()
Exemple #14
0
 def add_product(self):
     self.wishlist.add(self.product)
     msg = _("'%s' was added to your wish list.") % self.product.get_title()
     messages.success(self.request, msg)
     return redirect_to_referrer(self.request,
                                 self.product.get_absolute_url())
Exemple #15
0
 def get_success_response(self):
     return redirect_to_referrer(self.request.META,
                                 'customer:notifications-inbox')
Exemple #16
0
 def add_product(self):
     self.wishlist.add(self.product)
     # msg = _("'%s' was added to your wish list.") % self.product.get_title()
     # messages.success(self.request, msg)
     return redirect_to_referrer(
         self.request, self.product.get_absolute_url())
Exemple #17
0
 def get_success_response(self):
     return redirect_to_referrer(
         self.request, 'customer:notifications-inbox')
Exemple #18
0
 def formset_invalid(self, formset):
     messages.error(
         self.request, '\n'.join(error for ed in formset.errors
                                 for el in ed.values() for error in el))
     return redirect_to_referrer(self.request, 'basket:summary')
Exemple #19
0
 def get_success_response(self):
     return redirect_to_referrer(self.request,
                                 'communication:notifications-inbox')
Exemple #20
0
def addVoucher(request):
	if request.method == 'POST':
		code = request.POST.get('code')
		user = request.user
		userProfile, created = UserProfile.objects.get_or_create(user=user)
		if created:
			userProfile.name = user.first_name + " " + user.last_name
			userProfile.save()
		basket = request.basket
		print 'code : ', code
		print 'user : '******'userProfile : ', userProfile
		print 'request.basket : ', request.basket
		print 'request.session : ', request.session.items()

		if not request.basket.id:
			return redirect_to_referrer(request, 'basket:summary')

		else:

			total_incl_tax_excl_discounts = basket._get_total('line_price_incl_tax')
			print 'total : ', total_incl_tax_excl_discounts

			try:
				
				# Referral
				if code[0] == 'R':
					if userProfile.referral_taken == False:
						voucher = Voucher.objects.get(code=code)
						print voucher
						referral_model = ReferralCode.objects.get(code=code)
						referee = referral_model.user
						if referee == user:
							messages.error(request, "Chasing your own tail!")
							return redirect_to_referrer(request, 'basket:summary')
						print 'its a referral'
						discount_to_be_applied = 0.10 * float(total_incl_tax_excl_discounts)
						referral = {
							"user_id" : request.user.id,
							"referee_id" : referee.id ,
							"discount_to_be_applied" : discount_to_be_applied
						}
						referral = json.dumps(referral)
						request.session['referral'] = referral
						print request.session['referral']

					else:
						messages.error(request, 'You have already used a General Referral Code')
						return redirect_to_referrer(request, 'basket:summary')

				# Vet
				elif code[0] == 'V':
					if userProfile.vet == '' or userProfile.vet != code:
						voucher = Voucher.objects.get(code=code)
						print voucher
						# vet = Vet.objects.get(code=code)
						discount_to_be_applied = 0.10 * float(total_incl_tax_excl_discounts)
						vetReferral = {
							'user_id' : request.user.id,
							'code' : code,
						}
						vetReferral = json.dumps(vetReferral)
						request.session['vetReferral'] = vetReferral
						print request.session['vetReferral']

					else:
						if userProfile.vet != '':
							messages.error(request, ("You have already used a Referral Code! You are referred to '%(vet)s'") % { 'vet' : userProfile.vet})
							return redirect_to_referrer(request, 'basket:summary')
						else:
							messages.error(request, ("No voucher found with code '%(code)s'") % {'code': code})
							return redirect_to_referrer(request, 'basket:summary')

				# Coupon
				else:
					voucher = Voucher.objects.get(code=code)
				

			except Exception as e:
				print '******'
				print e
				print '******'
				messages.error(request, ("No voucher found with code '%(code)s'") % {'code': code})
				return redirect_to_referrer(request, 'basket:summary')

			# Coupon
			request.session['CODE'] = code
			request.session['DISCOUNT'] = discount_to_be_applied
			apply_voucher_to_basket(request, voucher)

	elif request.method == 'GET':
		# CREDIT
		if request.user.is_authenticated():
			# code = request.GET.get('code')
			user = request.user
			userProfile, created = UserProfile.objects.get_or_create(user=user)
			if created:
				userProfile.name = user.first_name + " " + user.last_name
				userProfile.save()
			basket = request.basket

			if not request.basket.id:
				return redirect_to_referrer(request, 'basket:summary')

			else:
				total_incl_tax_excl_discounts = basket._get_total('line_price_incl_tax')
				
				# CREDIT
				userCredit = userProfile.user_credit
				if userCredit == 0:
					messages.error(request, "Sorry but you don't have any Petzo Credit!\nRefer to other users using your Referral Code to obtain credit")
					return redirect_to_referrer(request, 'basket:summary')

				discountable = 0.10 * float(total_incl_tax_excl_discounts)
				benefit = Benefit.objects.all()[0]

				print 'userCredit : ', userCredit
				print 'discountable : ', discountable

				if userCredit <= discountable:
					discount_to_be_applied = float(userCredit)
					benefit.value = userCredit

				else:
					discount_to_be_applied = discountable
					benefit.value = Decimal(discountable)

				print 'benefit.value : ', benefit.value
				benefit.save()

				credit = {
					"user_id" : request.user.id,
					"credit_used" : discount_to_be_applied
				}
				credit = json.dumps(credit)
				request.session['credit'] = credit
				request.session['DISCOUNT'] = discount_to_be_applied
				voucher = Voucher.objects.get(name='CREDIT')
				print 'voucher : ', voucher
				apply_voucher_to_basket(request, voucher)


	return redirect_to_referrer(request, 'basket:summary')