Template
Extract always-on public/portal/UTM plus optional email_sms, directmail, blog, payments, social, and social_ai so new client sites can be bootstrapped from this seed. Refs #1 Refs #2 Co-authored-by: Cursor <cursoragent@cursor.com>
18 lines
1.0 KiB
HTML
18 lines
1.0 KiB
HTML
{% extends "portal_base.html" %}
|
|
{% block title %}{{ invoice.number }} · Portal{% endblock %}
|
|
{% block topbar_title %}{{ invoice.number }}{% endblock %}
|
|
{% block portal_content %}
|
|
<p><strong>{{ invoice.contact }}</strong> · {{ invoice.amount }} {{ invoice.currency|upper }} · {{ invoice.get_status_display }}</p>
|
|
<p>{{ invoice.description }}</p>
|
|
{% if invoice.hosted_invoice_url %}<p><a href="{{ invoice.hosted_invoice_url }}">Stripe pay link</a></p>{% endif %}
|
|
{% if invoice.status != 'void' and invoice.status != 'paid' %}
|
|
<form method="post" action="{% url 'payments:invoice_send' invoice.pk %}" style="display:inline">{% csrf_token %}
|
|
<button class="btn btn-primary" type="submit">Email pay link</button>
|
|
</form>
|
|
<form method="post" action="{% url 'payments:invoice_void' invoice.pk %}" style="display:inline" onsubmit="return confirm('Void this invoice?');">{% csrf_token %}
|
|
<button class="btn btn-ghost" type="submit">Void</button>
|
|
</form>
|
|
{% endif %}
|
|
<p><a href="{% url 'payments:invoice_list' %}">← All invoices</a></p>
|
|
{% endblock %}
|