class Meta:
model = dae.Dossier
fields = ('dae_numerisee',)
+
+
+class DAEFinaliseesSearchForm(forms.Form):
+ q = forms.CharField(
+ label='Recherche', required=False,
+ widget=forms.TextInput(attrs={'size': 40})
+ )
+ importees = forms.ChoiceField(
+ label='Importation', required=False, choices=(
+ ('', ''),
+ ('oui', 'DAE importées seulement'),
+ ('non', 'DAE non-importées seulement'),
+ )
+ )
PosteComparaisonFormSet, DossierWorkflowForm, ChoosePosteForm, \
EmployeForm, DossierForm, DossierPieceForm, \
DossierComparaisonFormSet, RemunForm, ContratForm, DAENumeriseeForm, \
- label_poste_display
+ label_poste_display, DAEFinaliseesSearchForm
from project.dae.mail import send_drh_finalisation_mail
from project.dae.workflow import \
DOSSIER_ETAT_FINALISE, DOSSIER_ETAT_REGION_FINALISATION, \
embauches = dae.Dossier.objects.ma_region_ou_service(request.user) \
.filter(etat=DOSSIER_ETAT_FINALISE)
+ # Recherche
+ search_form = DAEFinaliseesSearchForm(request.GET)
+ if search_form.is_valid():
+ q = search_form.cleaned_data.get('q').strip()
+ importees = search_form.cleaned_data.get('importees')
+ if q:
+ criteria = [
+ Q(poste__implantation__region__nom__icontains=word) |
+ Q(poste__implantation__region__code=word) |
+ Q(poste__implantation__nom__icontains=word) |
+ Q(poste__nom__icontains=word) |
+ Q(employe__nom__icontains=word) |
+ Q(employe__prenom__icontains=word)
+ for word in q.split()
+ ]
+ embauches = embauches.filter(*criteria)
+ if importees == 'oui':
+ embauches = embauches.exclude(dossier_rh=None)
+ elif importees == 'non':
+ embauches = embauches.filter(dossier_rh=None)
+
# Tri
tri = request.GET.get('tri', None)
if tri and tri.startswith('-'):
page = paginator.page(1)
return render_to_response('dae/embauches_finalisees.html', {
- 'embauches': page
+ 'embauches': page,
+ 'search_form': search_form
}, RequestContext(request))