gestioCOF/kfet/forms.py
Aurélien Delobelle 6be65df654 Création de K-Psul
K-Psul est l'interface pour l'équipe K-Fêt servant à effectuer des
opérations sur les comtpes

General :
- Ajout d'un default sur le montant d'un groupe d'opérations

K-Psul :
- Création de l'interface pour enregistrer une opération
2016-08-06 22:19:52 +02:00

148 lines
3.9 KiB
Python

from django import forms
from django.contrib.auth.models import User
from django.forms import modelformset_factory
from kfet.models import Account, Checkout, Article, OperationGroup, Operation
from gestioncof.models import CofProfile
# -----
# Widgets
# -----
class DateTimeWidget(forms.DateTimeInput):
def __init__(self, attrs = None):
super(DateTimeWidget, self).__init__(attrs)
self.attrs['format'] = '%Y-%m-%d %H:%M'
class Media:
css = {
'all': ('bootstrap-datetimepicker.min.css',)
}
js = (
'moment.js',
'moment-fr.js',
'bootstrap-datetimepicker.min.js',
)
# -----
# Account forms
# -----
class AccountForm(forms.ModelForm):
# Surcharge pour passer data à Account.save()
def save(self, data = {}, *args, **kwargs):
obj = super(AccountForm, self).save(commit = False, *args, **kwargs)
obj.save(data = data)
return obj
class Meta:
model = Account
fields = ['trigramme', 'promo', 'nickname']
widgets = {
'trigramme': forms.TextInput(attrs={'autocomplete': 'off'}),
}
class AccountTriForm(AccountForm):
class Meta(AccountForm.Meta):
fields = ['trigramme']
class AccountNoTriForm(AccountForm):
class Meta(AccountForm.Meta):
exclude = ['trigramme']
class AccountRestrictForm(AccountForm):
class Meta(AccountForm.Meta):
fields = ['promo']
class CofForm(forms.ModelForm):
def clean_is_cof(self):
instance = getattr(self, 'instance', None)
if instance and instance.pk:
return instance.is_cof
else:
return False
class Meta:
model = CofProfile
fields = ['login_clipper', 'is_cof', 'departement']
class CofRestrictForm(CofForm):
class Meta(CofForm.Meta):
fields = ['departement']
class UserForm(forms.ModelForm):
class Meta:
model = User
fields = ['username', 'first_name', 'last_name', 'email']
help_texts = {
'username': ''
}
class UserRestrictForm(UserForm):
class Meta(UserForm.Meta):
fields = ['first_name', 'last_name', 'email']
# -----
# Checkout forms
# -----
class CheckoutForm(forms.ModelForm):
class Meta:
model = Checkout
fields = ['name', 'valid_from', 'valid_to', 'balance', 'is_protected']
widgets = {
'valid_from': DateTimeWidget(),
'valid_to' : DateTimeWidget(),
}
class CheckoutRestrictForm(CheckoutForm):
class Meta(CheckoutForm.Meta):
fields = ['name', 'valid_from', 'valid_to']
# -----
# Article forms
# -----
class ArticleForm(forms.ModelForm):
class Meta:
model = Article
fields = ['name', 'is_sold', 'price', 'stock', 'category']
class ArticleRestrictForm(ArticleForm):
class Meta(ArticleForm.Meta):
fields = ['name', 'is_sold', 'price', 'category']
# -----
# K-Psul forms
# -----
class KPsulOperationGroupForm(forms.ModelForm):
class Meta:
model = OperationGroup
fields = ['on_acc', 'checkout']
widgets = {
'on_acc' : forms.HiddenInput(),
'checkout': forms.HiddenInput(),
}
class KPsulAccountForm(forms.ModelForm):
class Meta:
model = Account
fields = ['trigramme']
widgets = {
'trigramme': forms.TextInput(attrs={'autocomplete': 'off'}),
}
class KPsulCheckoutForm(forms.Form):
checkout = forms.ModelChoiceField(
queryset=Checkout.objects.filter(is_protected=False),
widget=forms.Select(attrs={'id':'id_checkout_select'}))
class KPsulOperationForm(forms.ModelForm):
class Meta:
model = Operation
fields = ['type', 'amount', 'is_checkout', 'article', 'article_nb']
"""
OperationFormSet = modelformset_factory(
Operation,
form = KPsulOperationForm,
extra = 0,
min_num = 1, validate_min = True)
"""