UI: 2024 Hero component options #103971
@ -72,7 +72,7 @@ body.is-scrolled
|
|||||||
|
|
||||||
img
|
img
|
||||||
height: calc(var(--spacer) * 14)
|
height: calc(var(--spacer) * 14)
|
||||||
max-width: 100%
|
max-width: calc(var(--spacer) * 30)
|
||||||
object-fit: contain
|
object-fit: contain
|
||||||
|
|
||||||
.content
|
.content
|
||||||
|
@ -13,8 +13,9 @@ $col-time-width: 8%
|
|||||||
background-color: var(--color-bg-primary)
|
background-color: var(--color-bg-primary)
|
||||||
|
|
||||||
.btn-toggle
|
.btn-toggle
|
||||||
&.is-active
|
|
||||||
@extend .btn
|
@extend .btn
|
||||||
|
|
||||||
|
&.is-active
|
||||||
@extend .btn-primary
|
@extend .btn-primary
|
||||||
|
|
||||||
+media-xs
|
+media-xs
|
||||||
@ -149,7 +150,7 @@ $col-time-width: 8%
|
|||||||
top: 0
|
top: 0
|
||||||
z-index: 10
|
z-index: 10
|
||||||
|
|
||||||
+media-sm
|
+media-lg
|
||||||
display: none
|
display: none
|
||||||
|
|
||||||
body.is-scrolled
|
body.is-scrolled
|
||||||
|
@ -16,7 +16,7 @@ style.
|
|||||||
--hero-max-height: 640px;
|
--hero-max-height: 640px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hero-background {
|
.hero-bg {
|
||||||
background-position: center;
|
background-position: center;
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
}
|
}
|
||||||
@ -34,7 +34,7 @@ style.
|
|||||||
.hero {
|
.hero {
|
||||||
--hero-max-height: 440px;
|
--hero-max-height: 440px;
|
||||||
}
|
}
|
||||||
.hero-background {
|
.hero-bg {
|
||||||
background-position: left center;
|
background-position: left center;
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
li.list-group-item(class="{% if 'festival' in request.path %}is-active{% endif %}")
|
li.list-group-item(class="{% if 'festival' in request.path %}is-active{% endif %}")
|
||||||
a(href="{% url 'account_festival_entries_list' %}")
|
a(href="{% url 'account_festival_entries_list' %}")
|
||||||
| #[i.i-tv] My Festival Entries
|
| #[i.i-tv] My Festival Entries
|
||||||
li.list-group-item(class="{% if 'tickets' in request.path %}is-active{% endif %}")
|
li.list-group-item(class="{% if 'ticket' in request.path %}is-active{% endif %}")
|
||||||
a(href="{% url 'tickets:list' %}")
|
a(href="{% url 'tickets:list' %}")
|
||||||
| #[i.i-ticket] Tickets
|
| #[i.i-ticket] Tickets
|
||||||
| {% endblock sidebar %}
|
| {% endblock sidebar %}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
style.
|
style.
|
||||||
:root {
|
:root {
|
||||||
{% for l in edition.locations.all %}
|
{% for l in edition.locations.all %}
|
||||||
--location-hue-{{ l.slug }}: {{ l.color_to_hsv.0 }};
|
--location-hue-{{ l.slug }}: {{ l.color_to_hsv.0|floatformat }};
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
}
|
}
|
||||||
|
|
@ -4,3 +4,8 @@ a.alert.alert-fluid.alert-info.text-center(
|
|||||||
| There {{ events_unscheduled_count|pluralize:"is,are" }} {{ events_unscheduled_count }}
|
| There {{ events_unscheduled_count|pluralize:"is,are" }} {{ events_unscheduled_count }}
|
||||||
| unscheduled event{{ events_unscheduled_count|pluralize }}
|
| unscheduled event{{ events_unscheduled_count|pluralize }}
|
||||||
| {% endif %}
|
| {% endif %}
|
||||||
|
|
||||||
|
| {% if edition.schedule_status == 'proposed' %}
|
||||||
|
.alert.alert-fluid.alert-warning
|
||||||
|
| This is a proposed version of the schedule. The final version will be available 2 weeks before the event.
|
||||||
|
| {% endif %}
|
@ -11,9 +11,9 @@
|
|||||||
.hero-subtitle Submit your entry to the animation festival.
|
.hero-subtitle Submit your entry to the animation festival.
|
||||||
|
|
||||||
{% if edition.header %}
|
{% if edition.header %}
|
||||||
.hero-background(style="background-image: url({{ edition.header.url }})")
|
.hero-bg(style="background-image: url({{ edition.header.url }})")
|
||||||
{% else %}
|
{% else %}
|
||||||
.hero-background(style="background-image: url({% static 'images/bcon19_cityscape_notext.jpg' %})")
|
.hero-bg(style="background-image: url({% static 'images/bcon19_cityscape_notext.jpg' %})")
|
||||||
{% endif %}
|
{% endif %}
|
||||||
.hero-overlay
|
.hero-overlay
|
||||||
| {% endblock jumbotron %}
|
| {% endblock jumbotron %}
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
| {% load conference_main %}
|
| {% load conference_main %}
|
||||||
|
|
||||||
| {% block content %}
|
| {% block content %}
|
||||||
| {% include "conference_main/components/event_style.pug" %}
|
| {% include "conference_main/components/location_style.pug" %}
|
||||||
|
|
||||||
.panel-container
|
.panel-container
|
||||||
section.panel-events-list.panel-ajax-refresh(
|
section.panel-events-list.panel-ajax-refresh(
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
| {% load conference_main %}
|
| {% load conference_main %}
|
||||||
|
|
||||||
| {% block content %}
|
| {% block content %}
|
||||||
| {% include "conference_main/components/event_style.pug" %}
|
| {% include "conference_main/components/location_style.pug" %}
|
||||||
|
|
||||||
.panel-container.panel-location
|
.panel-container.panel-location
|
||||||
ul.board-events(
|
ul.board-events(
|
||||||
|
@ -17,9 +17,9 @@
|
|||||||
| {{ edition.title }} special.
|
| {{ edition.title }} special.
|
||||||
|
|
||||||
{% if edition.header %}
|
{% if edition.header %}
|
||||||
.hero-background(style="background-image: url({{ edition.header.url }})")
|
.hero-bg(style="background-image: url({{ edition.header.url }})")
|
||||||
{% else %}
|
{% else %}
|
||||||
.hero-background(style="background-image: url({% static 'images/bcon19_cityscape_notext.jpg' %})")
|
.hero-bg(style="background-image: url({% static 'images/bcon19_cityscape_notext.jpg' %})")
|
||||||
{% endif %}
|
{% endif %}
|
||||||
.hero-overlay
|
.hero-overlay
|
||||||
| {% endblock jumbotron %}
|
| {% endblock jumbotron %}
|
||||||
|
@ -30,7 +30,7 @@ meta(name='twitter:image', content='{{request.scheme}}://{{request.META.HTTP_HOS
|
|||||||
| {% block content %}
|
| {% block content %}
|
||||||
| {% is_attending_edition user object.edition as is_attending %}
|
| {% is_attending_edition user object.edition as is_attending %}
|
||||||
.container.event-detail.mt-3
|
.container.event-detail.mt-3
|
||||||
| {% include "conference_main/components/event_style.pug" %}
|
| {% include "conference_main/components/location_style.pug" %}
|
||||||
|
|
||||||
.row
|
.row
|
||||||
.col
|
.col
|
||||||
|
@ -30,7 +30,7 @@ meta(name='twitter:image', content='{{request.scheme}}://{{request.META.HTTP_HOS
|
|||||||
| {% block header %}{% endblock %}
|
| {% block header %}{% endblock %}
|
||||||
|
|
||||||
| {% block content %}
|
| {% block content %}
|
||||||
| {% include "conference_main/components/event_style.pug" %}
|
| {% include "conference_main/components/location_style.pug" %}
|
||||||
|
|
||||||
| {% is_attending_edition user object.edition as is_attending %}
|
| {% is_attending_edition user object.edition as is_attending %}
|
||||||
| {% if permissions.can_change %}
|
| {% if permissions.can_change %}
|
||||||
|
@ -10,14 +10,8 @@
|
|||||||
|
|
||||||
| {% block content %}
|
| {% block content %}
|
||||||
| {% is_attending_edition user edition as is_attending %}
|
| {% is_attending_edition user edition as is_attending %}
|
||||||
| {% include "conference_main/components/schedule_unscheduled_events.pug" %}
|
| {% include "conference_main/components/schedule_header_notice.pug" %}
|
||||||
|
| {% include "conference_main/components/location_style.pug" %}
|
||||||
| {% if edition.schedule_status == 'proposed' %}
|
|
||||||
.alert.alert-fluid.alert-warning
|
|
||||||
| This is a proposed version of the schedule. The final version will be available 2 weeks before the event.
|
|
||||||
| {% endif %}
|
|
||||||
|
|
||||||
| {% include "conference_main/components/event_style.pug" %}
|
|
||||||
|
|
||||||
.schedule-container.horizontal
|
.schedule-container.horizontal
|
||||||
.schedule-filters-container
|
.schedule-filters-container
|
||||||
|
@ -10,14 +10,8 @@
|
|||||||
|
|
||||||
| {% block content %}
|
| {% block content %}
|
||||||
| {% is_attending_edition user edition as is_attending %}
|
| {% is_attending_edition user edition as is_attending %}
|
||||||
| {% include "conference_main/components/schedule_unscheduled_events.pug" %}
|
| {% include "conference_main/components/schedule_header_notice.pug" %}
|
||||||
|
| {% include "conference_main/components/location_style.pug" %}
|
||||||
| {% if edition.schedule_status == 'proposed' %}
|
|
||||||
.alert.alert-fluid.alert-warning
|
|
||||||
| This is a proposed version of the schedule. The final version will be available 2 weeks before the event.
|
|
||||||
| {% endif %}
|
|
||||||
|
|
||||||
| {% include "conference_main/components/event_style.pug" %}
|
|
||||||
|
|
||||||
.schedule-filters-container
|
.schedule-filters-container
|
||||||
.row
|
.row
|
||||||
|
@ -17,9 +17,9 @@
|
|||||||
| {{ edition.title }} brings everyone together.
|
| {{ edition.title }} brings everyone together.
|
||||||
|
|
||||||
{% if edition.header %}
|
{% if edition.header %}
|
||||||
.hero-background(style="background-image: url({{ edition.header.url }});")
|
.hero-bg(style="background-image: url({{ edition.header.url }});")
|
||||||
{% else %}
|
{% else %}
|
||||||
.hero-background(style="background-image: url({% static 'images/bcon19_cityscape_notext.jpg' %})")
|
.hero-bg(style="background-image: url({% static 'images/bcon19_cityscape_notext.jpg' %})")
|
||||||
{% endif %}
|
{% endif %}
|
||||||
.hero-overlay
|
.hero-overlay
|
||||||
| {% endblock jumbotron %}
|
| {% endblock jumbotron %}
|
||||||
|
@ -1,32 +1,21 @@
|
|||||||
{% if attendee %}
|
<h3>Conference Badge</h3>
|
||||||
<div class="box border p-3 my-4">
|
<p>
|
||||||
<div>
|
This is a preview of what will be printed on your badge; the final design may differ.
|
||||||
<h4 class="d-flex align-items-end">
|
<br>
|
||||||
Your Badge
|
You can edit your details in your <a class="text-decoration-underline" href="{% url "profile_update" %}">profile settings</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
<a href="{% url "profile_update" %}" class="btn btn-primary btn-md ms-auto">
|
<div class="row">
|
||||||
<i class="i-edit"></i> Edit
|
<div class="col-md-8">
|
||||||
</a>
|
<div class="box p-3 bg-secondary text-center">
|
||||||
</h4>
|
|
||||||
</div>
|
|
||||||
<div class="text-muted mt-3">
|
|
||||||
<small>
|
|
||||||
This is a preview of what will be printed on your Conference badge.
|
|
||||||
The final design of the badge may differ.
|
|
||||||
</small>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
<div class="text-center">
|
|
||||||
{% with profile=attendee.profile %}
|
{% with profile=attendee.profile %}
|
||||||
{% if profile.full_name %}
|
{% if profile.full_name %}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col h3">{{ profile.full_name }}</div>
|
<div class="col h3">{{ profile.full_name }}</div>
|
||||||
</div>
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a href="{% url "profile_update" %}" class="alert alert-info mt-3">
|
<a href="{% url "profile_update" %}" class="alert alert-warning mt-3">
|
||||||
<i class="i-edit"></i> Please fill in your full name in your profile.
|
<i class="i-alert-triangle"></i> Please click here to fill in your full name.
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if profile.title %}
|
{% if profile.title %}
|
||||||
@ -49,4 +38,4 @@
|
|||||||
{% endwith %}
|
{% endwith %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
</div>
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
<h6>Get in touch</h6>
|
<h3>Get in Touch</h3>
|
||||||
<p class="text-muted">
|
<p class="text-muted">
|
||||||
If you require assistance or have question regarding your tickets,
|
If you require assistance or have questions regarding your tickets, get in touch with us via email at
|
||||||
get in touch with us via email
|
|
||||||
<a href="mailto:{{ DEFAULT_REPLY_TO_EMAIL }}{% if order.number %}?subject=Conference tickets, order #{{ order.number }}{% endif %}">{{ DEFAULT_REPLY_TO_EMAIL }}</a>
|
<a href="mailto:{{ DEFAULT_REPLY_TO_EMAIL }}{% if order.number %}?subject=Conference tickets, order #{{ order.number }}{% endif %}">{{ DEFAULT_REPLY_TO_EMAIL }}</a>
|
||||||
</p>
|
</p>
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
<div>
|
<div class="d-flex justify-content-between">
|
||||||
{% if ticket.order_number %}Order number: <strong>{{ ticket.order_number }}</strong>{% endif %}
|
{% if ticket.order_number %}
|
||||||
|
<div>
|
||||||
|
{% if compact %}#{% else %}Order Number: {% endif %}<strong>{{ ticket.order_number }}</strong>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% with refund_status=ticket.refund_status %}
|
{% with refund_status=ticket.refund_status %}
|
||||||
<div class="float-right ms-3">
|
<div class="float-right ms-3">
|
||||||
|
@ -1,44 +1,41 @@
|
|||||||
{% extends "conference_main/base_simple.pug" %}
|
{% extends "conference_main/base_with_sidebar.pug" %}
|
||||||
{% load pipeline %}
|
{% load pipeline %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content_main %}
|
||||||
<div class="container mt-3">
|
{% with line=order.lines.0 %}
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-6 mx-auto">
|
|
||||||
<div class="box">
|
|
||||||
{% with line=order.lines.0 %}
|
|
||||||
{% with variant=line.variant %}
|
{% with variant=line.variant %}
|
||||||
{# Show information about pending payment if this ticket was bought by current user #}
|
{# Show information about pending payment if this ticket was bought by current user #}
|
||||||
{% include "tickets/ticket_detail_payment_pending.html" %}
|
{% include "tickets/ticket_detail_payment_pending.html" %}
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<h3>Your ticket{% if ticket.user_id == request.user.pk %}{{ ticket.quantity|pluralize }}{% endif %}</h3>
|
<h3>Your Ticket{% if ticket.user_id == request.user.pk %}{{ ticket.quantity|pluralize }}{% endif %}</h3>
|
||||||
{% include "tickets/components/pill_payment_status.html" %}
|
{% include "tickets/components/pill_payment_status.html" %}
|
||||||
{% include "tickets/ticket_detail_invoice.html" %}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
{% include "tickets/components/line.html" %}
|
{% include "tickets/components/line.html" %}
|
||||||
|
{% include "tickets/ticket_detail_invoice.html" %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<hr>
|
||||||
{# Show information about ticket claims if this ticket was bought by current user #}
|
{# Show information about ticket claims if this ticket was bought by current user #}
|
||||||
{% include "tickets/ticket_detail_claims.html" %}
|
{% include "tickets/ticket_detail_claims.html" %}
|
||||||
{% endwith %}
|
{% endwith %}
|
||||||
{% endwith %}
|
{% endwith %}
|
||||||
|
|
||||||
|
{% if attendee %}
|
||||||
{% include "tickets/components/badge.html" %}
|
{% include "tickets/components/badge.html" %}
|
||||||
<div class="row">
|
{% endif %}
|
||||||
<div class="col mt-4">
|
|
||||||
|
<hr>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
{% include "tickets/components/contact.html" %}
|
{% include "tickets/components/contact.html" %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
{% endblock content_main %}
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block javascript-page %}
|
{% block javascript-page %}
|
||||||
{% javascript "ticket-detail" %}
|
{% javascript "ticket-detail" %}
|
||||||
|
@ -3,13 +3,12 @@
|
|||||||
{% if ticket.user_id == request.user.pk %}
|
{% if ticket.user_id == request.user.pk %}
|
||||||
{% with unclaimed=ticket.unclaimed %}
|
{% with unclaimed=ticket.unclaimed %}
|
||||||
{% if unclaimed %}
|
{% if unclaimed %}
|
||||||
|
<h3>Unclaimed Tickets</h3>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<div class="alert alert-info mt-3">
|
<div class="alert alert-info mb-3">
|
||||||
<p class="float-right">
|
Unclaimed tickets remaining: <strong>{{ unclaimed }}</strong>
|
||||||
{% include "tickets/components/bi_exclamation_octagon.html" %}
|
</div>
|
||||||
</p>
|
|
||||||
<p class="pt-3">Unclaimed tickets remaining: <strong>{{ unclaimed }}</strong></p>
|
|
||||||
<p>
|
<p>
|
||||||
{% if unclaimed > 1 %}
|
{% if unclaimed > 1 %}
|
||||||
Make sure all tickets are claimed by sharing the link below with all attendees.
|
Make sure all tickets are claimed by sharing the link below with all attendees.
|
||||||
@ -19,18 +18,16 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="row">
|
||||||
<div class="row mt-3">
|
|
||||||
<div class="col">
|
<div class="col">
|
||||||
Ticket{{ unclaimed|pluralize }} can be claimed using the following link:
|
|
||||||
<label class="sr-only" for="claim-url">
|
<label class="sr-only" for="claim-url">
|
||||||
Ticket{{ unclaimed|pluralize }} can be claimed using the following link:
|
Ticket{{ unclaimed|pluralize }} can be claimed using the following link:
|
||||||
</label>
|
</label>
|
||||||
<div class="input-group mb-2 me-sm-2">
|
<div class="input-group mb-2 me-sm-2">
|
||||||
<input type="text" class="form-control" id="claim-url" readonly value="{% absolute_url ticket.claim_url %}">
|
<input type="text" class="form-control" id="claim-url" readonly value="{% absolute_url ticket.claim_url %}">
|
||||||
<div class="input-group-append">
|
<div class="input-group-append">
|
||||||
<button class="input-group-text btn btn-secondary" title="Copy to clipboard" id="btn-copy-claim-url">
|
<button class="input-group-text btn btn-primary" title="Copy to clipboard" id="btn-copy-claim-url">
|
||||||
<i class="i-copy"></i> Copy
|
<i class="i-copy"></i> Copy to Clipboard
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -3,11 +3,10 @@
|
|||||||
{% with invoice_url=ticket.invoice_url %}
|
{% with invoice_url=ticket.invoice_url %}
|
||||||
{% if invoice_url %}
|
{% if invoice_url %}
|
||||||
{% if ticket.is_paid or ticket.should_send_mail_bank_transfer_required %}
|
{% if ticket.is_paid or ticket.should_send_mail_bank_transfer_required %}
|
||||||
<div class="row">
|
<a href="{{ invoice_url }}" class="btn btn-sm">
|
||||||
<div class="col">
|
<i class="i-download"></i>
|
||||||
<a href="{{ invoice_url }}">Download invoice</a>
|
<span>Invoice</span>
|
||||||
</div>
|
</a>
|
||||||
</div>
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endwith %}
|
{% endwith %}
|
||||||
|
@ -6,6 +6,11 @@
|
|||||||
|
|
||||||
{% if object_list %}
|
{% if object_list %}
|
||||||
<table class="table table-no-box">
|
<table class="table table-no-box">
|
||||||
|
<thead>
|
||||||
|
<th>Ticket</th>
|
||||||
|
<th>Order Number & Status</th>
|
||||||
|
<th>Download</th>
|
||||||
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for ticket in object_list %}
|
{% for ticket in object_list %}
|
||||||
{% url 'tickets:detail' ticket_token=ticket.token as detail_url %}
|
{% url 'tickets:detail' ticket_token=ticket.token as detail_url %}
|
||||||
@ -13,13 +18,20 @@
|
|||||||
{% is_claimed_by ticket request.user as clamed %}
|
{% is_claimed_by ticket request.user as clamed %}
|
||||||
<td>
|
<td>
|
||||||
<a class="px-0" href="{{ detail_url }}">
|
<a class="px-0" href="{{ detail_url }}">
|
||||||
{{ ticket.edition }} ({{ ticket.sku }})
|
<strong>{{ ticket.edition }}</strong> {{ ticket.sku }}
|
||||||
{% if clamed %}
|
{% if clamed %}
|
||||||
(claimed by you)
|
<span class="badge badge-success badge-sm ms-2">
|
||||||
|
<i class="i-check"></i>
|
||||||
|
Claimed
|
||||||
|
</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
<td><a class="px-0" href="{{ detail_url }}">{% include "tickets/components/pill_payment_status.html" %}</a></td>
|
<td>
|
||||||
|
<a class="px-0" href="{{ detail_url }}">
|
||||||
|
{% include "tickets/components/pill_payment_status.html" with compact=True %}
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
<td>{% include "tickets/ticket_detail_invoice.html" %}</td>
|
<td>{% include "tickets/ticket_detail_invoice.html" %}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
Loading…
Reference in New Issue
Block a user