You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.9 KiB

  1. # -*- coding: utf-8 -*-
  2. # Copyright 2016 Odoo SA <https://www.odoo.com>
  3. # Copyright 2018 Eficent <http://www.eficent.com>
  4. # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).
  5. from openerp import api, models, fields, tools, _
  6. class MailActivityType(models.Model):
  7. _inherit = "mail.activity.type"
  8. category = fields.Selection(selection_add=[('meeting', 'Meeting')])
  9. class MailActivity(models.Model):
  10. _inherit = "mail.activity"
  11. calendar_event_id = fields.Many2one('calendar.event',
  12. string="Calendar Meeting",
  13. ondelete='cascade')
  14. @api.multi
  15. def action_create_calendar_event(self):
  16. self.ensure_one()
  17. action = self.env.ref('calendar.action_calendar_event').read()[0]
  18. action['context'] = {
  19. 'default_activity_type_id': self.activity_type_id.id,
  20. 'default_res_id': self.env.context.get('default_res_id'),
  21. 'default_res_model': self.env.context.get('default_res_model'),
  22. 'default_name': self.summary,
  23. 'default_description': self.note and tools.html2plaintext(
  24. self.note) or '',
  25. 'default_activity_ids': [(6, 0, self.ids)],
  26. }
  27. return action
  28. def action_feedback(self, feedback=False):
  29. events = self.mapped('calendar_event_id')
  30. res = super(MailActivity, self).action_feedback(feedback)
  31. if feedback:
  32. for event in events:
  33. description = event.description
  34. description = '%s\n%s%s' % (description or '', _(
  35. "Feedback: "), feedback)
  36. event.write({'description': description})
  37. return res
  38. @api.one
  39. def unlink_w_meeting(self):
  40. events = self.mapped('calendar_event_id')
  41. res = self.unlink()
  42. events.unlink()
  43. return res