Project

General

Profile

Download (1.82 KB) Statistics
| Branch: | Tag: | Revision:

calebasse / calebasse / actes / forms.py @ 05a6bb20

1
# -*- coding: utf-8 -*-
2

    
3
from django import forms
4

    
5
from calebasse.actes.models import Act
6
from calebasse.ressources.models import ActType
7
from ajax_select import make_ajax_field
8

    
9
class ActSearchForm(forms.Form):
10
    STATES = (
11
            ('pointe', u'Pointés'),
12
            ('non-pointe', u'Non pointés'),
13
            ('valide', u'Présents'),
14
            ('absent-or-canceled', u'Absents ou annulés'),
15
            ('is-billable', u'Facturables'),
16
            ('non-invoicable', u'Non facturables'),
17
            ('switch-billable', u'Avec facturabilité inversée'),
18
            ('lost', u'Perdus'),
19
            ('pause-invoicing', u'En pause facturation'),
20
            ('invoiced', u'Facturés'),
21
            ('group', u'De groupe'),
22
#            ('current-invoicing', u'Facturation en cours')
23
            )
24

    
25
    INITIAL = [x[0] for x in STATES]
26

    
27
    last_name = forms.CharField(required=False)
28
    patient_record_id = forms.IntegerField(required=False)
29
    social_security_number = forms.CharField(required=False)
30

    
31
    doctor_name = forms.CharField(required=False)
32
    filters = forms.MultipleChoiceField(choices=STATES,
33
            widget=forms.CheckboxSelectMultiple)
34

    
35
class ActUpdate(forms.ModelForm):
36
    doctors = make_ajax_field(Act, 'doctors', 'intervenant', True)
37
    class Meta:
38
        model = Act
39
        fields = ('act_type', 'doctors', 'is_lost', 'pause',
40
            'switch_billable', 'comment', )
41
        widgets = {
42
                'comment': forms.Textarea(attrs={'cols': 52, 'rows': 4}),
43
                }
44

    
45
    def __init__(self, instance, service=None, **kwargs):
46
        super(ActUpdate, self).__init__(instance=instance, **kwargs)
47
        if instance.patient.service:
48
            self.fields['act_type'].queryset = \
49
                    ActType.objects.for_service(instance.patient.service) \
50
                    .order_by('name')
(3-3/9)