From 9d3f5c9a24197ee4b0cd6c3c952025a95f576658 Mon Sep 17 00:00:00 2001 From: root Date: Sat, 28 Jan 2023 09:13:09 +0100 Subject: [PATCH] #72 #73 #74 --- models/event.py | 56 ++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 46 insertions(+), 10 deletions(-) diff --git a/models/event.py b/models/event.py index 1ec0ac5..184dd06 100755 --- a/models/event.py +++ b/models/event.py @@ -30,7 +30,7 @@ GOOGLE_ACCOUNT_FILE = '/usr/lib/python3/dist-packages/odoo/kalachakra_module/kal SUBJECT = 'kalachakra-srv@kalachakra-351613.iam.gserviceaccount.com' - +client_tz = timezone('Europe/Paris') class EventTagCategory(models.Model): _inherit = "event.tag.category" @@ -43,6 +43,7 @@ class KalachakraEvent(models.Model): _inherit = "event.event" _description = 'Event' + address_id=fields.Many2one(domain="[('is_company', '=', True)]") calendar_id=fields.Char('calendar id') calendar_event_id=fields.Char('event id') free_participation=fields.Boolean('Free participation') @@ -257,30 +258,65 @@ class KalachakraEvent(models.Model): if self.frequency=='weekly':d=7 + + start_date_event=self.date_begin+timedelta(days=d) end_date_event=self.date_end+timedelta(days=d) + + + # end_date_event=end_date_event.astimezone(client_tz) + # start_date_event=start_date_event.astimezone(client_tz) + end_generation_date=self.end_generation_date i=1 - while start_date_event<=self.end_generation_date: + while start_date_event<=end_generation_date: if not start_date_event.weekday() in (5,6): #avant de dupliquer l'événement on regarde si celui-ci n'a pas déjà été crée ! evt=self.env['event.event'].search([('date_begin','=',start_date_event),('parent_event_id','=', int(self.id))]) if evt: raise Warning('action cancelled: event already generated with this date :'+ str(start_date_event)) + + dup=self._create_event(start_date_event,end_date_event) - dup.add_event_to_google_agenda() + #dup.add_event_to_google_agenda() - hour_end=end_date_event.hour - minute_end=end_date_event.minute - hour_start=start_date_event.hour - minute_start=start_date_event.minute + old_end_date_event_tz=end_date_event.astimezone(client_tz) + old_start_date_event_tz=start_date_event.astimezone(client_tz) end_date_event=end_date_event+timedelta(days=d) - end_date_event.replace(hour=hour_end, minute=minute_end) - start_date_event=start_date_event+timedelta(days=d) - start_date_event.replace(hour=hour_start, minute=minute_start) + # _logger.error('hour1='+str(start_date_event)) + end_date_event_tz=end_date_event.astimezone(client_tz) + start_date_event_tz=start_date_event.astimezone(client_tz) + + + diff_start=int(start_date_event_tz.hour)-int(old_start_date_event_tz.hour) + #start_date_event=start_date_event+timedelta(hours=diff_start) + + diff_end=int(end_date_event_tz.hour)-int(old_end_date_event_tz.hour) + #end_date_event=end_date_event+timedelta(hours=diff_end) + + if diff_start!=0: + new_hour_start=start_date_event.hour-diff_start + new_hour_end=end_date_event.hour-diff_start + _logger.error('new_hour_start='+str(new_hour_start)) + start_date_event=start_date_event.replace(hour=new_hour_start) + end_date_event=end_date_event.replace(hour=new_hour_end) + + + + #_logger.error('start_date_event='+str(start_date_event)) + #_logger.error('diff_start='+str(diff_start)) + + # dst_offset_diff_end = old_end_date_event.dst() - end_date_event.dst() + # end_date_event=end_date_event+dst_offset_diff_end + + # dst_offset_diff_start = old_start_date_event.dst() - start_date_event.dst() + # start_date_event=start_date_event+dst_offset_diff_start + + + i=i+1