Re-label cart button if cart is not visible or all products are free

This commit is contained in:
Raphael Michel
2020-04-20 19:05:21 +02:00
parent 234bf093ff
commit 4e59b02bb1
5 changed files with 40 additions and 2 deletions

View File

@@ -189,6 +189,7 @@
</div> </div>
<div class="col-md-4 col-md-offset-4"> <div class="col-md-4 col-md-offset-4">
<button class="btn btn-block btn-primary btn-lg" type="submit"> <button class="btn btn-block btn-primary btn-lg" type="submit">
<span class="fa fa-lock"></span>
{% if cart.total > 0 %} {% if cart.total > 0 %}
{% trans "Place binding order" %} {% trans "Place binding order" %}
{% else %} {% else %}

View File

@@ -241,7 +241,15 @@
<div class="row-fluid"> <div class="row-fluid">
<div class="col-md-4 col-md-offset-8 col-xs-12"> <div class="col-md-4 col-md-offset-8 col-xs-12">
<button class="btn btn-block btn-primary btn-lg" type="submit" id="btn-add-to-cart"> <button class="btn btn-block btn-primary btn-lg" type="submit" id="btn-add-to-cart">
<i class="fa fa-shopping-cart"></i> {% trans "Add to cart" %} {% if request.event.settings.redirect_to_checkout_directly %}
{% if allfree %}
<i class="fa fa-check"></i> {% trans "Register" %}
{% else %}
<i class="fa fa-shopping-cart"></i> {% trans "Proceed with checkout" %}
{% endif %}
{% else %}
<i class="fa fa-shopping-cart"></i> {% trans "Add to cart" %}
{% endif %}
</button> </button>
</div> </div>
<div class="clearfix"></div> <div class="clearfix"></div>

View File

@@ -338,7 +338,15 @@
<div class="row-fluid checkout-button-row"> <div class="row-fluid checkout-button-row">
<div class="col-md-4 col-md-offset-8 col-xs-12"> <div class="col-md-4 col-md-offset-8 col-xs-12">
<button class="btn btn-block btn-primary btn-lg" id="btn-add-to-cart" type="submit"> <button class="btn btn-block btn-primary btn-lg" id="btn-add-to-cart" type="submit">
<i class="fa fa-shopping-cart"></i> {% trans "Add to cart" %} {% if request.event.settings.redirect_to_checkout_directly %}
{% if allfree %}
<i class="fa fa-check"></i> {% trans "Register" %}
{% else %}
<i class="fa fa-shopping-cart"></i> {% trans "Proceed with checkout" %}
{% endif %}
{% else %}
<i class="fa fa-shopping-cart"></i> {% trans "Add to cart" %}
{% endif %}
</button> </button>
</div> </div>
<div class="clearfix"></div> <div class="clearfix"></div>

View File

@@ -1,6 +1,7 @@
import json import json
import mimetypes import mimetypes
import os import os
from decimal import Decimal
from django.conf import settings from django.conf import settings
from django.contrib import messages from django.contrib import messages
@@ -455,6 +456,16 @@ class RedeemView(NoSearchIndexViewMixin, EventViewMixin, TemplateView):
context['options'] = sum([(len(item.available_variations) if item.has_variations else 1) context['options'] = sum([(len(item.available_variations) if item.has_variations else 1)
for item in items]) for item in items])
context['allfree'] = all(
item.display_price.gross == Decimal('0.00') for item in items if not item.has_variations
) and all(
all(
var.display_price.gross == Decimal('0.00')
for var in item.available_variations
)
for item in items if item.has_variations
)
# Regroup those by category # Regroup those by category
context['items_by_category'] = item_group_by_category(items) context['items_by_category'] = item_group_by_category(items)

View File

@@ -2,6 +2,7 @@ import calendar
import sys import sys
from collections import defaultdict from collections import defaultdict
from datetime import date, datetime, timedelta from datetime import date, datetime, timedelta
from decimal import Decimal
from importlib import import_module from importlib import import_module
import pytz import pytz
@@ -319,6 +320,15 @@ class EventIndex(EventViewMixin, EventListMixin, CartMixin, TemplateView):
items, display_add_to_cart = get_grouped_items(self.request.event, self.subevent, items, display_add_to_cart = get_grouped_items(self.request.event, self.subevent,
channel=self.request.sales_channel.identifier) channel=self.request.sales_channel.identifier)
context['itemnum'] = len(items) context['itemnum'] = len(items)
context['allfree'] = all(
item.display_price.gross == Decimal('0.00') for item in items if not item.has_variations
) and all(
all(
var.display_price.gross == Decimal('0.00')
for var in item.available_variations
)
for item in items if item.has_variations
)
# Regroup those by category # Regroup those by category
context['items_by_category'] = item_group_by_category(items) context['items_by_category'] = item_group_by_category(items)