Implementation of a Testversion

This commit is contained in:
2026-09-06 21:24:37 +02:00
parent 3ddef7b65f
commit 608759c0f9
3 changed files with 160 additions and 56 deletions
+38 -1
View File
@@ -146,6 +146,34 @@
</section>
<section class="packages-grid" aria-label="Buchungspakete">
<!-- TESTVERSION -->
<article class="package-card">
<div class="package-card__header">
<div>
<span class="package-card__tag" style="background: #e8f5e9; color: #2e7d32;">Kostenlos</span>
<h2 class="package-card__name">Testversion</h2>
</div>
<div class="package-card__price">
<span>0 €</span><small> -> 14 Tage</small>
</div>
</div>
<p class="package-card__description">Testen Sie alle Module (Inventar, Bibliothek & Terminplaner) 14 Tage lang unverbindlich in Ihrer Schule.</p>
<ul class="package-card__features">
<li>Voller Zugriff auf alle Basis-Module</li>
<li>Keine automatische Verlängerung</li>
<li>Vollständige Datenübernahme bei Kauf</li>
<li>Endet automatisch nach 14 Tagen</li>
</ul>
<div class="package-card__actions">
{% if 'username' in session %}
<button class="btn add-to-cart-btn" data-id="testversion" data-name="Testversion (14 Tage)" data-price="0" onclick="handleAddToCart(this)">
Jetzt kostenlos starten
</button>
{% else %}
<a class="btn secondary" href="{{ url_for('login') }}">Zum Testen einloggen</a>
{% endif %}
</div>
</article>
<!-- INVENTARSYSTEM -->
<article class="package-card">
<div class="package-card__header">
@@ -383,7 +411,10 @@
if(item.price > 0) total += item.price;
if(item.price === 0) hasIndividualPrice = true;
const priceText = item.price > 0 ? `${item.price} €` : "Auf Anfrage";
let priceText = `${item.price} €`;
if (item.price === 0) {
priceText = item.id === 'testversion' ? 'Kostenlos' : 'Auf Anfrage';
}
container.innerHTML += `
<div class="cart-item">
@@ -414,6 +445,12 @@
return;
}
const hasTestversion = cart.find(i => i.id === 'testversion');
if (hasTestversion || (id === 'testversion' && cart.length > 0)) {
alert('Die Testversion beinhaltet bereits alle Module und kann nicht mit anderen Paketen kombiniert werden. Bitte leeren Sie Ihren Warenkorb zuerst.');
return;
}
// Konflikte mit Startpaket abfangen
const hasStartpaket = cart.find(i => i.id === 'startpaket');
if (hasStartpaket && (id === 'inventarsystem' || id === 'buecherei')) {