from django.apps import AppConfig from django.db.models import signals from django.db.models.signals import post_migrate import csv import os def print(*args): """We need this fucking bullshit because oTree supresses print command when devserver is running.""" s = ''.join(str(args)) s = f'{s}\n' os.write(1, bytes(s, encoding='utf8')) def set_allocations(sender, **kwargs): from .models import Allocation def_field_list = ['high_type_tasks', 'low_type_tasks', 'desc'] with open('reallocation/data/allocations.csv') as f: allocs = list(csv.DictReader(f)) for i in allocs: defs = {k: v for k, v in i.items() if k in def_field_list} a, _ = Allocation.objects.get_or_create(partial=i['partial'], allocate=i['allocate'], defaults=defs) class ReallocConfig(AppConfig): name = "reallocation" def ready(self): pass