Update auf Version 1.8.4

This commit is contained in:
tino committed 2026-11-10 12:55:30 +01:00
1 parent 458f661c43
commit ce9b7db8c5
7 files changed
+87 -18

No files matched your search

+3 -2
View File
@@ -34,8 +34,9 @@ RUN rm -rf /pretix/src/pretix/static.dist/CACHE && \
USER root USER root
# 6. Vorkompilierte CSS-Dateien bereinigen & statische Theme-Assets bereitstellen # 6. Vorkompilierte CSS-Dateien bereinigen, Widget-JS prüfen & statische Theme-Assets bereitstellen
RUN find /pretix/src/pretix/static.dist -type f -name "*.css" -exec sed -i \ RUN python3 /tmp/pretix-falkenthal-theme/patch_templates.py && \
find /pretix/src/pretix/static.dist -type f -name "*.css" -exec sed -i \
-e 's/#3b1c4a/#4f46e5/gI' \ -e 's/#3b1c4a/#4f46e5/gI' \
-e 's/#5f2977/#4f46e5/gI' \ -e 's/#5f2977/#4f46e5/gI' \
-e 's/#7f4a88/#475569/gI' \ -e 's/#7f4a88/#475569/gI' \
+56 -2
View File
@@ -1,3 +1,4 @@
import glob
import os import os
import re import re
import sys import sys
@@ -5,7 +6,7 @@ import sys
THEME_REPO_URL = "https://git.falkenthal.me/falkenthal/pretix-falkenthal-theme" THEME_REPO_URL = "https://git.falkenthal.me/falkenthal/pretix-falkenthal-theme"
PLATFORM_IMPRINT_URL = "https://tickets.falkenthal.me/impressum" PLATFORM_IMPRINT_URL = "https://tickets.falkenthal.me/impressum"
PLATFORM_PRIVACY_URL = "https://tickets.falkenthal.me/datenschutz" PLATFORM_PRIVACY_URL = "https://tickets.falkenthal.me/datenschutz"
ASSET_VERSION = "1.8.3" ASSET_VERSION = "1.8.4"
control_files = [ control_files = [
'/pretix/src/pretix/control/templates/pretixcontrol/base.html', '/pretix/src/pretix/control/templates/pretixcontrol/base.html',
@@ -137,5 +138,58 @@ for err_name in ['400.html', '403.html', '403_csrf.html', '404.html', '500.html'
with open(err_path, 'w', encoding='utf-8') as f: with open(err_path, 'w', encoding='utf-8') as f:
f.write(ec) f.write(ec)
print(f"Pretix templates patched and verified successfully (v{ASSET_VERSION}).") # 4. Eingebettetes Pretix-Widget (widget.js / v1.*.js):
# Einheitliche Plattform-Pflichtangaben auch direkt unter dem Inline-Widget auf externen Veranstalter-Websites!
widget_platform_bar_js = r"""
;(function(){
if (typeof document === 'undefined' || window.__falkenthalWidgetPatched) return;
window.__falkenthalWidgetPatched = true;
var BAR_HTML = '<span>Technischer Plattformbetrieb: <strong style="font-weight:600;">FALKENTHAL</strong></span>' +
' &middot; <a href="https://tickets.falkenthal.me/impressum" target="_blank" rel="noopener" style="color:inherit;text-decoration:underline;">Plattform-Impressum</a>' +
' &middot; <a href="https://tickets.falkenthal.me/datenschutz" target="_blank" rel="noopener" style="color:inherit;text-decoration:underline;">Plattform-Datenschutz</a>' +
' &middot; <a href="https://git.falkenthal.me/falkenthal/pretix-falkenthal-theme" target="_blank" rel="noopener" style="color:inherit;text-decoration:underline;">Theme &amp; Quellcode (AGPLv3)</a>';
function injectWidgetBar() {
var footers = document.querySelectorAll('.pretix-widget-attribution');
for (var i = 0; i < footers.length; i++) {
var el = footers[i];
if (!el.getAttribute('data-falkenthal-bar')) {
el.setAttribute('data-falkenthal-bar', '1');
var bar = document.createElement('div');
bar.className = 'pretix-widget-falkenthal-bar';
bar.style.cssText = 'margin-top:6px;padding-top:6px;border-top:1px solid rgba(128,128,128,0.2);font-size:11px;line-height:1.5;text-align:center;opacity:0.85;';
bar.innerHTML = BAR_HTML;
el.appendChild(bar);
}
}
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', injectWidgetBar);
} else {
injectWidgetBar();
}
if (typeof MutationObserver !== 'undefined') {
var obs = new MutationObserver(function() { injectWidgetBar(); });
var startObs = function() {
if (document.body) obs.observe(document.body, { childList: true, subtree: true });
};
if (document.body) startObs();
else document.addEventListener('DOMContentLoaded', startObs);
}
setInterval(injectWidgetBar, 1500);
})();
"""
widget_js_candidates = (
glob.glob('/pretix/src/pretix/presale/static/pretixpresale/js/widget/*.js')
+ glob.glob('/pretix/src/pretix/static.dist/**/widget/*.js', recursive=True)
)
for wjs in widget_js_candidates:
if os.path.isfile(wjs):
with open(wjs, 'r', encoding='utf-8') as f:
wc = f.read()
if '__falkenthalWidgetPatched' not in wc:
with open(wjs, 'a', encoding='utf-8') as f:
f.write('\n' + widget_platform_bar_js)
print(f"Pretix templates and widget assets patched and verified successfully (v{ASSET_VERSION}).")
+1 -1
View File
@@ -13,7 +13,7 @@ class WhiteLabelApp(AppConfig):
"Custom Slate & Blue-Violet theme plugin for pretix control and presale UI." "Custom Slate & Blue-Violet theme plugin for pretix control and presale UI."
) )
visible = False visible = False
version = "1.8.3" version = "1.8.4"
category = "CUSTOMIZATION" category = "CUSTOMIZATION"
+1 -1
View File
@@ -1,5 +1,5 @@
""" """
Pretix signal receivers for pretix-falkenthal-theme (v1.8.3). Pretix signal receivers for pretix-falkenthal-theme (v1.8.4).
Hinweis zur Architektur: Hinweis zur Architektur:
Die Plattform-Pflichtangaben (Plattform-Impressum, Plattform-Datenschutz sowie Die Plattform-Pflichtangaben (Plattform-Impressum, Plattform-Datenschutz sowie
@@ -1,5 +1,5 @@
/* ========================================================================== /* ==========================================================================
FALKENTHAL ADMIN BACKEND & LOGIN THEME (control.css - v1.8.3) FALKENTHAL ADMIN BACKEND & LOGIN THEME (control.css - v1.8.4)
========================================================================== */ ========================================================================== */
:root { :root {
@@ -63,7 +63,7 @@ nav.navbar-inverse {
a.navbar-brand { a.navbar-brand {
font-size: 0 !important; font-size: 0 !important;
color: transparent !important; color: transparent !important;
background-image: url('/static/whitelabel/logo.svg?v=1.8.3') !important; background-image: url('/static/whitelabel/logo.svg?v=1.8.4') !important;
background-repeat: no-repeat !important; background-repeat: no-repeat !important;
background-position: 14px center !important; background-position: 14px center !important;
background-size: auto 34px !important; background-size: auto 34px !important;
@@ -868,7 +868,7 @@ body:not(:has(#wrapper)):has(img.logo) > .container [class*="col-"] {
body.falkenthal-auth-body .container img.logo, body.falkenthal-auth-body .container img.logo,
body:not(:has(#wrapper)):has(img.logo) .container img.logo, body:not(:has(#wrapper)):has(img.logo) .container img.logo,
.form-signin img.logo { .form-signin img.logo {
content: url('/static/whitelabel/login-logo.svg?v=1.8.3') !important; content: url('/static/whitelabel/login-logo.svg?v=1.8.4') !important;
height: 115px !important; height: 115px !important;
max-height: 115px !important; max-height: 115px !important;
width: auto !important; width: auto !important;
@@ -1,5 +1,5 @@
/* ========================================================================== /* ==========================================================================
FALKENTHAL MODERN SHOP UI/UX UPGRADE (presale.css - v1.8.3) FALKENTHAL MODERN SHOP UI/UX UPGRADE (presale.css - v1.8.4)
Farb-, Geometrie- & Kontrastneutral: Respektiert 100 % der Veranstalter-Farben, Farb-, Geometrie- & Kontrastneutral: Respektiert 100 % der Veranstalter-Farben,
Logos, Bootstrap-Input-Groups sowie helle UND dunkle Veranstalter-Hintergründe! Logos, Bootstrap-Input-Groups sowie helle UND dunkle Veranstalter-Hintergründe!
========================================================================== */ ========================================================================== */
@@ -22,23 +22,27 @@ body {
font-weight: 600; font-weight: 600;
} }
/* 2. BUTTONS, EINGABEFELDER & MENGENAUSWAHL (SICHERE RAHMEN & HOVER OHNE TRANSPARENZ) */ /* 2. BUTTONS, EINGABEFELDER & MENGENAUSWAHL (ADAPTIVE RAHMEN FÜR LIGHT & DARK THEMES) */
.btn { .btn {
border-radius: 6px; border-radius: 6px;
font-weight: 600; font-weight: 600;
transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease; transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
} }
/* Sekundäre Buttons & Mengenauswahl-Buttons ([-][+]) behalten beim Hover IMMER einen klaren Rahmen! */ /* Sekundäre Buttons & Mengenauswahl-Buttons ([-][+]) behalten auf hellen UND dunklen
Veranstalter-Hintergründen beim Hover immer einen klaren, sichtbaren Rahmen! */
.btn-default { .btn-default {
border: 1px solid #ccc; border: 1px solid rgba(128, 128, 128, 0.35);
border-color: color-mix(in srgb, currentColor 25%, transparent);
} }
.btn-default:hover, .btn-default:hover,
.btn-default:focus, .btn-default:focus,
.btn-default:active { .btn-default:active {
border-color: #adadad !important; border-color: rgba(128, 128, 128, 0.55) !important;
border-color: color-mix(in srgb, currentColor 42%, transparent) !important;
background-color: rgba(128, 128, 128, 0.08); background-color: rgba(128, 128, 128, 0.08);
background-color: color-mix(in srgb, currentColor 6%, transparent);
} }
/* Standalone-Eingabefelder (außerhalb von .input-group) dezent abrunden */ /* Standalone-Eingabefelder (außerhalb von .input-group) dezent abrunden */
@@ -96,7 +100,7 @@ body {
} }
/* ========================================================================== /* ==========================================================================
6. FOOTER & PLATTFORM-RECHTSTEXTE (ADAPTIV FÜR HELLE & DUNKLE VERANSTALTER-SHOPS) 6. FOOTER & PLATTFORM-RECHTSTEXTE (ADAPTIV IN SHOP & WIDGET-IFRAME)
========================================================================== */ ========================================================================== */
footer { footer {
display: flex; display: flex;
@@ -169,13 +173,23 @@ footer nav ul li a {
opacity: 0.55; opacity: 0.55;
} }
/* Kompakter Modus für eingebettete Pretix-Widgets (iFrame) & Mobilgeräte */ /* Garantierte Sichtbarkeit der Plattform-Pflichtangaben im eingebetteten Pretix-Widget (Checkout-iFrame) */
.is-iframe footer, .is-iframe footer,
body.iframe footer { body.iframe footer,
body[data-iframe] footer {
display: flex !important;
visibility: visible !important;
margin-top: 20px; margin-top: 20px;
padding-bottom: 14px; padding-bottom: 14px;
} }
.is-iframe .falkenthal-platform-bar,
body.iframe .falkenthal-platform-bar,
body[data-iframe] .falkenthal-platform-bar {
display: block !important;
visibility: visible !important;
}
@media (max-width: 767px) { @media (max-width: 767px) {
.falkenthal-platform-bar { .falkenthal-platform-bar {
font-size: 11px; font-size: 11px;
+1 -1
View File
@@ -5,7 +5,7 @@ with open("README.md", encoding="utf-8") as f:
setup( setup(
name="pretix-falkenthal-theme", name="pretix-falkenthal-theme",
version="1.8.3", version="1.8.4",
description="Modern Slate & Blue-Violet White-Label Theme Plugin for pretix", description="Modern Slate & Blue-Violet White-Label Theme Plugin for pretix",
long_description=long_description, long_description=long_description,
long_description_content_type="text/markdown", long_description_content_type="text/markdown",