diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..a18e910
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+*pyc
+*~
+*#
+.dir-locals.el
diff --git a/calendar_ics/__init__.pyc b/calendar_ics/__init__.pyc
deleted file mode 100644
index b33230b..0000000
Binary files a/calendar_ics/__init__.pyc and /dev/null differ
diff --git a/calendar_ics/calendar.pyc b/calendar_ics/calendar.pyc
deleted file mode 100644
index 926898d..0000000
Binary files a/calendar_ics/calendar.pyc and /dev/null differ
diff --git a/calendar_ics/res_partner.pyc b/calendar_ics/res_partner.pyc
deleted file mode 100644
index 932c099..0000000
Binary files a/calendar_ics/res_partner.pyc and /dev/null differ
diff --git a/groupeurd_calendar/models.py b/groupeurd_calendar/models.py
index 1667ce8..c6e0aed 100644
--- a/groupeurd_calendar/models.py
+++ b/groupeurd_calendar/models.py
@@ -1,97 +1,189 @@
# -*- coding: utf-8 -*-
from openerp import models, fields, api
+from openerp.tools.translate import _
-#Debuggger package
+# Debuggger package
import pdb
+
## APPELER "pdb.set_trace()" pour faire un point de débuggage qu'on peut piloter ensuite depuis la console
#
# "event.event" est l'objet pour les évènements publics
#
class Event(models.Model):
- _name = "event.event"
- _inherit = "event.event"
-
- #le champ "team_ids" est conçu pour n'etre modifiable que depuis l'interface sur un event.event
- # => il sert d'interface pour modifier le calendar_event.partner_ids qui lui stocke la valeur de référence sur cette information
- team_ids = fields.Many2many("res.partner", string="Event team members")
-
-
- # le décorateur "@api.model" indique que le "self" est alors une classe "event.event" générique
- @api.model
- def create(self, vals):
- #Ajouter le responsable (user_id) à l'équipe pour que l'évènement soit visible dans son calendrier
- team_ids_vals = vals['team_ids'][0][2]
- team_ids_vals.append(self.env['res.users'].search([('id','=',vals['user_id'])]).partner_id.id)
- vals['team_ids'] = [(6,False,team_ids_vals)]
-
- event = super(Event, self).create(vals)
-
- return event
-
- # le décorateur "@api.multi" indique que le "self" dans la fonction est tableau d'objets "event.event"
- @api.multi
- def write(self, vals):
- # Ajouter le responsable (user_id) à l'équipe s'il a été modifié
- if vals.get('user_id'):
- team_ids_vals = []
- if vals.get('team_ids'):
- team_ids_vals = vals['team_ids'][0][2]
- else:
- event = self
- for team_member_id in event.team_ids:
- team_ids_vals.append(team_member_id.id)
- team_ids_vals.append(self.env['res.users'].search([('id','=',vals['user_id'])]).partner_id.id)
- vals['team_ids'] = [(6,False,team_ids_vals)]
-
- res = super(Event, self).write(vals)
- context = dict(self._context or {})
- if context.get("from_eventevent_interface"):
- for event in self:
- for calendar_event in self.env['calendar.event'].search([('event_event_id','=',event.id)]):
- calendar_event.partner_ids = event.team_ids
- if vals.get('user_id'):
- calendar_event.user_id = event.user_id
- return res
-
+ _name = "event.event"
+ _inherit = "event.event"
+
+ # le champ "team_ids" est conçu pour n'etre modifiable que depuis l'interface sur un event.event
+ # => il sert d'interface pour modifier le calendar_event.partner_ids qui lui stocke la valeur de référence sur cette information
+ team_ids = fields.Many2many("res.partner", string="Event team members")
+
+ # le décorateur "@api.model" indique que le "self" est alors une classe "event.event" générique
+ @api.model
+ def create(self, vals):
+ # Ajouter le responsable (user_id) à l'équipe pour que l'évènement soit visible dans son calendrier
+ team_ids_vals = vals["team_ids"][0][2]
+ team_ids_vals.append(
+ self.env["res.users"].search([("id", "=", vals["user_id"])]).partner_id.id
+ )
+ vals["team_ids"] = [(6, False, team_ids_vals)]
+
+ event = super(Event, self).create(vals)
+
+ return event
+
+ # le décorateur "@api.multi" indique que le "self" dans la fonction est tableau d'objets "event.event"
+
+ @api.multi
+ def write(self, vals):
+ # Ajouter le responsable (user_id) à l'équipe s'il a été modifié
+ if vals.get("user_id"):
+ team_ids_vals = []
+ if vals.get("team_ids"):
+ team_ids_vals = vals["team_ids"][0][2]
+ else:
+ event = self
+ for team_member_id in event.team_ids:
+ team_ids_vals.append(team_member_id.id)
+ team_ids_vals.append(
+ self.env["res.users"]
+ .search([("id", "=", vals["user_id"])])
+ .partner_id.id
+ )
+ vals["team_ids"] = [(6, False, team_ids_vals)]
+
+ res = super(Event, self).write(vals)
+ context = dict(self._context or {})
+ if context.get("from_eventevent_interface"):
+ for event in self:
+ for calendar_event in self.env["calendar.event"].search(
+ [("event_event_id", "=", event.id)]
+ ):
+ calendar_event.partner_ids = event.team_ids
+ if vals.get("user_id"):
+ calendar_event.user_id = event.user_id
+ return res
+
#
# "calendar.event" est l'objet pour les évènements affichés dans les calendriers des utilisateurs
#
+class CalAtt(models.Model):
+ _inherit = "calendar.attendee"
+
+ invit_sent = fields.Boolean("If invit has been sent", default=False)
+
+
class CalendarEvent(models.Model):
- _inherit = 'calendar.event'
-
- @api.model
- def create(self, vals):
- calendar_event = super(CalendarEvent, self).create(vals)
- if calendar_event.event_event_id:
- calendar_event.partner_ids = calendar_event.event_event_id.team_ids
- calendar_event.partner_ids |= calendar_event.event_event_id.user_id.partner_id
- return calendar_event
-
- @api.multi
- def write(self, vals):
- res = super(CalendarEvent, self).write(vals)
-
- # Après la modification, si la modif n'est pas faite depuis l'event.event,
- # on met à jour la team member listes de l'event.event
- context = dict(self._context or {})
- if context.get("from_eventevent_interface") != True :
- for calendar_event in self:
- if calendar_event.event_event_id:
- calendar_event.event_event_id.team_ids = calendar_event.partner_ids
-
- return res
-
-
-
-
-#Overrides calendar_ics "res_partner" override to have our custom URL
+ _inherit = "calendar.event"
+
+ dispo_message = fields.Text("Dispos ok?", readonly=True)
+
+ @api.multi
+ def check_dispo(self):
+ message = ""
+ user_par_id = {}
+ com_pd = [
+ "&",
+ ("start_datetime", ">=", self.start_datetime),
+ ("start_datetime", "<=", self.stop_datetime),
+ ]
+ term_pd = [
+ "&",
+ ("stop_datetime", ">=", self.start_datetime),
+ ("stop_datetime", "<=", self.stop_datetime),
+ ]
+ englobe = [
+ "&",
+ ("start_datetime", "<=", self.start_datetime),
+ ("stop_datetime", ">=", self.stop_datetime),
+ ]
+ domain = ["|", "|"]
+ domain.extend(com_pd)
+ domain.extend(term_pd)
+ domain.extend(englobe)
+
+ res = self.env["calendar.event"].search(domain)
+ print(res)
+ cur_attendees = set(
+ [
+ at.partner_id.id
+ for at in self.env["calendar.attendee"].search(
+ [("event_id", "=", self.id)]
+ )
+ ]
+ )
+
+ for ev in res:
+ if ev.id == self.id:
+ continue
+ atts = self.env["calendar.attendee"].search([("event_id", "=", ev.id)])
+ for at in atts:
+ user_par_id[at.partner_id.id] = at.partner_id.name
+ attendees = set([at.partner_id.id for at in atts])
+
+ # print(cur_attendees, attendees)
+ inter = cur_attendees.intersection(attendees)
+ # print(inter)
+ if inter:
+ st = ""
+ for a in inter:
+ st += user_par_id[a] + ", "
+ message += "Conflit avec " + st + " et " + ev.name + "\n"
+ self.dispo_message = message
+
+ @api.multi
+ def send_invit(self):
+ attendees = self.env["calendar.attendee"].search([("event_id", "=", self.id)])
+ part_logged = self.env["res.users"].browse([self.env.uid])
+ id_part_cur = part_logged.partner_id
+
+ for attendee in attendees:
+ if not attendee.invit_sent and attendee.partner_id.id != id_part_cur.id:
+ attendee._send_mail_to_attendees(
+ [attendee.id], template_xmlid="calendar_template_meeting_invitation"
+ )
+ attendee.invit_sent = True
+ self.message_post(
+ body=_("An invitation email has been sent to attendee %s")
+ % (attendee.partner_id.name,),
+ subtype="calendar.subtype_invitation",
+ )
+
+ @api.model
+ def create(self, vals):
+ self = self.with_context(no_email=True)
+ calendar_event = super(CalendarEvent, self).create(vals)
+ if calendar_event.event_event_id:
+ calendar_event.partner_ids = calendar_event.event_event_id.team_ids
+ calendar_event.partner_ids |= (
+ calendar_event.event_event_id.user_id.partner_id
+ )
+ return calendar_event
+
+ @api.multi
+ def write(self, vals):
+ self = self.with_context(no_email=True)
+ res = super(CalendarEvent, self).write(vals)
+ # Après la modification, si la modif n'est pas faite depuis l'event.event,
+ # on met à jour la team member listes de l'event.event
+ context = dict(self._context or {})
+ if context.get("from_eventevent_interface") != True:
+ for calendar_event in self:
+ if calendar_event.event_event_id:
+ calendar_event.event_event_id.team_ids = calendar_event.partner_ids
+
+ return res
+
+
+# Overrides calendar_ics "res_partner" override to have our custom URL
class res_partner(models.Model):
_inherit = "res.partner"
+
@api.one
def create_ics_url(self):
- self.ics_url_field = '%s/calendar-ics/%s/public.ics' % (self.env['ir.config_parameter'].sudo().get_param('web.base.url'), self.id)
-
-
+ self.ics_url_field = "%s/calendar-ics/%s/public.ics" % (
+ self.env["ir.config_parameter"].sudo().get_param("web.base.url"),
+ self.id,
+ )
diff --git a/groupeurd_calendar/views.xml b/groupeurd_calendar/views.xml
index 8447300..f886805 100644
--- a/groupeurd_calendar/views.xml
+++ b/groupeurd_calendar/views.xml
@@ -54,6 +54,26 @@
+
+ calendar.eve.event.event.calendar
+ calendar.event
+
+ 32
+
+
+
+
+
+
+
+
+
+
+
@@ -96,4 +116,4 @@
-
\ No newline at end of file
+
diff --git a/mail_tracking/__init__.pyc b/mail_tracking/__init__.pyc
deleted file mode 100644
index 8fdc647..0000000
Binary files a/mail_tracking/__init__.pyc and /dev/null differ
diff --git a/mail_tracking/controllers/__init__.pyc b/mail_tracking/controllers/__init__.pyc
deleted file mode 100644
index d0b9c81..0000000
Binary files a/mail_tracking/controllers/__init__.pyc and /dev/null differ
diff --git a/mail_tracking/controllers/main.pyc b/mail_tracking/controllers/main.pyc
deleted file mode 100644
index eff55b7..0000000
Binary files a/mail_tracking/controllers/main.pyc and /dev/null differ
diff --git a/mail_tracking/hooks.pyc b/mail_tracking/hooks.pyc
deleted file mode 100644
index 5fcfba9..0000000
Binary files a/mail_tracking/hooks.pyc and /dev/null differ
diff --git a/mail_tracking/models/__init__.pyc b/mail_tracking/models/__init__.pyc
deleted file mode 100644
index 2250ce9..0000000
Binary files a/mail_tracking/models/__init__.pyc and /dev/null differ
diff --git a/mail_tracking/models/ir_mail_server.pyc b/mail_tracking/models/ir_mail_server.pyc
deleted file mode 100644
index ebd8cf5..0000000
Binary files a/mail_tracking/models/ir_mail_server.pyc and /dev/null differ
diff --git a/mail_tracking/models/mail_mail.pyc b/mail_tracking/models/mail_mail.pyc
deleted file mode 100644
index 9fcb77d..0000000
Binary files a/mail_tracking/models/mail_mail.pyc and /dev/null differ
diff --git a/mail_tracking/models/mail_message.pyc b/mail_tracking/models/mail_message.pyc
deleted file mode 100644
index c9400ad..0000000
Binary files a/mail_tracking/models/mail_message.pyc and /dev/null differ
diff --git a/mail_tracking/models/mail_tracking_email.pyc b/mail_tracking/models/mail_tracking_email.pyc
deleted file mode 100644
index 250220f..0000000
Binary files a/mail_tracking/models/mail_tracking_email.pyc and /dev/null differ
diff --git a/mail_tracking/models/mail_tracking_event.pyc b/mail_tracking/models/mail_tracking_event.pyc
deleted file mode 100644
index c8d313f..0000000
Binary files a/mail_tracking/models/mail_tracking_event.pyc and /dev/null differ
diff --git a/mail_tracking/models/res_partner.pyc b/mail_tracking/models/res_partner.pyc
deleted file mode 100644
index eca67ff..0000000
Binary files a/mail_tracking/models/res_partner.pyc and /dev/null differ
diff --git a/mail_tracking_mailgun/__init__.pyc b/mail_tracking_mailgun/__init__.pyc
deleted file mode 100644
index 3c1f82b..0000000
Binary files a/mail_tracking_mailgun/__init__.pyc and /dev/null differ
diff --git a/mail_tracking_mailgun/models/__init__.pyc b/mail_tracking_mailgun/models/__init__.pyc
deleted file mode 100644
index 9203866..0000000
Binary files a/mail_tracking_mailgun/models/__init__.pyc and /dev/null differ
diff --git a/mail_tracking_mailgun/models/ir_mail_server.pyc b/mail_tracking_mailgun/models/ir_mail_server.pyc
deleted file mode 100644
index 46a156d..0000000
Binary files a/mail_tracking_mailgun/models/ir_mail_server.pyc and /dev/null differ
diff --git a/mail_tracking_mailgun/models/mail_tracking_email.pyc b/mail_tracking_mailgun/models/mail_tracking_email.pyc
deleted file mode 100644
index 0b67d9b..0000000
Binary files a/mail_tracking_mailgun/models/mail_tracking_email.pyc and /dev/null differ
diff --git a/mail_tracking_mass_mailing/__init__.pyc b/mail_tracking_mass_mailing/__init__.pyc
deleted file mode 100644
index a1a866a..0000000
Binary files a/mail_tracking_mass_mailing/__init__.pyc and /dev/null differ
diff --git a/mail_tracking_mass_mailing/hooks.pyc b/mail_tracking_mass_mailing/hooks.pyc
deleted file mode 100644
index 468a26f..0000000
Binary files a/mail_tracking_mass_mailing/hooks.pyc and /dev/null differ
diff --git a/mail_tracking_mass_mailing/models/__init__.pyc b/mail_tracking_mass_mailing/models/__init__.pyc
deleted file mode 100644
index 3f98d3c..0000000
Binary files a/mail_tracking_mass_mailing/models/__init__.pyc and /dev/null differ
diff --git a/mail_tracking_mass_mailing/models/mail_mail.pyc b/mail_tracking_mass_mailing/models/mail_mail.pyc
deleted file mode 100644
index 0e0d273..0000000
Binary files a/mail_tracking_mass_mailing/models/mail_mail.pyc and /dev/null differ
diff --git a/mail_tracking_mass_mailing/models/mail_mail_statistics.pyc b/mail_tracking_mass_mailing/models/mail_mail_statistics.pyc
deleted file mode 100644
index f73c44a..0000000
Binary files a/mail_tracking_mass_mailing/models/mail_mail_statistics.pyc and /dev/null differ
diff --git a/mail_tracking_mass_mailing/models/mail_mass_mailing.pyc b/mail_tracking_mass_mailing/models/mail_mass_mailing.pyc
deleted file mode 100644
index 7990618..0000000
Binary files a/mail_tracking_mass_mailing/models/mail_mass_mailing.pyc and /dev/null differ
diff --git a/mail_tracking_mass_mailing/models/mail_mass_mailing_contact.pyc b/mail_tracking_mass_mailing/models/mail_mass_mailing_contact.pyc
deleted file mode 100644
index 3448af1..0000000
Binary files a/mail_tracking_mass_mailing/models/mail_mass_mailing_contact.pyc and /dev/null differ
diff --git a/mail_tracking_mass_mailing/models/mail_tracking_email.pyc b/mail_tracking_mass_mailing/models/mail_tracking_email.pyc
deleted file mode 100644
index 9ab958c..0000000
Binary files a/mail_tracking_mass_mailing/models/mail_tracking_email.pyc and /dev/null differ
diff --git a/mail_tracking_mass_mailing/models/mail_tracking_event.pyc b/mail_tracking_mass_mailing/models/mail_tracking_event.pyc
deleted file mode 100644
index db3cf02..0000000
Binary files a/mail_tracking_mass_mailing/models/mail_tracking_event.pyc and /dev/null differ
diff --git a/smile_access_control/__init__.pyc b/smile_access_control/__init__.pyc
deleted file mode 100644
index 405e7e1..0000000
Binary files a/smile_access_control/__init__.pyc and /dev/null differ
diff --git a/smile_access_control/models/__init__.pyc b/smile_access_control/models/__init__.pyc
deleted file mode 100644
index 651f615..0000000
Binary files a/smile_access_control/models/__init__.pyc and /dev/null differ
diff --git a/smile_access_control/models/res_groups.pyc b/smile_access_control/models/res_groups.pyc
deleted file mode 100644
index 24685a7..0000000
Binary files a/smile_access_control/models/res_groups.pyc and /dev/null differ
diff --git a/smile_access_control/models/res_users.pyc b/smile_access_control/models/res_users.pyc
deleted file mode 100644
index 318e8f5..0000000
Binary files a/smile_access_control/models/res_users.pyc and /dev/null differ
diff --git a/smile_event_event_calendar/__init__.pyc b/smile_event_event_calendar/__init__.pyc
deleted file mode 100644
index 3351229..0000000
Binary files a/smile_event_event_calendar/__init__.pyc and /dev/null differ
diff --git a/smile_event_event_calendar/models/__init__.pyc b/smile_event_event_calendar/models/__init__.pyc
deleted file mode 100644
index 91b563a..0000000
Binary files a/smile_event_event_calendar/models/__init__.pyc and /dev/null differ
diff --git a/smile_event_event_calendar/models/calendar_event.pyc b/smile_event_event_calendar/models/calendar_event.pyc
deleted file mode 100644
index 92246d2..0000000
Binary files a/smile_event_event_calendar/models/calendar_event.pyc and /dev/null differ
diff --git a/smile_event_event_calendar/models/event.pyc b/smile_event_event_calendar/models/event.pyc
deleted file mode 100644
index 561cc8d..0000000
Binary files a/smile_event_event_calendar/models/event.pyc and /dev/null differ