diff --git a/models/mail_activity.py b/models/mail_activity.py index b716c582e9b880f26d385a66c32abf81a48425dc..28ae10e5c56c5ca69912e76eee64e855dc52526a 100644 --- a/models/mail_activity.py +++ b/models/mail_activity.py @@ -1,28 +1,45 @@ # © 2019 Le Filament (<http://www.le-filament.com>) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from odoo import api, models +from odoo import api, fields, models class MailActivity(models.Model): _inherit = "mail.activity" - # ------------------------------------------------------ - # Onchange functions - # ------------------------------------------------------ - @api.onchange("activity_type_id") - def _onchange_activity_type_id(self): + activity_type_id = fields.Many2one( + domain="""[ + '|', ('res_model_id', '=', False), ('res_model_id', '=', res_model_id), + '|', ('ur_id','=',False), ('ur_id','=',context.get('current_ur_id', False)) + ] + """, + ) + + @api.model + def get_activity_data(self, res_model, domain): """ - Renvoie un domaine lié aux activités de l'UR de l'utilisateur + Surcharge la fonction parente pour n'afficher que les activités liées à l'UR + dans la vue Activité """ - domain = { - "domain": { - "activity_type_id": [ - ("ur_id", "=", self.env.company.ur_id.id), - "|", - ("res_model_id", "=", False), - ("res_model_id", "=", self.res_model_id), - ] - } - } - return domain + result = super(MailActivity, self).get_activity_data(res_model, domain) + activity_type_infos = [] + activity_type_ids = self.env["mail.activity.type"].search( + [ + "|", + ("res_model_id.model", "=", res_model), + ("res_model_id", "=", False), + "|", + ("ur_id", "=", False), + ("ur_id", "=", self.env.context.get("current_ur_id", False)), + ] + ) + for elem in sorted(activity_type_ids, key=lambda item: item.sequence): + mail_template_info = [] + for mail_template_id in elem.mail_template_ids: + mail_template_info.append( + {"id": mail_template_id.id, "name": mail_template_id.name} + ) + activity_type_infos.append([elem.id, elem.name, mail_template_info]) + + result["activity_types"] = activity_type_infos + return result diff --git a/security/security_rules.xml b/security/security_rules.xml index 06c3a3c365dad33e9474f05384cdbc997625904b..5988d6b471b7ea65d307761b992517652ce5f80b 100644 --- a/security/security_rules.xml +++ b/security/security_rules.xml @@ -226,13 +226,13 @@ </record> - <record id="mail_activity_type_rule_admin" model="ir.rule"> - <field name="name">mail activity type rule administrator</field> + <record id="mail_activity_type_rule" model="ir.rule"> + <field name="name">mail activity type rule</field> <field name="model_id" ref="mail.model_mail_activity_type" /> <field name="domain_force" >['|', ('ur_id','=',False), ('ur_id','=',user.current_ur_id.id)]</field> - <field name="perm_read" eval="True" /> + <field name="perm_read" eval="False" /> <field name="perm_write" eval="True" /> <field name="perm_create" eval="True" /> <field name="perm_unlink" eval="True" /> diff --git a/views/scop_period_views.xml b/views/scop_period_views.xml index 1e806ae2f4a31be72ef6bbf2b9f703c8ee30292e..f6a42a8fe68f42dd4086bf3168c543b94bb2c696 100644 --- a/views/scop_period_views.xml +++ b/views/scop_period_views.xml @@ -104,7 +104,6 @@ options="{'no_open': True, 'no_create': True}" /> <field name="number" /> - <field name="start" /> <field name="end" /> <field name="end_reason_id"