Byrokracie Sklené 2023
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

49 lines
1.6 KiB

from django.db import models
# Žádost:
# - máme následující časové body:
# - dorazila na studijní (/přečetli si ji na studijním)
# - dorazila na poštu
# - dorazila na internát
# - vyzvednuta = platí
#
# - máme následující žádosti:
# - žádost
# - žádost o banán,
# - žádost o více vegetariánskou stravu v jídelně,
# - nevalidní žádost o přístup k záznamům o třídní knize
# - validní žádost o přístup k záznamům o třídní knize
# https://stackoverflow.com/a/55243162
class ZadostField(models.Field):
def __init__(self, **kwargs):
self.field_kwargs = kwargs.pop("field_kwargs", {})
super().__init__(**kwargs)
def contribute_to_class(self, cls, name, private_only=False):
for field in (
models.FloatField(name=name + "_studijni", default=None, null=True, **self.field_kwargs),
models.FloatField(name=name + "_posta", default=None, null=True, **self.field_kwargs),
models.FloatField(name=name + "_internat", default=None, null=True, **self.field_kwargs),
models.FloatField(name=name + "_plati", default=None, null=True, **self.field_kwargs),
models.BooleanField(name=name + "_vytistena", default=False, **self.field_kwargs),
):
field.contribute_to_class(cls, field.name)
setattr(cls, name, ZadostProperty(name))
class ZadostProperty:
def __init__(self, name):
self.name = name
def __get__(self, instance, owner):
if not instance:
return self
raise NotImplementedError
# real = getattr(instance, self.name + "_real")
def __set__(self, instance, value: complex):
raise NotImplementedError
# setattr(instance, self.name + "_real", value.real)