def label_from_instance(self, obj): attributes = obj.product.product_class.variant_attributes.all() variant_label = smart_text(obj) label = '%(variant_label)s - %(price)s' % { 'variant_label': variant_label, 'price': gross(obj.get_price(discounts=self.discounts))} return label
def capture_payment(request, order_pk, payment_pk): order = get_object_or_404(Order, pk=order_pk) payment = get_object_or_404(order.payments, pk=payment_pk) amount = order.get_total().quantize('0.01').gross form = CapturePaymentForm(request.POST or None, payment=payment, initial={'amount': amount}) if form.is_valid() and form.capture(): amount = form.cleaned_data['amount'] msg = _('Captured %(amount)s') % {'amount': gross(amount)} payment.order.create_history_entry(comment=msg, user=request.user) messages.success(request, msg) return redirect('dashboard:order-details', order_pk=order.pk) status = 400 if form.errors else 200 ctx = { 'captured': payment.captured_amount, 'currency': payment.currency, 'form': form, 'order': order, 'payment': payment } return TemplateResponse(request, 'dashboard/order/modal_capture.html', ctx, status=status)
def refund_payment(request, order_pk, payment_pk): order = get_object_or_404(Order, pk=order_pk) payment = get_object_or_404(order.payments, pk=payment_pk) amount = payment.captured_amount form = RefundPaymentForm(request.POST or None, payment=payment, initial={'amount': amount}) if form.is_valid() and form.refund(): amount = form.cleaned_data['amount'] msg = pgettext_lazy('Dashboard message related to a payment', 'Refunded %(amount)s') % { 'amount': gross(amount) } payment.order.create_history_entry(comment=msg, user=request.user) messages.success(request, msg) return redirect('dashboard:order-details', order_pk=order.pk) status = 400 if form.errors else 200 ctx = { 'captured': payment.captured_amount, 'currency': payment.currency, 'form': form, 'order': order, 'payment': payment } return TemplateResponse(request, 'dashboard/order/modal/refund.html', ctx, status=status)
def price_as_dict(price): if not price: return None return {'currency': price.currency, 'gross': price.gross, 'grossLocalized': prices_i18n.gross(price), 'net': price.net, 'netLocalized': prices_i18n.net(price)}
def label_from_instance(self, obj): attributes = obj.product.attributes.all() variant_label = obj.display_variant(attributes) label = '%(variant_label)s - %(price)s' % { 'variant_label': variant_label, 'price': gross(obj.get_price(discounts=self.discounts)) } return label
def label_from_instance(self, obj): variant_label = smart_text(obj) label = pgettext_lazy( 'Variant choice field label', '%(variant_label)s - %(price)s') % { 'variant_label': variant_label, 'price': gross(obj.get_price(discounts=self.discounts)) } return label
def label_from_instance(self, obj): variant_label = smart_text(obj) label = pgettext_lazy( 'Variant choice field label', '%(variant_label)s - %(price)s') % { 'variant_label': variant_label, 'price': gross(obj.get_price(discounts=self.discounts))} return label
def capture_payment(request, order_pk, payment_pk): order = get_object_or_404(Order, pk=order_pk) payment = get_object_or_404(order.payments, pk=payment_pk) amount = order.get_total().quantize('0.01').gross form = CapturePaymentForm(request.POST or None, payment=payment, initial={'amount': amount}) if form.is_valid() and form.capture(): amount = form.cleaned_data['amount'] msg = _('Captured %(amount)s') % {'amount': gross(amount)} payment.order.create_history_entry(comment=msg, user=request.user) messages.success(request, msg) return redirect('dashboard:order-details', order_pk=order.pk) status = 400 if form.errors else 200 ctx = {'captured': payment.captured_amount, 'currency': payment.currency, 'form': form, 'order': order, 'payment': payment} return TemplateResponse(request, 'dashboard/order/modal_capture.html', ctx, status=status)
def refund_payment(request, order_pk, payment_pk): order = get_object_or_404(Order, pk=order_pk) payment = get_object_or_404(order.payments, pk=payment_pk) amount = payment.captured_amount form = RefundPaymentForm(request.POST or None, payment=payment, initial={'amount': amount}) if form.is_valid() and form.refund(): amount = form.cleaned_data['amount'] msg = pgettext_lazy( 'Dashboard message related to a payment', 'Refunded %(amount)s') % {'amount': gross(amount)} payment.order.create_history_entry(comment=msg, user=request.user) messages.success(request, msg) return redirect('dashboard:order-details', order_pk=order.pk) status = 400 if form.errors else 200 ctx = {'captured': payment.captured_amount, 'currency': payment.currency, 'form': form, 'order': order, 'payment': payment} return TemplateResponse(request, 'dashboard/order/modal_refund.html', ctx, status=status)
def capture_payment(request, order_pk, payment_pk): order = get_object_or_404(Order, pk=order_pk) payment = get_object_or_404(order.payments, pk=payment_pk) amount = order.get_total().quantize("0.01").gross form = CapturePaymentForm(request.POST or None, payment=payment, initial={"amount": amount}) if form.is_valid() and form.capture(): amount = form.cleaned_data["amount"] msg = _("Captured %(amount)s") % {"amount": gross(amount)} payment.order.create_history_entry(comment=msg, user=request.user) messages.success(request, msg) return redirect("dashboard:order-details", order_pk=order.pk) status = 400 if form.errors else 200 ctx = { "captured": payment.captured_amount, "currency": payment.currency, "form": form, "order": order, "payment": payment, } return TemplateResponse(request, "dashboard/order/modal_capture.html", ctx, status=status)
def resolve_gross_localized(self, info): return prices_i18n.gross(self)
def gross_in_currency(price, currency): # noqa converted_price = exchange_currency(price, currency) return prices_i18n.gross(converted_price)
def choice(self, obj): label = obj.display_variant(self.attributes) label += ' - ' + gross(obj.get_price()) return (self.field.prepare_value(obj), label)
def discount_as_negative(discount, html=False): zero = Price(0, currency=discount.amount.currency) return gross(zero - discount.amount, html=html)
def resolve_gross_localized(self, args, context, info): return prices_i18n.gross(self)
def get_variant_label(variant, discounts): return '%s, %s, %s' % ( variant.sku, variant.display_product(), gross(variant.get_price_per_item(discounts)))
def get_variant_label(variant): return '%s, %s, %s' % (variant.sku, variant.display_product(), gross(variant.product.price))
def test_templatetag_i18n_gross_normalize(price_fixture): gross = prices_i18n.gross(price_fixture, normalize=True) assert gross == '$15'
def test_templatetag_i18n_gross_html_normalize(price_fixture): gross = prices_i18n.gross(price_fixture, html=True, normalize=True) assert gross == '<span class="currency">$</span>15'
def test_templatetag_i18n_gross(price_fixture): gross = prices_i18n.gross(price_fixture) assert gross == '$15.00'
def label_from_instance(self, obj): attributes = obj.product.attributes.all() variant_label = obj.display_variant(attributes) label = '%(variant_label)s - %(price)s' % { 'variant_label': variant_label, 'price': gross(obj.get_price())} return label