1 # -*- encoding: utf-8 -*-
3 from django
import forms
4 from ajax_select
.fields
import AutoCompleteSelectField
5 from models
import Dossier
, Contrat
, AyantDroit
, Employe
8 class AjaxSelect(object):
12 'all': ('jquery-autocomplete/jquery.autocomplete.css', 'css/select.css', )
14 js
= ('js/jquery-1.5.1.min.js', 'jquery-autocomplete/jquery.autocomplete.js', )
17 class FormDate(object):
19 def clean_date_fin(self
):
20 date_fin
= self
.cleaned_data
['date_fin']
23 date_debut
= self
.cleaned_data
['date_debut']
24 if date_fin
< date_debut
:
25 raise forms
.ValidationError(u
"La date de fin est antérieure à la date de début")
28 class DossierForm(forms
.ModelForm
, FormDate
):
33 def clean_principal(self
):
34 employe
= self
.cleaned_data
['employe']
35 principal
= self
.cleaned_data
['principal']
36 dossiers_encours
= employe
.dossiers_encours()
37 dossiers_principaux
= [dossier
for dossier
in dossiers_encours
if \
38 dossier
.principal
and dossier
!= self
.instance
]
39 if principal
and len(dossiers_principaux
) > 0:
40 raise forms
.ValidationError(u
"Il y a déjà un dossier principal \
41 actuellement en vigueur %s" % dossiers_principaux
)
42 if not principal
and len(dossiers_principaux
) == 0:
43 raise forms
.ValidationError(u
"Il y n'a aucun dossier principal actuellement en vigueur")
47 class ContratForm(forms
.ModelForm
, FormDate
):
52 class AyantDroitForm(forms
.ModelForm
, AjaxSelect
):
54 # ne fonctionne pas dans un inline
55 #nationalite = AutoCompleteSelectField('pays', help_text="Taper le nom ou le code du pays", required=False)
57 def __init__(self
, *args
, **kwargs
):
58 super(AyantDroitForm
, self
).__init__(*args
, **kwargs
)
59 self
.fields
['date_naissance'].widget
= forms
.widgets
.DateInput()
65 class EmployeAdminForm(forms
.ModelForm
, AjaxSelect
):
67 nationalite
= AutoCompleteSelectField('pays', help_text
="Taper le nom ou le code du pays", required
=False)
68 pays
= AutoCompleteSelectField('pays', help_text
="Taper le nom ou le code du pays", required
=False)
73 def __init__(self
, *args
, **kwargs
):
74 super(EmployeAdminForm
, self
).__init__(*args
, **kwargs
)
75 self
.fields
['date_naissance'].widget
= forms
.widgets
.DateInput()