Source code for squaresdb.gate.migrations.0007_add_prices
# Generated by Django 3.2.4 on 2022-02-15 09:01
from django.db import migrations
# Add "free" price scheme
# Add free and normal prices (this might change in the future, and dunno
# whether we'll do that with a migration or just editing, but we can at
# least pre-populate for now)
PRICES = dict(
free={
'mit-student': (0,0),
'student': (0,0),
'full': (0,0),
},
normal={
'mit-student': (0,0),
'student': (2,2),
'full': (5,5),
},
)
[docs]
def add_prices(apps, schema_editor):
PriceScheme = apps.get_model('gate', 'DancePriceScheme')
PriceScheme.objects.get_or_create(name='free')
Price = apps.get_model('gate', 'DancePrice')
FeeCat = apps.get_model('membership', 'FeeCategory')
for scheme, prices in PRICES.items():
scheme_obj = PriceScheme.objects.get(name=scheme)
for feecat, (low, high) in prices.items():
feecat_obj = FeeCat.objects.get(slug=feecat)
defaults = dict(low=low, high=high)
Price.objects.get_or_create(fee_cat=feecat_obj,
price_scheme=scheme_obj,
defaults=defaults)
[docs]
class Migration(migrations.Migration):
dependencies = [
('gate', '0006_add_perms'),
('membership', '0008_personfreq'),
]
operations = [
migrations.RunPython(add_prices),
]