Skip to content
Extraits de code Groupes Projets
Valider f9268d7e rédigé par Benjamin - Le Filament's avatar Benjamin - Le Filament
Parcourir les fichiers

[clean] add pre-commit changes

parent eec13d82
Branches 13.0
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Le mode du fichier est passé de 100755 à 100644
Le mode du fichier est passé de 100755 à 100644
{ {
"name": "CG SCOP - Mail message", "name": "CG SCOP - Mail message",
"summary": "Editable and restricted read mail message for CG SCOP", "summary": "Editable and restricted read mail message for CG SCOP",
"version": "12.0.0.1.0", "version": "13.0.0.1.0",
"author": "Le Filament", "author": "Le Filament",
"license": "AGPL-3", "license": "AGPL-3",
"application": False, "application": False,
'installable': True, "installable": True,
"depends": [ "depends": [
"cgscop_partner", "cgscop_partner",
"mail_edit", "mail_edit",
...@@ -16,6 +16,6 @@ ...@@ -16,6 +16,6 @@
"views/mail_message_views.xml", "views/mail_message_views.xml",
], ],
"qweb": [ "qweb": [
'static/src/xml/mail_widget.xml', "static/src/xml/mail_widget.xml",
], ],
} }
# © 2022 Le Filament (<http://www.le-filament.com>) # © 2022 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import models, fields from odoo import fields, models
class MailMessage(models.Model): class MailMessage(models.Model):
_inherit = "mail.message" _inherit = "mail.message"
ur_id = fields.Many2one(related="author_id.ur_id") ur_id = fields.Many2one(related="author_id.ur_id")
restricted = fields.Boolean('Visibilité restreinte', default=False) restricted = fields.Boolean("Visibilité restreinte", default=False)
...@@ -8,8 +8,6 @@ class MailThread(models.AbstractModel): ...@@ -8,8 +8,6 @@ class MailThread(models.AbstractModel):
_inherit = "mail.thread" _inherit = "mail.thread"
def _message_post_after_hook(self, new_message, values): def _message_post_after_hook(self, new_message, values):
if self.env.context.get('restricted', False): if self.env.context.get("restricted", False):
new_message.write({ new_message.write({"restricted": self.env.context["restricted"]})
'restricted': self.env.context['restricted']
})
return super()._message_post_after_hook(new_message, values) return super()._message_post_after_hook(new_message, values)
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
\ No newline at end of file
...@@ -4,13 +4,20 @@ ...@@ -4,13 +4,20 @@
<odoo> <odoo>
<record id="cgscop_partner.group_cg_administrator" model="res.groups"> <record id="cgscop_partner.group_cg_administrator" model="res.groups">
<field name="implied_ids" eval="[(4, ref('mail_edit.group_mail_edit_superuser'))]"/> <field
name="implied_ids"
eval="[(4, ref('mail_edit.group_mail_edit_superuser'))]"
/>
</record> </record>
<record model="ir.rule" id="mail_message_ur_rule"> <record model="ir.rule" id="mail_message_ur_rule">
<field name="name">mail_message_ur_rule: user can only read message from own ur if restricted</field> <field
name="name"
>mail_message_ur_rule: user can only read message from own ur if restricted</field>
<field name="model_id" ref="model_mail_message" /> <field name="model_id" ref="model_mail_message" />
<field name="domain_force">['|', '&amp;', ('ur_id', '=', user.ur_id.id), ('restricted', '=', True), ('restricted', '=', False)]</field> <field
name="domain_force"
>['|', '&amp;', ('ur_id', '=', user.ur_id.id), ('restricted', '=', True), ('restricted', '=', False)]</field>
<field name="groups" eval="[(6, 0, [ref('base.group_user')])]" /> <field name="groups" eval="[(6, 0, [ref('base.group_user')])]" />
<field name="perm_read" eval="True" /> <field name="perm_read" eval="True" />
<field name="perm_write" eval="True" /> <field name="perm_write" eval="True" />
...@@ -22,7 +29,10 @@ ...@@ -22,7 +29,10 @@
<field name="name">mail_message_ur_rule: admin can read all message</field> <field name="name">mail_message_ur_rule: admin can read all message</field>
<field name="model_id" ref="model_mail_message" /> <field name="model_id" ref="model_mail_message" />
<field name="domain_force">[(1,'=',1)]</field> <field name="domain_force">[(1,'=',1)]</field>
<field name="groups" eval="[(6, 0, [ref('cgscop_partner.group_cg_administrator')])]"/> <field
name="groups"
eval="[(6, 0, [ref('cgscop_partner.group_cg_administrator')])]"
/>
<field name="perm_read" eval="True" /> <field name="perm_read" eval="True" />
<field name="perm_write" eval="True" /> <field name="perm_write" eval="True" />
<field name="perm_create" eval="True" /> <field name="perm_create" eval="True" />
......
odoo.define('cgscop_mail_message.MailMessage',function(require){ odoo.define("cgscop_mail_message.MailMessage", function (require) {
"use strict"; "use strict";
var core = require('web.core'); var core = require("web.core");
var qweb = core.qweb; var qweb = core.qweb;
var BasicComposer = require('mail.composer.Basic'); var BasicComposer = require("mail.composer.Basic");
BasicComposer.include({ BasicComposer.include({
/** /**
* Override function to add field restricted * Override function to add field restricted
*/ */
_preprocessMessage: function () { _preprocessMessage: function () {
// Removing unwanted extra spaces from message // Removing unwanted extra spaces from message
var value = _.escape(this.$input.val()).trim(); var value = _.escape(this.$input.val()).trim();
value = value.replace(/(\r|\n){2,}/g, '<br/><br/>'); value = value.replace(/(\r|\n){2,}/g, "<br/><br/>");
value = value.replace(/(\r|\n)/g, '<br/>'); value = value.replace(/(\r|\n)/g, "<br/>");
// prevent html space collapsing // Prevent html space collapsing
value = value.replace(/ /g, '&nbsp;').replace(/([^>])&nbsp;([^<])/g, '$1 $2'); value = value
var commands = this.options.commandsEnabled ? .replace(/ /g, "&nbsp;")
this._mentionManager.getListenerSelection('/') : .replace(/([^>])&nbsp;([^<])/g, "$1 $2");
[]; var commands = this.options.commandsEnabled
if (this.$('#oe_restricted_message').length) { ? this._mentionManager.getListenerSelection("/")
var is_restricted = this.$('#oe_restricted_message')[0].checked : [];
if (this.$("#oe_restricted_message").length) {
var is_restricted = this.$("#oe_restricted_message")[0].checked;
} else { } else {
var is_restricted = false var is_restricted = false;
} }
return $.when({ return $.when({
content: this._mentionManager.generateLinks(value), content: this._mentionManager.generateLinks(value),
attachment_ids: _.pluck(this.get('attachment_ids'), 'id'), attachment_ids: _.pluck(this.get("attachment_ids"), "id"),
partner_ids: _.uniq(_.pluck(this._mentionManager.getListenerSelection('@'), 'id')), partner_ids: _.uniq(
canned_response_ids: _.uniq(_.pluck(this._mentionManager.getListenerSelections()[':'], 'id')), _.pluck(this._mentionManager.getListenerSelection("@"), "id")
channel_ids: _.uniq(_.pluck(this._mentionManager.getListenerSelection('#'), 'id')), ),
canned_response_ids: _.uniq(
_.pluck(this._mentionManager.getListenerSelections()[":"], "id")
),
channel_ids: _.uniq(
_.pluck(this._mentionManager.getListenerSelection("#"), "id")
),
command: commands.length > 0 ? commands[0].name : undefined, command: commands.length > 0 ? commands[0].name : undefined,
restricted: is_restricted restricted: is_restricted,
}); });
}, },
}); });
var Thread = require('mail.model.DocumentThread'); var Thread = require("mail.model.DocumentThread");
Thread.include({ Thread.include({
_postMessage: function (data) { _postMessage: function (data) {
data.context.restricted = data.restricted; data.context.restricted = data.restricted;
return this._super(data); return this._super(data);
}, },
}); });
}); });
...@@ -12,7 +12,9 @@ ...@@ -12,7 +12,9 @@
<!-- New boolean button in composer --> <!-- New boolean button in composer -->
<div class="o_composer_container"> <div class="o_composer_container">
<input type="checkbox" id="oe_restricted_message" /> <input type="checkbox" id="oe_restricted_message" />
<label for="oe_restricted_message">Restreindre le message à mon UR</label> <label
for="oe_restricted_message"
>Restreindre le message à mon UR</label>
</div> </div>
</t> </t>
</t> </t>
......
<?xml version="1.0" ?> <?xml version="1.0" ?>
<!-- Copyright 2022 Le Filament <!-- Copyright 2022 Le Filament
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). --> License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo> <odoo>
<template id="cgscop_assets_backend" name="cgscop_mail_message_assets" inherit_id="web.assets_backend"> <template
id="cgscop_assets_backend"
name="cgscop_mail_message_assets"
inherit_id="web.assets_backend"
>
<xpath expr="." position="inside"> <xpath expr="." position="inside">
<script type="text/javascript" src="/cgscop_mail_message/static/src/js/mail_message.js"/> <script
type="text/javascript"
src="/cgscop_mail_message/static/src/js/mail_message.js"
/>
</xpath> </xpath>
</template> </template>
......
...@@ -11,7 +11,10 @@ ...@@ -11,7 +11,10 @@
<field name="arch" type="xml"> <field name="arch" type="xml">
<xpath expr="//field[@name='body']" position="before"> <xpath expr="//field[@name='body']" position="before">
<group> <group>
<field name="restricted" string="Restreindre le message à mon UR"/> <field
name="restricted"
string="Restreindre le message à mon UR"
/>
</group> </group>
</xpath> </xpath>
</field> </field>
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter