feat(drinks): add Sekt category with rainbow button styling
- Add Drink.Category.sekt for consignment alcoholic drinks - Order sekt under "mit Alkohol" section, after Radler - Rainbow gradient CSS for .drink-btn-sekt - Rebalance all drink button brightness to match rainbow midpoint - Seed Sekty Drink (3.50€, no deposit, no purchase price) - Update Sternburg Export 10.99→9.49, Altenburger Helles 15.99→13.99 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -8,7 +8,7 @@ from gaehsnitz.models import Drink, Payment
|
||||
PAYMENTS = [
|
||||
# purpose, date, amount
|
||||
("Toiletten", date(2026, 5, 6), 210.01),
|
||||
("Anzahlung Getränke+Kühlschrank+Bänke", date(2026, 5, 18), 400.00),
|
||||
("Anzahlung Getränke+Kühlschrank+Bänke", date(2026, 6, 8), 400.00),
|
||||
("Baumarkt", date(2026, 5, 23), 194.00),
|
||||
("Band: Six Good Years", date(2026, 6, 12), 150.00),
|
||||
("Band: Melo-Komplott", date(2026, 6, 12), 100.00),
|
||||
@@ -20,10 +20,10 @@ PAYMENTS = [
|
||||
|
||||
DRINKS = [
|
||||
# name, category, crates, btl/crate, size, price/crate, deposit/crate, sale/btl
|
||||
("Sternburg Export", "beer", 12, 20, 0.5, 10.99, 3.10, 2.00),
|
||||
("Sternburg Export", "beer", 12, 20, 0.5, 9.49, 3.10, 2.00),
|
||||
("Ur-Krostitzer", "beer", 5, 20, 0.5, 16.49, 3.10, 2.50),
|
||||
("Budweiser", "beer", 5, 20, 0.5, 20.99, 3.10, 2.50),
|
||||
("Altenburger Helles", "beer", 5, 20, 0.5, 15.99, 4.50, 2.50),
|
||||
("Altenburger Helles", "beer", 5, 20, 0.5, 13.99, 4.50, 2.50),
|
||||
("Feldschl. Radler", "radler", 2, 20, 0.5, 14.99, 3.10, 2.50),
|
||||
("Lübzer Grapef. 0,0", "alc_free_radler", 1, 20, 0.5, 17.99, 3.10, 2.50),
|
||||
("Freiberger 0,0", "alc_free_beer", 4, 20, 0.5, 15.49, 3.10, 2.50),
|
||||
@@ -31,6 +31,7 @@ DRINKS = [
|
||||
("Vita Cola", "soft", 2, 12, 1.0, 10.99, 3.30, 2.50),
|
||||
("Paulaner Spezi", "soft", 2, 20, 0.5, 17.99, 3.10, 2.50),
|
||||
("Wasser", "water", 10, 12, 1.0, 5.99, 3.30, 1.50),
|
||||
("Sekty Drink", "sekt", 0, 1, 0.33, 0.00, 0.00, 3.50),
|
||||
]
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 6.0.5 on 2026-06-09 13:42
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('gaehsnitz', '0009_anonymous_user'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='drink',
|
||||
name='category',
|
||||
field=models.CharField(choices=[('beer', 'Bier'), ('radler', 'Radler'), ('sekt', 'Sekt'), ('alc_free_beer', 'Bier alkoholfrei'), ('alc_free_radler', 'Radler alkoholfrei'), ('soft', 'Softdrink'), ('water', 'Wasser')], default='beer', max_length=16, verbose_name='Kategorie'),
|
||||
),
|
||||
]
|
||||
@@ -86,6 +86,7 @@ class Drink(models.Model):
|
||||
class Category(models.TextChoices):
|
||||
beer = "beer", "Bier"
|
||||
radler = "radler", "Radler"
|
||||
sekt = "sekt", "Sekt"
|
||||
alc_free_beer = "alc_free_beer", "Bier alkoholfrei"
|
||||
alc_free_radler = "alc_free_radler", "Radler alkoholfrei"
|
||||
soft = "soft", "Softdrink"
|
||||
|
||||
@@ -394,45 +394,52 @@ section {
|
||||
}
|
||||
|
||||
.drink-btn-beer {
|
||||
background: linear-gradient(180deg, #f0c878 0%, #b8731a 100%);
|
||||
background: linear-gradient(180deg, #f5d088 0%, #c8831a 100%);
|
||||
}
|
||||
.drink-btn-beer:hover, .drink-btn-beer:focus {
|
||||
background: linear-gradient(180deg, #f7d699 0%, #cc8520 100%);
|
||||
background: linear-gradient(180deg, #fadfaa 0%, #dc9228 100%);
|
||||
}
|
||||
|
||||
.drink-btn-radler {
|
||||
background: linear-gradient(180deg, #f7e36b 0%, #d8a02a 100%);
|
||||
background: linear-gradient(180deg, #faea7a 0%, #e8b038 100%);
|
||||
}
|
||||
.drink-btn-radler:hover, .drink-btn-radler:focus {
|
||||
background: linear-gradient(180deg, #fff08c 0%, #e8b034 100%);
|
||||
background: linear-gradient(180deg, #fff59a 0%, #f4c048 100%);
|
||||
}
|
||||
|
||||
.drink-btn-sekt {
|
||||
background: linear-gradient(180deg, #e890cc 0%, #e8a040 25%, #e8cc55 50%, #90e865 75%, #65b8e8 100%);
|
||||
}
|
||||
.drink-btn-sekt:hover, .drink-btn-sekt:focus {
|
||||
background: linear-gradient(180deg, #f0a0d8 0%, #f0b055 25%, #f0dc70 50%, #a8f090 75%, #88ccf0 100%);
|
||||
}
|
||||
|
||||
.drink-btn-alc_free_beer {
|
||||
background: linear-gradient(180deg, #f0c878 0%, #5e8bbf 100%);
|
||||
background: linear-gradient(180deg, #f5d088 0%, #7099c8 100%);
|
||||
}
|
||||
.drink-btn-alc_free_beer:hover, .drink-btn-alc_free_beer:focus {
|
||||
background: linear-gradient(180deg, #f7d699 0%, #7aa3d1 100%);
|
||||
background: linear-gradient(180deg, #fadfaa 0%, #88aed8 100%);
|
||||
}
|
||||
|
||||
.drink-btn-alc_free_radler {
|
||||
background: linear-gradient(180deg, #f7e36b 0%, #5e8bbf 100%);
|
||||
background: linear-gradient(180deg, #faea7a 0%, #7099c8 100%);
|
||||
}
|
||||
.drink-btn-alc_free_radler:hover, .drink-btn-alc_free_radler:focus {
|
||||
background: linear-gradient(180deg, #fff08c 0%, #7aa3d1 100%);
|
||||
background: linear-gradient(180deg, #fff59a 0%, #88aed8 100%);
|
||||
}
|
||||
|
||||
.drink-btn-soft {
|
||||
background: linear-gradient(180deg, #f0a35e 0%, #a85a22 100%);
|
||||
background: linear-gradient(180deg, #f5b070 0%, #ba6a30 100%);
|
||||
}
|
||||
.drink-btn-soft:hover, .drink-btn-soft:focus {
|
||||
background: linear-gradient(180deg, #f7b878 0%, #c06a2c 100%);
|
||||
background: linear-gradient(180deg, #fac488 0%, #cc7a3a 100%);
|
||||
}
|
||||
|
||||
.drink-btn-water {
|
||||
background: linear-gradient(180deg, #d5e8f4 0%, #95c2dc 100%);
|
||||
background: linear-gradient(180deg, #daeef8 0%, #a8d0e6 100%);
|
||||
}
|
||||
.drink-btn-water:hover, .drink-btn-water:focus {
|
||||
background: linear-gradient(180deg, #e4f0f8 0%, #aad0e6 100%);
|
||||
background: linear-gradient(180deg, #eaf4fc 0%, #bcdcf0 100%);
|
||||
}
|
||||
|
||||
.drink-plus {
|
||||
|
||||
+8
-7
@@ -109,22 +109,23 @@ def _drink_grid_qs():
|
||||
Drink.objects.filter(year=current_year())
|
||||
.annotate(
|
||||
alcohol_order=Case(
|
||||
When(category__in=["beer", "radler"], then=Value(0)),
|
||||
When(category__in=["beer", "radler", "sekt"], then=Value(0)),
|
||||
default=Value(1),
|
||||
output_field=IntegerField(),
|
||||
),
|
||||
alcohol_label=Case(
|
||||
When(category__in=["beer", "radler"], then=Value("mit Alkohol")),
|
||||
When(category__in=["beer", "radler", "sekt"], then=Value("mit Alkohol")),
|
||||
default=Value("ohne Alkohol"),
|
||||
output_field=CharField(),
|
||||
),
|
||||
category_order=Case(
|
||||
When(category="beer", then=Value(0)),
|
||||
When(category="alc_free_beer", then=Value(1)),
|
||||
When(category="radler", then=Value(2)),
|
||||
When(category="alc_free_radler", then=Value(3)),
|
||||
When(category="soft", then=Value(4)),
|
||||
When(category="water", then=Value(5)),
|
||||
When(category="radler", then=Value(1)),
|
||||
When(category="sekt", then=Value(2)),
|
||||
When(category="alc_free_beer", then=Value(3)),
|
||||
When(category="alc_free_radler", then=Value(4)),
|
||||
When(category="soft", then=Value(5)),
|
||||
When(category="water", then=Value(6)),
|
||||
default=Value(99),
|
||||
output_field=IntegerField(),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user