rename cash payment method to 'in person' - it could also be called izettle, but lets keep the brandname out of it :) Orders with payment method IN_PERSON can be paid at the infodesk with izettle. While here update some text on the checkout page and update icons to FA

This commit is contained in:
Thomas Steen Rasmussen 2020-08-12 17:49:24 +02:00
parent c6cb90e567
commit 7f05372bb9
7 changed files with 51 additions and 39 deletions

View File

@ -0,0 +1,28 @@
# Generated by Django 3.1 on 2020-08-12 15:32
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("shop", "0062_auto_20200811_1015"),
]
operations = [
migrations.AlterField(
model_name="order",
name="payment_method",
field=models.CharField(
blank=True,
choices=[
("credit_card", "Credit card"),
("blockchain", "Blockchain"),
("bank_transfer", "Bank transfer"),
("in_person", "In Person"),
],
default="",
max_length=50,
),
),
]

View File

@ -87,15 +87,15 @@ class Order(CreatedUpdatedModel):
CREDIT_CARD = "credit_card"
BLOCKCHAIN = "blockchain"
BANK_TRANSFER = "bank_transfer"
CASH = "cash"
IN_PERSON = "in_person"
PAYMENT_METHODS = [CREDIT_CARD, BLOCKCHAIN, BANK_TRANSFER, CASH]
PAYMENT_METHODS = [CREDIT_CARD, BLOCKCHAIN, BANK_TRANSFER, IN_PERSON]
PAYMENT_METHOD_CHOICES = [
(CREDIT_CARD, "Credit card"),
(BLOCKCHAIN, "Blockchain"),
(BANK_TRANSFER, "Bank transfer"),
(CASH, "Cash"),
(IN_PERSON, "In Person"),
]
payment_method = models.CharField(

View File

@ -1,18 +0,0 @@
{% extends 'shop_base.html' %}
{% load bootstrap3 %}
{% block title %}
Checkout | {{ block.super }}
{% endblock %}
{% block shop_content %}
<form method="POST">
{% csrf_token %}
{% bootstrap_button "Pay with credit card" name="credit_card" button_type="submit" button_class="btn-primary" %}
{% bootstrap_button "Pay with blockchain" name="blockchain" button_type="submit" button_class="btn-primary" %}
{% bootstrap_button "Pay with bank transfer" name="bank_transfer" button_type="submit" button_class="btn-primary" %}
</form>
{% endblock %}

View File

@ -3,13 +3,13 @@
{% load shop_tags %}
{% block title %}
Pay by Cash | {{ block.super }}
Pay In Person | {{ block.super }}
{% endblock %}
{% block shop_content %}
<h2>Pay by Cash</h2>
<p>To pay order #{{ order.id }} you need to <strong>locate an organiser</strong> (in person) and make the cash payment of <b>{{ order.total|currency }}</b>. You need to bring the <strong>order id #{{ order.id }}</strong> as well so we can mark your order as paid.</p>
<h2>Pay In Person</h2>
<p>To pay order #{{ order.id }} you need to <strong>locate an organiser</strong> (in person) and make the payment of <b>{{ order.total|currency }}</b> with cash, card or mobilepay. You need to bring the <strong>order id #{{ order.id }}</strong> as well so we can mark your order as paid.</p>
<p>If physically finding an organiser is inconvenient for you (during events you can find us at the Infodesk, but between events geography can make things difficult) you should <a href="{% url 'shop:order_detail' pk=order.id %}">go back</a> and pick a different payment method.</p>
<p>When your order has been marked as paid you will receive an invoice by email.</p>

View File

@ -110,35 +110,35 @@ Details for Order #{{ order.id }} | {{ block.super }}
<p>
<input type="checkbox" name="accept_terms" />
I accept the <a href="{% url 'general-terms' %}">general terms &amp; conditions</a>.
Finally I accept to adhere to our <a href="{% url 'conduct' %}">Code of Conduct</a>
during events as well as in BornHack online channels.
I also accept to adhere to the <a href="{% url 'conduct' %}">Code of Conduct</a>
during events as well as in BornHacks online channels.
</p>
</label>
</div>
<p>
<strong>Choose a payment option:</strong>
<strong>Please choose a payment option:</strong>
</p>
<div class="btn-group btn-group-justified">
<div class="btn-group">
{% bootstrap_button "<i class='glyphicon glyphicon-bitcoin'></i> Blockchain" button_type="submit" button_class="btn-primary" name="payment_method" value="blockchain" %}
{% bootstrap_button "<i class='fab fa-bitcoin'></i> Blockchain" button_type="submit" button_class="btn-primary" name="payment_method" value="blockchain" %}
</div>
<div class="btn-group">
{% bootstrap_button "<i class='glyphicon glyphicon-piggy-bank'></i> Bank transfer" button_type="submit" button_class="btn-primary" name="payment_method" value="bank_transfer" %}
{% bootstrap_button "<i class='fas fa-piggy-bank'></i> Bank transfer" button_type="submit" button_class="btn-primary" name="payment_method" value="bank_transfer" %}
</div>
<div class="btn-group">
{% bootstrap_button "<i class='glyphicon glyphicon-menu-hamburger'></i> Cash" button_type="submit" button_class="btn-primary" name="payment_method" value="cash" %}
{% bootstrap_button "<i class='fas fa-coins'></i> In person" button_type="submit" button_class="btn-primary" name="payment_method" value="in_person" %}
</div>
<div class="btn-group">
{% bootstrap_button "<i class='glyphicon glyphicon-credit-card'></i> Credit card*" button_type="submit" button_class="btn-primary" name="payment_method" value="credit_card" %}
{% bootstrap_button "<i class='fas fa-credit-card'></i> Credit card" button_type="submit" button_class="btn-primary" name="payment_method" value="credit_card" %}
</div>
</div>
</form>
<div class="alert alert-info" style="margin-top: 5px; margin-bottom: -10px;">* Please consider the alternatives before choosing credit card. Credit cards are expensive and difficult for us to handle. Thank you!</div>
<div class="alert alert-info" style="margin-top: 5px; margin-bottom: -10px;">* If you have a Danish bank account then please choose bank transfer, is is the cheapest way for us. If you do not have a Danish bank account then credit card or blockchain payment is the best way.</div>
</div>
<div class="panel-footer">
<i>Bank transfers take up to a week to get registered, but the other
<i>Bank transfers can take up to a week to get registered, but the other
payment methods should be more or less instant. Please
<a href="{% url 'contact' %}">contact us</a> if your have questions.</i>
</div>

View File

@ -2,7 +2,6 @@ from django.urls import include, path
from .views import (
BankTransferView,
CashView,
CoinifyCallbackView,
CoinifyRedirectView,
CoinifyThanksView,
@ -16,6 +15,7 @@ from .views import (
OrderListView,
OrderMarkAsPaidView,
OrderReviewAndPayView,
PayInPersonView,
ProductDetailView,
ShopIndexView,
)
@ -73,7 +73,7 @@ urlpatterns = [
BankTransferView.as_view(),
name="bank_transfer",
),
path("pay/cash/", CashView.as_view(), name="cash"),
path("pay/in_person/", PayInPersonView.as_view(), name="in_person"),
]
),
),

View File

@ -385,7 +385,9 @@ class OrderReviewAndPayView(
Order.BANK_TRANSFER: reverse_lazy(
"shop:bank_transfer", kwargs={"pk": order.id}
),
Order.CASH: reverse_lazy("shop:cash", kwargs={"pk": order.id}),
Order.IN_PERSON: reverse_lazy(
"shop:in_person", kwargs={"pk": order.id}
),
}
return HttpResponseRedirect(reverses[payment_method])
@ -570,10 +572,10 @@ class BankTransferView(
return context
# Cash payment view
# In-person (izettle) payment view
class CashView(
class PayInPersonView(
LoginRequiredMixin,
EnsureUserOwnsOrderMixin,
EnsureUnpaidOrderMixin,
@ -581,7 +583,7 @@ class CashView(
DetailView,
):
model = Order
template_name = "cash.html"
template_name = "in_person.html"
# Coinify views