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