1
|
|
2
|
from calebasse.agenda.models import Occurence
|
3
|
from calebasse.personnes.models import TimeTable
|
4
|
|
5
|
class Appointment(object):
|
6
|
|
7
|
def __init__(self, title=None, begin_hour=None, type=None,
|
8
|
length=None, description=None, room=None, convocation_sent=None,
|
9
|
service_name=None):
|
10
|
""" """
|
11
|
self.title = title
|
12
|
self.begin_hour = begin_hour
|
13
|
self.type = type
|
14
|
self.length = length
|
15
|
self.description = description
|
16
|
self.room = room
|
17
|
self.convocation_sent = None
|
18
|
self.service_name = None
|
19
|
|
20
|
def load_from_occurence(self, occurence, service):
|
21
|
""" """
|
22
|
delta = occurence.end_time - occurence.start_time
|
23
|
self.length = (delta.hours * 60) + dela.minutes
|
24
|
self.title = occurence.title
|
25
|
self.begin_hour = occurence.start_time.hours
|
26
|
if service in occurence.services:
|
27
|
self.type = "busy-here"
|
28
|
else:
|
29
|
self.type = "busy-elsewhere"
|
30
|
self.service_name = service.name
|
31
|
self.room = occurence.room.name
|
32
|
self.convocation_sent = occurence.convocation_sent
|
33
|
self.description = occurence.description
|
34
|
|
35
|
def get_daily_appointments(date, worker, service):
|
36
|
"""
|
37
|
"""
|
38
|
weekday_mapping = {
|
39
|
'0': 'dimanche',
|
40
|
'1': 'lundi',
|
41
|
'2': 'mardi',
|
42
|
'3': 'mercredi',
|
43
|
'4': 'jeudi',
|
44
|
'5': 'vendredi'
|
45
|
'6': 'samedi'
|
46
|
}
|
47
|
weekday = weekday_mapping[date.strftime("%w")]
|
48
|
time_tables = TimeTable.objects.filter(worker=worker).\
|
49
|
filter(service=service).\
|
50
|
filter(weekday=weekday).\
|
51
|
filter(start_date__lte=date).\
|
52
|
filter(end_date__gte=date)
|
53
|
occurences = Occurence.objects.daily_occurrences(date, [worker])
|
54
|
|
55
|
|