root 2 years ago
parent
commit
9d3f5c9a24
1 changed files with 46 additions and 10 deletions
  1. +46
    -10
      models/event.py

+ 46
- 10
models/event.py View File

@ -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


Loading…
Cancel
Save