diff --git a/golem_resource/models/golem_resource_reservation.py b/golem_resource/models/golem_resource_reservation.py index f323e7c..2fff85e 100644 --- a/golem_resource/models/golem_resource_reservation.py +++ b/golem_resource/models/golem_resource_reservation.py @@ -183,7 +183,8 @@ class GolemResourceReservation(models.Model): # Check if reservation is not taking place out the avaibility timetables date_start = fields.Datetime.from_string(reservation.date_start) date_stop = fields.Datetime.from_string(reservation.date_stop) - reservation_period = [date_start + timedelta(days=x) for x in range((date_stop - date_start).days +1)] + reservation_period = [date_start + timedelta(days=x) for x in range( + (date_stop - date_start).days +1)] for reservation_day in reservation_period: is_day_allowed = False for timetable in reservation.resource_id.timetable_ids: @@ -195,28 +196,31 @@ class GolemResourceReservation(models.Model): if not timetable.availibility_24: hour_start = 0.0 hour_stop = 0.0 - if (reservation_day == date_start and - reservation_day == date_stop): + if (reservation_day.date() == date_start.date() and + reservation_day.date() == date_stop.date()): hour_start = date_start.hour + date_start.minute/60.0 hour_stop = date_stop.hour + date_stop.minute/60.0 - elif (reservation_day == date_start and - reservation_day != date_stop): + elif reservation_day.date() == date_start.date(): hour_start = date_start.hour + date_start.minute/60.0 hour_stop = 23.98 - elif (reservation_day == date_stop and - reservation_day != date_start): + elif reservation_day.date() == date_stop.date(): + hour_start = 0.0 hour_stop = date_stop.hour + date_stop.minute/60.0 + else: + #if the day is not a start nor stop it's not allowed unless + #availibility_24 is True + is_day_allowed = False - if hour_start < timetable.time_start or \ - hour_stop > timetable.time_stop: + if is_day_allowed and (hour_start < timetable.time_start or \ + hour_stop > timetable.time_stop): verr = _('Not allowed, the resource is not available ' - 'during this period, please choose another ' + 'during this schedule, please choose another ' 'time before confirming.') raise ValidationError(verr) if not is_day_allowed: verr = _('Not allowed, the resource is not available ' - 'this day. Please choose another date.') + 'in a day you chosed. Please choose another date.') raise ValidationError(verr) # Check if the resource is already taken during this period domain = [('resource_id', '=', reservation.resource_id.id), diff --git a/golem_resource/models/golem_resource_timetable.py b/golem_resource/models/golem_resource_timetable.py index 9597643..b71e937 100644 --- a/golem_resource/models/golem_resource_timetable.py +++ b/golem_resource/models/golem_resource_timetable.py @@ -40,15 +40,23 @@ class GolemTimetable(models.Model): time_start = fields.Float(required=True, string='Start') time_stop = fields.Float(required=True, string='Stop') availibility_24 = fields.Boolean(string="All day") - @api.onchange('availibility_24') - def _set_time_start_stop(self): - """ set start and stop time """ - self.ensure_one() - if self.availibility_24: - self.time_start = 0.0 - self.time_stop = 23.99 + #@api.onchange('availibility_24') + #def _set_time_start_stop(self): + # """ set start and stop time """ + # self.ensure_one() + # if self.availibility_24: + # self.time_start = 0.0 + # self.time_stop = 23.99 + @api.onchange('availibility_24') + def onchange_availibility_24(self): + """ Propose automatically stop hour after start hour had been filled """ + for line in self: + if line.availibility_24: + line.time_start = 0.0 + line.time_stop = 23.98 + @api.onchange('time_start') def onchange_time_start(self): """ Propose automatically stop hour after start hour had been filled """ diff --git a/golem_resource/views/golem_resource_timetable_views.xml b/golem_resource/views/golem_resource_timetable_views.xml index 1dabadc..aedd45f 100644 --- a/golem_resource/views/golem_resource_timetable_views.xml +++ b/golem_resource/views/golem_resource_timetable_views.xml @@ -28,10 +28,8 @@ along with this program. If not, see . - - + +