bootstrap_dev_data: add products & membership types (#80)
Addresses #79 Co-authored-by: Víðir Valberg Guðmundsson <valberg@orn.li> Reviewed-on: https://git.data.coop/data.coop/membersystem/pulls/80 Reviewed-by: benjaoming <benjaoming@data.coop> Co-authored-by: Reynir Björnsson <reynir@reynir.dk> Co-committed-by: Reynir Björnsson <reynir@reynir.dk>
This commit is contained in:
parent
1adaf5e341
commit
b3b30e05ed
1 changed files with 34 additions and 0 deletions
|
@ -2,10 +2,13 @@
|
|||
|
||||
from datetime import timedelta
|
||||
|
||||
from accounting.models import Product
|
||||
from django.contrib.auth.models import User
|
||||
from django.core.management import BaseCommand
|
||||
from django.db.backends.postgresql.psycopg_any import DateRange
|
||||
from django.utils import timezone
|
||||
from djmoney.money import Money
|
||||
from membership.models import MembershipType
|
||||
from membership.models import SubscriptionPeriod
|
||||
|
||||
|
||||
|
@ -17,11 +20,15 @@ class Command(BaseCommand):
|
|||
superuser: User
|
||||
normal_users: list[User]
|
||||
|
||||
products: dict[str, Product]
|
||||
|
||||
def handle(self, *args: str, **options: str) -> None:
|
||||
"""Handle the command."""
|
||||
self.create_superuser()
|
||||
self.create_normal_users()
|
||||
self.create_subscription_periods()
|
||||
self.create_products()
|
||||
self.create_membership_types()
|
||||
|
||||
def create_superuser(self) -> None:
|
||||
"""Create superuser."""
|
||||
|
@ -47,3 +54,30 @@ class Command(BaseCommand):
|
|||
SubscriptionPeriod.objects.create(
|
||||
period=DateRange(timezone.now().date() + timedelta(days=183), timezone.now().date() + timedelta(days=365))
|
||||
)
|
||||
|
||||
def create_products(self) -> None:
|
||||
"""Create products."""
|
||||
self.stdout.write("Creating products")
|
||||
products_data = {
|
||||
"Medlemsydelse": (360, 90),
|
||||
"Medlemskontingent": (150, 0),
|
||||
"Nedsat medlemsydelse": (40, 10),
|
||||
"Nedsat medlemskontingent": (50, 0),
|
||||
}
|
||||
self.products = {}
|
||||
for name, (price, vat) in products_data.items():
|
||||
self.products[name] = Product.objects.create(
|
||||
name=name,
|
||||
price=Money(price, "DKK"),
|
||||
vat=Money(vat, "DKK"),
|
||||
)
|
||||
|
||||
def create_membership_types(self) -> None:
|
||||
"""Create membership types."""
|
||||
self.stdout.write("Creating membership types")
|
||||
ydelse = self.products["Medlemsydelse"]
|
||||
kontingent = self.products["Medlemskontingent"]
|
||||
nedsat_ydelse = self.products["Nedsat medlemsydelse"]
|
||||
nedsat_kontingent = self.products["Nedsat medlemskontingent"]
|
||||
MembershipType.objects.create(name="Normalt medlemskab").products.add(ydelse, kontingent)
|
||||
MembershipType.objects.create(name="Nedsat medlemskab").products.add(nedsat_ydelse, nedsat_kontingent)
|
||||
|
|
Loading…
Add table
Reference in a new issue