add command fill_data_2024
This commit is contained in:
322
gaehsnitz/management/commands/fill_data_2024.py
Normal file
322
gaehsnitz/management/commands/fill_data_2024.py
Normal file
@@ -0,0 +1,322 @@
|
|||||||
|
from datetime import date
|
||||||
|
from typing import Dict, List, Tuple
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
|
from django.contrib.auth import get_user_model
|
||||||
|
from django.core.management import BaseCommand, CommandError
|
||||||
|
from django.db import transaction
|
||||||
|
|
||||||
|
from gaehsnitz.models import Drink, Consumption, Donation, Payment
|
||||||
|
|
||||||
|
User = get_user_model()
|
||||||
|
|
||||||
|
|
||||||
|
def user(name: str):
|
||||||
|
obj, _ = User.objects.get_or_create(username=name)
|
||||||
|
return obj
|
||||||
|
|
||||||
|
|
||||||
|
def donation(day, month, amount, note):
|
||||||
|
return Donation.objects.create(
|
||||||
|
date=date(2024, month, day),
|
||||||
|
amount=amount,
|
||||||
|
note=note,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def payment(purpose, day, month, amount):
|
||||||
|
return Payment.objects.create(
|
||||||
|
date=date(2024, month, day),
|
||||||
|
amount=amount,
|
||||||
|
purpose=purpose,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def consumption(day: int, for_free: bool, drink_dict: Dict[User, List[Tuple[int, Drink]]]):
|
||||||
|
for user, drink_list in drink_dict.items():
|
||||||
|
for amount, drink in drink_list:
|
||||||
|
Consumption.objects.create(
|
||||||
|
user=user, drink=drink, amount=amount, day=day, for_free=for_free)
|
||||||
|
|
||||||
|
|
||||||
|
class Command(BaseCommand):
|
||||||
|
@transaction.atomic()
|
||||||
|
def handle(self, *args, **options):
|
||||||
|
if any(model.objects.exists() for model in [Donation, Payment, Drink, Consumption]):
|
||||||
|
raise CommandError(
|
||||||
|
"clear all donation, payment, drink and consumption objects before running this command")
|
||||||
|
|
||||||
|
# --------------- PEOPLE ---------------
|
||||||
|
|
||||||
|
anonym = user("anonym")
|
||||||
|
alexius = user("alexius")
|
||||||
|
andrea = user("andrea")
|
||||||
|
annemarie = user("annemarie")
|
||||||
|
arthur = user("arthur")
|
||||||
|
benni = user("benni")
|
||||||
|
casi = user("casi")
|
||||||
|
dennis = user("dennis")
|
||||||
|
diana = user("diana")
|
||||||
|
enni = user("enni")
|
||||||
|
flo = user("flo")
|
||||||
|
herald = user("herald")
|
||||||
|
jona = user("jona")
|
||||||
|
josi = user("josi")
|
||||||
|
katha = user("katha")
|
||||||
|
katz = user("katz")
|
||||||
|
lena = user("lena")
|
||||||
|
lilly = user("lilly")
|
||||||
|
lukas = user("lukas")
|
||||||
|
marius = user("marius")
|
||||||
|
marten = user("marten")
|
||||||
|
marvin = user("marvin")
|
||||||
|
matze = user("matze")
|
||||||
|
ohli = user("ohli")
|
||||||
|
pauline = user("pauline")
|
||||||
|
robert = user("robert")
|
||||||
|
rockbert = user("rockbert")
|
||||||
|
sandra = user("sandra")
|
||||||
|
sepp = user("sepp")
|
||||||
|
simon = user("simon")
|
||||||
|
steven = user("steven")
|
||||||
|
thure = user("thure")
|
||||||
|
tobi = user("tobi")
|
||||||
|
|
||||||
|
# --------------- DONATIONS ---------------
|
||||||
|
|
||||||
|
donation(10, 6, 871, "Kasse")
|
||||||
|
|
||||||
|
donation(6, 6, 50, "PayPal")
|
||||||
|
donation(7, 6, 50, "persönlich")
|
||||||
|
donation(9, 6, 62, "PayPal")
|
||||||
|
donation(10, 6, 66.66, "PayPal")
|
||||||
|
donation(10, 6, 60, "Überweisung")
|
||||||
|
donation(11, 6, 45, "PayPal")
|
||||||
|
donation(11, 6, 15, "PayPal")
|
||||||
|
donation(11, 6, 15, "PayPal")
|
||||||
|
donation(11, 6, 75, "PayPal")
|
||||||
|
|
||||||
|
# --------------- PAYMENTS ---------------
|
||||||
|
|
||||||
|
payment("Dixis", 3, 4, 331)
|
||||||
|
payment("Holz und Lack", 7, 5, 125)
|
||||||
|
payment("Getränke Anzahlung", 29, 5, 300)
|
||||||
|
payment("PA", 6, 6, 300)
|
||||||
|
payment("Drehstrom-Verteiler", 6, 6, 67)
|
||||||
|
payment("Essen, Getränke, Kleinzeug", 7, 6, 104)
|
||||||
|
payment("Dankeschön-Bier für Lichttechnik", 10, 6, 20)
|
||||||
|
|
||||||
|
# --------------- DRINKS ---------------
|
||||||
|
|
||||||
|
sterni = Drink.objects.create(
|
||||||
|
name="Sterni",
|
||||||
|
crates_ordered=16,
|
||||||
|
crates_purchased=8,
|
||||||
|
crates_returned=6,
|
||||||
|
purchase_price_per_crate=8.99,
|
||||||
|
deposit_per_crate=3.10,
|
||||||
|
bottles_per_crate=20,
|
||||||
|
bottle_size=0.5,
|
||||||
|
sale_price_per_bottle=1.50,
|
||||||
|
)
|
||||||
|
krosti = Drink.objects.create(
|
||||||
|
name="Krosti",
|
||||||
|
crates_ordered=10,
|
||||||
|
crates_purchased=5,
|
||||||
|
crates_returned=4,
|
||||||
|
purchase_price_per_crate=15.49,
|
||||||
|
deposit_per_crate=3.10,
|
||||||
|
bottles_per_crate=20,
|
||||||
|
bottle_size=0.5,
|
||||||
|
sale_price_per_bottle=2.00,
|
||||||
|
)
|
||||||
|
radler = Drink.objects.create(
|
||||||
|
name="Radler",
|
||||||
|
crates_ordered=5,
|
||||||
|
crates_purchased=2,
|
||||||
|
crates_returned=2,
|
||||||
|
purchase_price_per_crate=13.99,
|
||||||
|
deposit_per_crate=3.10,
|
||||||
|
bottles_per_crate=20,
|
||||||
|
bottle_size=0.5,
|
||||||
|
sale_price_per_bottle=2.00,
|
||||||
|
)
|
||||||
|
buddi = Drink.objects.create(
|
||||||
|
name="Buddi alkfrei",
|
||||||
|
crates_ordered=2,
|
||||||
|
crates_purchased=1,
|
||||||
|
crates_returned=1,
|
||||||
|
purchase_price_per_crate=19.99,
|
||||||
|
deposit_per_crate=3.10,
|
||||||
|
bottles_per_crate=20,
|
||||||
|
bottle_size=0.5,
|
||||||
|
sale_price_per_bottle=2.00,
|
||||||
|
)
|
||||||
|
freiberger = Drink.objects.create(
|
||||||
|
name="Freiberger alkfrei",
|
||||||
|
crates_ordered=3,
|
||||||
|
crates_purchased=1,
|
||||||
|
crates_returned=1,
|
||||||
|
purchase_price_per_crate=12.99,
|
||||||
|
deposit_per_crate=3.10,
|
||||||
|
bottles_per_crate=20,
|
||||||
|
bottle_size=0.5,
|
||||||
|
sale_price_per_bottle=2.00,
|
||||||
|
)
|
||||||
|
helles = Drink.objects.create(
|
||||||
|
name="Altenburger Hell",
|
||||||
|
crates_ordered=4,
|
||||||
|
crates_purchased=1,
|
||||||
|
crates_returned=1,
|
||||||
|
purchase_price_per_crate=12.99,
|
||||||
|
deposit_per_crate=3.10,
|
||||||
|
bottles_per_crate=20,
|
||||||
|
bottle_size=0.5,
|
||||||
|
sale_price_per_bottle=2.00,
|
||||||
|
)
|
||||||
|
wasser = Drink.objects.create(
|
||||||
|
name="Wasser",
|
||||||
|
crates_ordered=10,
|
||||||
|
crates_purchased=5,
|
||||||
|
crates_returned=4,
|
||||||
|
purchase_price_per_crate=4.99,
|
||||||
|
deposit_per_crate=3.30,
|
||||||
|
bottles_per_crate=12,
|
||||||
|
bottle_size=1.0,
|
||||||
|
sale_price_per_bottle=1.00,
|
||||||
|
)
|
||||||
|
mate = Drink.objects.create(
|
||||||
|
name="Mate",
|
||||||
|
crates_ordered=3,
|
||||||
|
crates_purchased=1,
|
||||||
|
crates_returned=1,
|
||||||
|
purchase_price_per_crate=16.79,
|
||||||
|
deposit_per_crate=4.50,
|
||||||
|
bottles_per_crate=20,
|
||||||
|
bottle_size=0.5,
|
||||||
|
sale_price_per_bottle=2.00,
|
||||||
|
)
|
||||||
|
cola = Drink.objects.create(
|
||||||
|
name="Vita Cola",
|
||||||
|
crates_ordered=2,
|
||||||
|
crates_purchased=1,
|
||||||
|
crates_returned=1,
|
||||||
|
purchase_price_per_crate=10.99,
|
||||||
|
deposit_per_crate=3.30,
|
||||||
|
bottles_per_crate=12,
|
||||||
|
bottle_size=1.0,
|
||||||
|
sale_price_per_bottle=2.00,
|
||||||
|
)
|
||||||
|
spezi = Drink.objects.create(
|
||||||
|
name="Spezi",
|
||||||
|
crates_ordered=2,
|
||||||
|
crates_purchased=1,
|
||||||
|
crates_returned=1,
|
||||||
|
purchase_price_per_crate=16.99,
|
||||||
|
deposit_per_crate=3.10,
|
||||||
|
bottles_per_crate=20,
|
||||||
|
bottle_size=0.5,
|
||||||
|
sale_price_per_bottle=2.00,
|
||||||
|
)
|
||||||
|
sekt = Drink.objects.create(
|
||||||
|
name="Sekt / Mische",
|
||||||
|
crates_ordered=5,
|
||||||
|
crates_purchased=5,
|
||||||
|
crates_returned=0,
|
||||||
|
purchase_price_per_crate=4.99,
|
||||||
|
deposit_per_crate=0,
|
||||||
|
bottles_per_crate=3,
|
||||||
|
bottle_size=0.25,
|
||||||
|
sale_price_per_bottle=2.00,
|
||||||
|
)
|
||||||
|
|
||||||
|
# --------------- THURSDAY ---------------
|
||||||
|
|
||||||
|
consumption(day=1, for_free=False, drink_dict={
|
||||||
|
enni: [(2, wasser), (9, sterni)],
|
||||||
|
robert: [(2, wasser), (2, freiberger), (1, spezi), (2, mate)],
|
||||||
|
josi: [(5, sterni), (1, radler)],
|
||||||
|
tobi: [(5, sterni), (1, freiberger), (2, mate)],
|
||||||
|
annemarie: [(1, wasser), (4, sterni), (1, radler)],
|
||||||
|
sandra: [(1, wasser), (3, sterni), (1, spezi), (1, mate)],
|
||||||
|
flo: [(2, wasser), (5, sterni), (1, mate), (1, helles)],
|
||||||
|
})
|
||||||
|
|
||||||
|
# --------------- FRIDAY ---------------
|
||||||
|
|
||||||
|
consumption(day=2, for_free=False, drink_dict={
|
||||||
|
tobi: [(2, wasser), (9, sterni), (2, freiberger)],
|
||||||
|
annemarie: [(1, wasser), (5, sterni), (2, mate), (2, radler), (2, buddi), (3, sekt)],
|
||||||
|
sandra: [(1, freiberger), (1, buddi), (1, spezi), (2, mate), (1, radler), (2, sekt)],
|
||||||
|
robert: [(2, wasser), (1, freiberger), (1, buddi), (1, spezi)],
|
||||||
|
josi: [(2, wasser), (6, sterni), (1, freiberger), (2, radler)],
|
||||||
|
enni: [(2, wasser), (10, sterni), (1, spezi)],
|
||||||
|
steven: [(1, sterni), (1, krosti), (1, radler), (5, helles)],
|
||||||
|
marten: [(9, krosti)],
|
||||||
|
thure: [(4, sterni)],
|
||||||
|
jona: [(2, freiberger), (10, krosti)],
|
||||||
|
benni: [(5, krosti), (1, helles)],
|
||||||
|
katha: [(1, krosti), (1, mate)],
|
||||||
|
diana: [(5, sterni), (1, radler)],
|
||||||
|
katz: [(3, krosti), (1, buddi)],
|
||||||
|
alexius: [(8, sterni)],
|
||||||
|
pauline: [(5, sterni), (1, radler)],
|
||||||
|
herald: [(1, wasser), (2, sterni), (1, freiberger)],
|
||||||
|
arthur: [(6, sterni), (1, radler)],
|
||||||
|
matze: [(1, sterni), (1, freiberger)],
|
||||||
|
dennis: [(1, sterni), (2, krosti)],
|
||||||
|
marvin: [(3, sterni), (1, krosti), (1, mate)],
|
||||||
|
simon: [(1, sterni)],
|
||||||
|
})
|
||||||
|
|
||||||
|
consumption(day=2, for_free=True, drink_dict={
|
||||||
|
flo: [(2, wasser), (3, sterni), (1, freiberger), (3, helles)],
|
||||||
|
casi: [(6, sterni)],
|
||||||
|
sepp: [(6, sterni)],
|
||||||
|
ohli: [(4, sterni)],
|
||||||
|
marius: [(1, radler)],
|
||||||
|
anonym: [(10, sterni), (10, krosti), (2, radler), (4, helles), (1, sekt)]
|
||||||
|
})
|
||||||
|
|
||||||
|
# --------------- SATURDAY ---------------
|
||||||
|
|
||||||
|
consumption(day=3, for_free=False, drink_dict={
|
||||||
|
herald: [(1, sterni), (2, freiberger), (2, radler), (1, buddi), (5, spezi), (2, wasser)],
|
||||||
|
thure: [(6, sterni), (1, krosti), (1, radler), (2, spezi)],
|
||||||
|
sandra: [(6, sterni), (1, freiberger), (2, radler), (1, mate), (1, cola), (1, sekt)],
|
||||||
|
marvin: [(1, sterni), (1, mate)],
|
||||||
|
simon: [(10, sterni), (1, radler), (1, mate)],
|
||||||
|
jona: [(6, sterni), (4, krosti)],
|
||||||
|
robert: [(1, sterni), (1, freiberger), (1, buddi), (2, mate), (2, spezi), (3, wasser)],
|
||||||
|
steven: [(5, helles), (1, sterni), (2, radler), (1, mate)],
|
||||||
|
flo: [(4, helles), (1, freiberger), (1, buddi), (2, mate)],
|
||||||
|
matze: [(4, sterni), (2, radler), (3, buddi), (7, spezi)],
|
||||||
|
alexius: [(2, helles), (3, sterni), (1, radler), (1, cola)],
|
||||||
|
josi: [(5, sterni), (1, radler), (2, mate), (2, wasser), (1, sekt)],
|
||||||
|
benni: [(1, helles), (2, krosti), (2, radler), (1, wasser)],
|
||||||
|
ohli: [(1, helles), (3, sterni), (2, krosti), (1, radler), (1, buddi), (1, mate)],
|
||||||
|
arthur: [(3, sterni), (1, krosti), (1, radler), (1, mate), (3, spezi), (2, sekt)],
|
||||||
|
pauline: [(2, sterni), (2, radler), (1, mate), (1, cola)],
|
||||||
|
enni: [(9, sterni), (1, spezi), (2, wasser), (1, sekt)],
|
||||||
|
annemarie: [(5, sterni), (4, radler), (2, buddi), (1, mate), (1, wasser), (2, sekt)],
|
||||||
|
tobi: [(3, sterni), (1, radler), (1, mate), (1, wasser)],
|
||||||
|
marten: [(4, helles), (1, krosti)],
|
||||||
|
lukas: [(4, sterni), (1, spezi)],
|
||||||
|
lilly: [(5, sterni), (1, mate)],
|
||||||
|
andrea: [(1, buddi)],
|
||||||
|
lena: [(1, sterni)],
|
||||||
|
anonym: [(2, helles), (3, sterni), (5, krosti), (2, radler), (1, cola), (2, sekt)]
|
||||||
|
})
|
||||||
|
|
||||||
|
consumption(day=3, for_free=True, drink_dict={
|
||||||
|
rockbert: [(8, krosti), (1, radler), (1, mate)],
|
||||||
|
anonym: [(8, sterni), (2, krosti), (2, mate), (1, cola)]
|
||||||
|
})
|
||||||
|
|
||||||
|
# --------------- ADMIN STUFF ---------------
|
||||||
|
|
||||||
|
if not settings.PRODUCTION:
|
||||||
|
flo.set_password("123")
|
||||||
|
flo.is_staff = True
|
||||||
|
flo.is_superuser = True
|
||||||
|
flo.save()
|
||||||
Reference in New Issue
Block a user