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:[])
|
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).