Skip to content
Snippets Groups Projects

Hotfix/office availability

Merged Carlos Vega requested to merge hotfix/office_availability into master
4 files
+ 129
6
Compare changes
  • Side-by-side
  • Inline
Files
4
+ 20
4
@@ -187,12 +187,28 @@ class Worker(models.Model):
office_availability = OfficeAvailability(u'{} {}'.format(self.first_name, self.last_name), start=start_date, end=end_date)
#Appointments
subject_appointments = AppointmentTypeLink.objects.filter(worker=self.id, date_when__gte=start_date, date_when__lte=end_date)
general_appointments = Appointment.objects.filter(worker_assigned=self.id, datetime_when__gte=start_date, datetime_when__lte=end_date)
#Subject Appointments
old_events = Q(date_when__gt=start_date) & Q(date_when__gt=end_date)
future_events = Q(date_when__lt=start_date) & Q(date_when__lt=end_date)
non_overlap_events = old_events | future_events
overlap_events = ~non_overlap_events
query = Q(worker=self.id) & overlap_events
subject_appointments = AppointmentTypeLink.objects.filter(query)
#General Appointments
old_events = Q(datetime_when__gt=start_date) & Q(datetime_when__gt=end_date)
future_events = Q(datetime_when__lt=start_date) & Q(datetime_when__lt=end_date)
non_overlap_events = old_events | future_events
overlap_events = ~non_overlap_events
query = Q(worker_assigned=self.id) & overlap_events
general_appointments = Appointment.objects.filter(query)
#Holidays and extra availabilities.
holidays_and_extra_availabilities = self.holiday_set.filter(datetime_start__gte=start_date, datetime_end__lt=end_date).order_by('-datetime_start')
old_events = Q(datetime_start__gt=start_date) & Q(datetime_start__gt=end_date)
future_events = Q(datetime_end__lt=start_date) & Q(datetime_end__lt=end_date)
non_overlap_events = old_events | future_events
overlap_events = ~non_overlap_events
holidays_and_extra_availabilities = self.holiday_set.filter(overlap_events).order_by('-datetime_start')
#Availability
weekdays = get_weekdays_in_period(start_date, end_date)
Loading