Add forms
This commit is contained in:
parent
c04794081b
commit
9a649317da
55
lg/forms.py
Normal file
55
lg/forms.py
Normal file
@ -0,0 +1,55 @@
|
||||
from django import forms
|
||||
|
||||
from .models import Action, CupidonAction, DoveAction, HackerAction, RavenAction, WerewolfAction, WitchAction
|
||||
|
||||
|
||||
class ActionForm(forms.ModelForm):
|
||||
_forms_per_model = dict()
|
||||
|
||||
def __init_subclass__(cls):
|
||||
ActionForm._forms_per_model[cls.Meta.model] = cls
|
||||
return super().__init_subclass__()
|
||||
|
||||
@staticmethod
|
||||
def get_form_class(model_class):
|
||||
return ActionForm._forms_per_model.get(model_class, ActionForm)
|
||||
|
||||
class Meta:
|
||||
model = Action
|
||||
exclude = ('player', 'night',)
|
||||
|
||||
|
||||
class WerewolfActionForm(ActionForm):
|
||||
class Meta:
|
||||
model = WerewolfAction
|
||||
exclude = ('player', 'night',)
|
||||
|
||||
|
||||
class CupidonActionForm(ActionForm):
|
||||
class Meta:
|
||||
model = CupidonAction
|
||||
exclude = ('player', 'night',)
|
||||
|
||||
|
||||
class WitchActionForm(ActionForm):
|
||||
class Meta:
|
||||
model = WitchAction
|
||||
exclude = ('player', 'night',)
|
||||
|
||||
|
||||
class RavenActionForm(ActionForm):
|
||||
class Meta:
|
||||
model = RavenAction
|
||||
exclude = ('player', 'night',)
|
||||
|
||||
|
||||
class DoveActionForm(ActionForm):
|
||||
class Meta:
|
||||
model = DoveAction
|
||||
exclude = ('player', 'night',)
|
||||
|
||||
|
||||
class HackerActionForm(ActionForm):
|
||||
class Meta:
|
||||
model = HackerAction
|
||||
exclude = ('player', 'night',)
|
Loading…
Reference in New Issue
Block a user