mirror of
https://github.com/pretix/pretix.git
synced 2026-05-09 15:54:03 +00:00
Fix #957 -- Integrate BezahlCode and GiroCode
This commit is contained in:
@@ -19,6 +19,7 @@ class BankTransferApp(AppConfig):
|
|||||||
def ready(self):
|
def ready(self):
|
||||||
from . import signals # NOQA
|
from . import signals # NOQA
|
||||||
from . import tasks # NOQA
|
from . import tasks # NOQA
|
||||||
|
from .templatetags import commadecimal # NOQA
|
||||||
|
|
||||||
@cached_property
|
@cached_property
|
||||||
def compatibility_warnings(self):
|
def compatibility_warnings(self):
|
||||||
|
|||||||
@@ -175,6 +175,7 @@ class BankTransfer(BasePaymentProvider):
|
|||||||
'event': self.event,
|
'event': self.event,
|
||||||
'code': self._code(payment.order),
|
'code': self._code(payment.order),
|
||||||
'order': payment.order,
|
'order': payment.order,
|
||||||
|
'amount': payment.amount,
|
||||||
'settings': self.settings,
|
'settings': self.settings,
|
||||||
'details': self.settings.get('bank_details', as_type=LazyI18nString),
|
'details': self.settings.get('bank_details', as_type=LazyI18nString),
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,21 +1,59 @@
|
|||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% load l10n %}
|
{% load l10n %}
|
||||||
|
{% load commadecimal %}
|
||||||
{% load money %}
|
{% load money %}
|
||||||
|
|
||||||
<p>{% blocktrans trimmed %}
|
<p>{% blocktrans trimmed %}
|
||||||
Please transfer the full amount to the following bank account:
|
Please transfer the full amount to the following bank account:
|
||||||
{% endblocktrans %}</p>
|
{% endblocktrans %}</p>
|
||||||
|
|
||||||
<address>
|
<div class="row">
|
||||||
|
<div class="{% if settings.bank_details_type == "sepa" %}col-md-6{% else %}col-md-12{% endif %} col-xs-12">
|
||||||
|
<p>
|
||||||
|
{% if settings.bank_details_type == "sepa" %}
|
||||||
|
<strong>{% trans "Account holder" %}:</strong> {{ settings.bank_details_sepa_name }}<br>
|
||||||
|
<strong>{% trans "IBAN" %}:</strong> {{ settings.bank_details_sepa_iban }}<br>
|
||||||
|
<strong>{% trans "BIC" %}:</strong> {{ settings.bank_details_sepa_bic }}<br>
|
||||||
|
<strong>{% trans "Bank" %}:</strong> {{ settings.bank_details_sepa_bank }}<br>
|
||||||
|
{% endif %}
|
||||||
|
{% if details %}
|
||||||
|
{{ details|linebreaksbr }}<br>
|
||||||
|
{% endif %}
|
||||||
|
<strong>{% trans "Amount:" %}</strong> {{ amount|money:event.currency }}<br/>
|
||||||
|
<strong>{% trans "Reference code (important):" %} {{ code }}</strong>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
{% if settings.bank_details_type == "sepa" %}
|
{% if settings.bank_details_type == "sepa" %}
|
||||||
<strong>{% trans "Account holder" %}:</strong> {{ settings.bank_details_sepa_name }}<br>
|
<div class="col-md-3 col-sm-6 hidden-xs text-center">
|
||||||
<strong>{% trans "IBAN" %}:</strong> {{ settings.bank_details_sepa_iban }}<br>
|
BezahlCode<br>
|
||||||
<strong>{% trans "BIC" %}:</strong> {{ settings.bank_details_sepa_bic }}<br>
|
<a href="bank://singlepaymentsepa?name={{ settings.bank_details_sepa_name|urlencode }}&iban={{ settings.bank_details_sepa_iban }}&bic={{ settings.bank_details_sepa_bic }}&amount={{ order.total|commadecimal }}&reason={{ code }}¤cy={{ event.currency }}">
|
||||||
<strong>{% trans "Bank" %}:</strong> {{ settings.bank_details_sepa_bank }}<br>
|
<script type="text/plain" data-size="150" data-replace-with-qr>bank://singlepaymentsepa?name={{ settings.bank_details_sepa_name|urlencode }}&iban={{ settings.bank_details_sepa_iban }}&bic={{ settings.bank_details_sepa_bic }}&amount={{ amount|commadecimal }}&reason={{ code }}¤cy={{ event.currency }}</script>
|
||||||
|
</a>
|
||||||
|
<p> </p>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3 col-sm-6 hidden-xs text-center">
|
||||||
|
GiroCode / EPC-QR<br>
|
||||||
|
<script type="text/plain" data-size="150" data-replace-with-qr>BCD
|
||||||
|
002
|
||||||
|
2
|
||||||
|
SCT
|
||||||
|
{{ settings.bank_details_sepa_bic }}
|
||||||
|
{{ settings.bank_details_sepa_name }}
|
||||||
|
{{ settings.bank_details_sepa_iban }}
|
||||||
|
{{ event.currency }}{{ amount|floatformat:2 }}
|
||||||
|
|
||||||
|
|
||||||
|
{{ code }}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
<div class="visible-xs-block text-center">
|
||||||
|
<p>
|
||||||
|
<a href="bank://singlepaymentsepa?name={{ settings.bank_details_sepa_name|urlencode }}&iban={{ settings.bank_details_sepa_iban }}&bic={{ settings.bank_details_sepa_bic }}&amount={{ order.total|commadecimal }}&reason={{ code }}¤cy={{ event.currency }}" class="btn btn-default">
|
||||||
|
{% trans "Open banking app" %}
|
||||||
|
</a><br>
|
||||||
|
<small>{% trans "Requires that the app supports BezahlCode" %}</small>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if details %}
|
</div>
|
||||||
{{ details|linebreaksbr }}<br>
|
|
||||||
{% endif %}
|
|
||||||
<strong>{% trans "Amount:" %}</strong> {{ order.total|money:event.currency }}<br />
|
|
||||||
<strong>{% trans "Reference code (important):" %} {{ code }}</strong>
|
|
||||||
</address>
|
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
from django import template
|
||||||
|
|
||||||
|
register = template.Library()
|
||||||
|
|
||||||
|
|
||||||
|
@register.filter
|
||||||
|
def commadecimal(value):
|
||||||
|
return str(value).replace(".", ",")
|
||||||
@@ -24,6 +24,7 @@
|
|||||||
<script type="text/javascript" src="{% static "js/jquery.formset.js" %}"></script>
|
<script type="text/javascript" src="{% static "js/jquery.formset.js" %}"></script>
|
||||||
<script type="text/javascript" src="{% static "bootstrap/js/bootstrap.js" %}"></script>
|
<script type="text/javascript" src="{% static "bootstrap/js/bootstrap.js" %}"></script>
|
||||||
<script type="text/javascript" src="{% static "datetimepicker/bootstrap-datetimepicker.js" %}"></script>
|
<script type="text/javascript" src="{% static "datetimepicker/bootstrap-datetimepicker.js" %}"></script>
|
||||||
|
<script type="text/javascript" src="{% static "pretixcontrol/js/jquery.qrcode.min.js" %}"></script>
|
||||||
<script type="text/javascript" src="{% static "pretixpresale/js/ui/main.js" %}"></script>
|
<script type="text/javascript" src="{% static "pretixpresale/js/ui/main.js" %}"></script>
|
||||||
<script type="text/javascript" src="{% static "pretixbase/js/asynctask.js" %}"></script>
|
<script type="text/javascript" src="{% static "pretixbase/js/asynctask.js" %}"></script>
|
||||||
<script type="text/javascript" src="{% static "pretixbase/js/asyncdownload.js" %}"></script>
|
<script type="text/javascript" src="{% static "pretixbase/js/asyncdownload.js" %}"></script>
|
||||||
|
|||||||
@@ -374,7 +374,10 @@ var form_handlers = function (el) {
|
|||||||
$div.insertBefore($(this));
|
$div.insertBefore($(this));
|
||||||
$div.qrcode(
|
$div.qrcode(
|
||||||
{
|
{
|
||||||
text: $(this).html()
|
text: $(this).html(),
|
||||||
|
correctLevel: 0, // M
|
||||||
|
width: $(this).attr("data-size") ? parseInt($(this).attr("data-size")) : 256,
|
||||||
|
height: $(this).attr("data-size") ? parseInt($(this).attr("data-size")) : 256,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -91,6 +91,19 @@ var form_handlers = function (el) {
|
|||||||
};
|
};
|
||||||
$(this).datetimepicker(opts);
|
$(this).datetimepicker(opts);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
el.find("script[data-replace-with-qr]").each(function () {
|
||||||
|
var $div = $("<div>");
|
||||||
|
$div.insertBefore($(this));
|
||||||
|
$div.qrcode(
|
||||||
|
{
|
||||||
|
text: $(this).html(),
|
||||||
|
correctLevel: 0, // M
|
||||||
|
width: $(this).attr("data-size") ? parseInt($(this).attr("data-size")) : 256,
|
||||||
|
height: $(this).attr("data-size") ? parseInt($(this).attr("data-size")) : 256,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user