Revision a5bdc8ec
Added by Benjamin Dauvergne over 12 years ago
calebasse/personnes/views.py | ||
---|---|---|
80 | 80 |
if intervene_status and 0 < len(intervene_status) < 2: |
81 | 81 |
qs = qs.filter(type__intervene=intervene_status[0] == 'a') |
82 | 82 |
today = date.today() |
83 |
if models.Holiday.objects.for_service(self.service) \ |
|
83 |
if models.Holiday.objects.for_service(self.service).future() \
|
|
84 | 84 |
.filter(start_date__lte=today).exists(): |
85 | 85 |
for worker in qs: |
86 | 86 |
worker.holiday = True |
87 | 87 |
else: |
88 |
qs2 = models.Holiday.objects.filter( |
|
89 |
start_date__lte=today, |
|
90 |
end_date__gte=today) |
|
88 |
qs2 = models.Holiday.objects.today() |
|
91 | 89 |
worker_dict = dict(((w.id, w) for w in qs)) |
92 | 90 |
for worker in qs: |
93 | 91 |
worker.holiday = False |
... | ... | |
138 | 136 |
ctx['timetables'] = timetable |
139 | 137 |
ctx['holidays'] = models.Holiday.objects \ |
140 | 138 |
.for_worker(self.object) \ |
139 |
.future() \ |
|
141 | 140 |
.order_by('start_date') |
142 | 141 |
try: |
143 |
holiday = models.Holiday.objects.for_worker(self.object) \ |
|
144 |
.filter(start_date__lte=date.today())[0] |
|
142 |
holiday = models.Holiday.objects \ |
|
143 |
.for_worker(self.object) \ |
|
144 |
.today()[0] |
|
145 | 145 |
except IndexError: |
146 | 146 |
holiday = None |
147 | 147 |
ctx['holiday'] = holiday |
... | ... | |
209 | 209 |
def get_context_data(self, **kwargs): |
210 | 210 |
ctx = super(HolidayView, self).get_context_data(**kwargs) |
211 | 211 |
end_date = date.today() + relativedelta(months=self.months) |
212 |
qs = models.Holiday.objects.for_service_workers(self.service) |
|
212 |
qs = models.Holiday.objects.for_service_workers(self.service).future()
|
|
213 | 213 |
today = date.today() |
214 |
future_qs = qs.filter(start_date__gt=today, |
|
215 |
start_date__lte=end_date) |
|
214 |
future_qs = qs.for_period(today, end_date) |
|
216 | 215 |
annual_qs = models.Holiday.objects.for_service(self.service) |
217 |
current_qs = qs.filter(start_date__lte=today)
|
|
216 |
current_qs = qs.today()
|
|
218 | 217 |
form = self.get_form() |
219 | 218 |
if form.is_valid() and form.cleaned_data.get('start_date'): |
220 | 219 |
cleaned_data = form.cleaned_data |
221 | 220 |
start_date = cleaned_data['start_date'] |
222 | 221 |
end_date = cleaned_data['end_date'] |
223 |
q = Q(start_date__gte=start_date, start_date__lte=end_date) |
|
224 |
q |= Q(end_date__gte=start_date, end_date__lte=end_date) |
|
225 |
future_qs = models.Holiday.objects.filter(q) \ |
|
226 |
.filter(worker__services=self.service) |
|
227 |
annual_qs = annual_qs.filter(q) |
|
222 |
future_qs = models.Holiday.objects \ |
|
223 |
.for_period(start_date, end_date) \ |
|
224 |
.for_service_workers(self.service) |
|
225 |
annual_qs = annual_qs.for_period(start_date, end_date) |
|
228 | 226 |
current_qs = [] |
229 | 227 |
ctx['current_holidays'] = current_qs |
230 | 228 |
future_holidays = defaultdict(lambda:[]) |
Also available in: Unified diff
personnes: add new methods of the HolidayQuerySet
New methods allow to filter holidays based on a time period or for the
future (happening later than today, today included).