forked from CGM_Public/pretix_original
Added custom logo support
This commit is contained in:
@@ -217,6 +217,10 @@ Your {event} team"""))
|
||||
'default': None,
|
||||
'type': str
|
||||
},
|
||||
'logo_image': {
|
||||
'default': None,
|
||||
'type': File
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ from pytz import common_timezones
|
||||
from pretix.base.forms import I18nModelForm, SettingsForm
|
||||
from pretix.base.i18n import I18nFormField, I18nTextarea
|
||||
from pretix.base.models import Event
|
||||
from pretix.control.forms import ExtFileField
|
||||
|
||||
|
||||
class EventCreateForm(I18nModelForm):
|
||||
@@ -359,6 +360,13 @@ class DisplaySettingsForm(SettingsForm):
|
||||
message=_('Please enter the hexadecimal code of a color, e.g. #990000.'))
|
||||
]
|
||||
)
|
||||
logo_image = ExtFileField(
|
||||
label=_('Logo image'),
|
||||
ext_whitelist=(".png", ".jpg", ".svg", ".gif", ".jpeg"),
|
||||
required=False,
|
||||
help_text=_('If you provide a logo image, we will by default not show your events name and date '
|
||||
'in the page header. We will show your logo with a maximal height of 120 pixels.')
|
||||
)
|
||||
|
||||
|
||||
class TicketSettingsForm(SettingsForm):
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
<fieldset>
|
||||
<legend>{% trans "Display settings" %}</legend>
|
||||
{% bootstrap_field form.primary_color layout="horizontal" %}
|
||||
{% bootstrap_field form.logo_image layout="horizontal" %}
|
||||
</fieldset>
|
||||
<div class="form-group submit-group">
|
||||
<button type="submit" class="btn btn-primary btn-save">
|
||||
|
||||
@@ -242,7 +242,10 @@ class EventSettingsFormView(EventPermissionRequiredMixin, FormView):
|
||||
if form.has_changed():
|
||||
self.request.event.log_action(
|
||||
'pretix.event.settings', user=self.request.user, data={
|
||||
k: form.cleaned_data.get(k) for k in form.changed_data
|
||||
k: (form.cleaned_data.get(k).name
|
||||
if isinstance(form.cleaned_data.get(k), File)
|
||||
else form.cleaned_data.get(k))
|
||||
for k in form.changed_data
|
||||
}
|
||||
)
|
||||
messages.success(self.request, _('Your changes have been saved.'))
|
||||
@@ -284,7 +287,10 @@ class DisplaySettings(EventSettingsFormView):
|
||||
if form.has_changed():
|
||||
self.request.event.log_action(
|
||||
'pretix.event.settings', user=self.request.user, data={
|
||||
k: form.cleaned_data.get(k) for k in form.changed_data
|
||||
k: (form.cleaned_data.get(k).name
|
||||
if isinstance(form.cleaned_data.get(k), File)
|
||||
else form.cleaned_data.get(k))
|
||||
for k in form.changed_data
|
||||
}
|
||||
)
|
||||
regenerate_css(self.request.event.pk)
|
||||
|
||||
@@ -29,6 +29,7 @@ def contextprocessor(request):
|
||||
|
||||
if request.event.settings.presale_css_file:
|
||||
ctx['css_file'] = default_storage.url(request.event.settings.presale_css_file)
|
||||
ctx['event_logo'] = request.event.settings.get('logo_image', as_type=str, default='')[7:]
|
||||
|
||||
ctx['html_head'] = "".join(_html_head)
|
||||
ctx['footer'] = _footer
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{% extends "pretixpresale/base.html" %}
|
||||
{% load i18n %}
|
||||
{% load staticfiles %}
|
||||
{% load thumbnail %}
|
||||
{% load eventurl %}
|
||||
{% block thetitle %}
|
||||
{% block title %}{% endblock %}{% if url_name != "event.index" %} :: {% endif %}{{ event.name }}
|
||||
@@ -21,9 +22,15 @@
|
||||
{% block page %}
|
||||
<div class="page-header">
|
||||
<h1 class="pull-left">
|
||||
<a href="{% eventurl event "presale:event.index" %}">{{ event.name }}</a>
|
||||
<small>{{ event.date_from|date:"DATE_FORMAT" }}{% if event.settings.show_date_to %} –
|
||||
{{ event.date_to|date:"DATE_FORMAT" }}{% endif %}</small>
|
||||
{% if event_logo %}
|
||||
<a href="{% eventurl event "presale:event.index" %}" title="{{ event.name }}">
|
||||
<img src="{{ event_logo|thumbnail_url:'logo' }}" alt="{{ event.name }}" class="event-logo" />
|
||||
</a>
|
||||
{% else %}
|
||||
<a href="{% eventurl event "presale:event.index" %}">{{ event.name }}</a>
|
||||
<small>{{ event.date_from|date:"DATE_FORMAT" }}{% if event.settings.show_date_to %} –
|
||||
{{ event.date_to|date:"DATE_FORMAT" }}{% endif %}</small>
|
||||
{% endif %}
|
||||
</h1>
|
||||
<div class="pull-right loginbox">
|
||||
{% if request.event.settings.locales|length > 1 %}
|
||||
|
||||
@@ -325,6 +325,7 @@ MESSAGE_STORAGE = 'django.contrib.messages.storage.session.SessionStorage'
|
||||
THUMBNAIL_ALIASES = {
|
||||
'': {
|
||||
'productlist': {'size': (60, 60), 'crop': True},
|
||||
'logo': {'size': (5000, 120), 'crop': False},
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,10 @@ footer {
|
||||
.loginbox {
|
||||
padding-top: 15px;
|
||||
}
|
||||
.event-logo {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
}
|
||||
.js-only {
|
||||
display: none;
|
||||
|
||||
Reference in New Issue
Block a user