Project

General

Profile

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

calebasse / calebasse / dossiers / lookups.py @ 61861b9b

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

    
3
from ajax_select import LookupChannel
4
from calebasse.dossiers.models import PatientRecord, PatientAddress
5
from django.core.exceptions import PermissionDenied
6

    
7
class PatientRecordLookup(LookupChannel):
8
    model = PatientRecord
9
    search_field = 'display_name'
10
    homonym = False
11

    
12
    def get_query(self,q,request):
13
        qs = super(PatientRecordLookup, self).get_query(q, request)
14
        if request.COOKIES.has_key('home-service'):
15
            service = request.COOKIES['home-service'].upper().replace('-', ' ')
16
            qs = qs.filter(service__name=service)
17
        #nb = qs.count()
18
        #nb_distinct = qs.distinct('display_name').count()
19
        #if nb != nb_distinct:
20
        #    self.homonym = True
21
        qs.prefetch_related('last_state__status')
22
        return qs
23

    
24
    def format_match(self,obj):
25
        texte = obj.display_name
26
        if obj.paper_id:
27
            texte += u' (N° : ' + obj.paper_id + u')'
28
        if obj.last_state:
29
            texte += u' (Statut : %s)' % obj.last_state.status.name
30
        return self.format_item_display(texte)
31

    
32
    def check_auth(self, request):
33
        if not request.user.is_authenticated():
34
            raise PermissionDenied
35

    
36
class PatientAddressLookup(LookupChannel):
37
    model = PatientAddress
38
    search_field = 'display_name'
39

    
40
    def get_query(self, q, request):
41
        qs = super(PatientAddressLookup, self).get_query(q, request)
42
        if request.session.has_key('patientrecord_id'):
43
            qs = qs.filter(patientcontact__id=request.session['patientrecord_id'])
44
        return qs
45

    
46
    def check_auth(self, request):
47
        if not request.user.is_authenticated():
48
            raise PermissionDenied
(4-4/9)