diff --git a/__manifest__.py b/__manifest__.py
index 307b2e2..7f377d9 100644
--- a/__manifest__.py
+++ b/__manifest__.py
@@ -25,6 +25,7 @@
# always loaded
'data': [
'security/ir.model.access.csv',
+ 'security/security.xml',
'views/qualifier.xml',
'views/address.xml',
'views/email.xml',
diff --git a/models/operation.py b/models/operation.py
index 37576f1..1dea4d5 100644
--- a/models/operation.py
+++ b/models/operation.py
@@ -28,14 +28,24 @@ class opendons_operation(models.Model):
_name = 'opendons.operation'
_description = 'opération marketing : mailing, emailing evenements'
_inherit = ['mail.thread']
+ _check_company_auto = True
#_order = "__last_update desc"
#code=fields.Char(string='Code',required=True, translate=True,track_visibility='always')
name=fields.Char(string='Name',required=True, translate=True,copy=False,default='operation',track_visibility='always')
partner_count = fields.Integer(string="count",readonly=True)
- exported_date=fields.Date(string='Exported Date',track_visibility='always')
+ exported_date=fields.Date(string='Exported Date',track_visibility='always', readonly=True)
#end_date=fields.Date(string='Date end',required=True, translate=True,track_visibility='always')
partner_ids = fields.Many2many('res.partner', 'partner_operation_rel', 'partner_id', 'operation_id', string='partners')
#contacts exclus de l'opération
+ company_id = fields.Many2one(
+ "res.company",
+ string="Company",
+ required=True,
+ states={"exported": [("readonly", True)]},
+ default=lambda self: self.env.company
+
+ )
+
partner_excl_ids=fields.Many2many('res.partner', 'partner_excl_operation_rel', 'partner_id', 'operation_id', string='excluded partners')
chanel=fields.Selection([
('mail', 'Mailing'),
@@ -62,10 +72,10 @@ class opendons_operation(models.Model):
ondelete='restrict',
default=_default_currency
)
- _sql_constraints = [
- ('name_uniq', 'unique (name)', "Name already exists !")
+ # _sql_constraints = [
+ # ('name_uniq', 'unique (name)', "Name already exists !")
- ]
+ # ]
number_of_sending = fields.Integer(
compute='_compute_number_of_sending',
@@ -192,11 +202,7 @@ class opendons_operation(models.Model):
segexcl=self.env['opendons.segment'].search(['&',('operation_id','=',self.id),('exclusion','=',True)])
segments=self.env['opendons.segment'].search(['&',('operation_id','=',self.id),('exclusion','=',False)],order='sequence asc')
- #[["id","not in",[1,3,7,8,10]]]
- #["&",["id","not in",[22]],["id","not in",[1,3,7,8,10]]]
-
- #List of Domain operators: ! (Not), | (Or), & (And)
- #List of Term operators: '=', '!=', '<=', '<', '>', '>=', '=?', '=like', '=ilike', 'like', 'not like', 'ilike', 'not ilike', 'in', 'not in', 'child_of'
+
i=1
@@ -246,7 +252,7 @@ class opendons_operation(models.Model):
sg_1=sg
i=i+1
- self.exported_date=fields.Date.context_today(self)
+ self.exported_date=fields.Date.context_today(self, readonly=True)
return True
@@ -254,8 +260,15 @@ class opendons_operation(models.Model):
@api.model
def create(self,vals):
-
+
+ op=self.env['opendons.operation'].search(['&',('name','=',vals['name']),('company_id','=',int(self.env.user.company_id))])
+
+ if "company_id" in vals:
+ self = self.with_company(vals["company_id"])
+
+ if op : raise Warning('name already exist')
res=super(opendons_operation, self).create(vals)
+ raise Warning(res.company_id)
#création du segment d'exclusion
vals2={}
vals2['operation_id']=res.id
diff --git a/models/payment_batch.py b/models/payment_batch.py
index 3ab28b3..0ff8a9f 100644
--- a/models/payment_batch.py
+++ b/models/payment_batch.py
@@ -91,11 +91,14 @@ class opendons_payment_batch(models.Model):
currency_field='currency_id',
)
- # payment_lines = fields.One2many(
- # 'opendons_payment_batch.lines',
- # 'payment_batch_id',
- # string='Payment lines',
- # track_visibility='onchange')
+
+ company_id = fields.Many2one(
+ "res.company",
+ string="Company",
+ required=True,
+ default=lambda self: self.env.company
+
+ )
@api.onchange('operation_id')
def _onchange_operation_id(self):
res = {}
diff --git a/models/qualifier.py b/models/qualifier.py
index 34e1198..5ad9dfd 100644
--- a/models/qualifier.py
+++ b/models/qualifier.py
@@ -16,7 +16,13 @@ class opendons_qualifierCategory(models.Model):
name = fields.Char('Name', required=True)
order= fields.Integer()
description = fields.Text()
-
+ company_id = fields.Many2one(
+ "res.company",
+ string="Company",
+ required=True,
+ default=lambda self: self.env.company
+
+ )
@api.constrains('name')
def _check_name(self):
@@ -42,7 +48,13 @@ class opendons_qualifier(models.Model):
category_id = fields.Many2one(
'opendons_qualifier.category', string='Category', tracking=True,
required=True)
-
+ company_id = fields.Many2one(
+ "res.company",
+ string="Company",
+ required=True,
+ default=lambda self: self.env.company
+
+ )
@api.model
def create(self,vals):
diff --git a/models/relationship.py b/models/relationship.py
index 74bd649..3f0a2e9 100644
--- a/models/relationship.py
+++ b/models/relationship.py
@@ -19,7 +19,13 @@ class opendons_relationshipType(models.Model):
string='Nature',
required=True,
track_visibility='onchange')
-
+ company_id = fields.Many2one(
+ "res.company",
+ string="Company",
+ required=True,
+ default=lambda self: self.env.company
+
+ )
@api.constrains('name')
def _check_name(self):
@@ -36,7 +42,13 @@ class opendons_relationshipNature(models.Model):
type_id = fields.Many2one(
'opendons_relationship.type', string='Type', tracking=True,
required=True)
-
+ company_id = fields.Many2one(
+ "res.company",
+ string="Company",
+ required=True,
+ default=lambda self: self.env.company
+
+ )
@api.constrains('name')
def _check_name(self):
diff --git a/models/returnmail.py b/models/returnmail.py
index edfd4fb..bca1d3e 100644
--- a/models/returnmail.py
+++ b/models/returnmail.py
@@ -26,6 +26,13 @@ class opendons_returnmail(models.Model):
string='NPAI',
track_visibility='onchange')
#related_npai_partner_id = fields.Many2one(related='returnmailnpai_ids.partner_id')
+ company_id = fields.Many2one(
+ "res.company",
+ string="Company",
+ required=True,
+ default=lambda self: self.env.company
+
+ )
def action_ajouter_npai(self):
data=self.return_input.split(';')
diff --git a/security/security.xml b/security/security.xml
new file mode 100644
index 0000000..e545d91
--- /dev/null
+++ b/security/security.xml
@@ -0,0 +1,54 @@
+
+
+
+ Operation Multi-company
+
+
+ [('company_id', 'in', company_ids)]
+
+
+
+
+ opendons_payment_batch Multi-company
+
+
+ [('company_id', 'in', company_ids)]
+
+
+
+ opendons_qualifierCategory Multi-company
+
+
+ [('company_id', 'in', company_ids)]
+
+
+
+ opendons_qualifier Multi-company
+
+
+ [('company_id', 'in', company_ids)]
+
+
+
+
+ opendons_relationship.type Multi-company
+
+
+ [('company_id', 'in', company_ids)]
+
+
+
+ opendons_relationship.nature Multi-company
+
+
+ [('company_id', 'in', company_ids)]
+
+
+
+ opendons_returnmail Multi-company
+
+
+ [('company_id', 'in', company_ids)]
+
+
+
\ No newline at end of file
diff --git a/views/operation.xml b/views/operation.xml
index def9dfa..ec97463 100644
--- a/views/operation.xml
+++ b/views/operation.xml
@@ -30,6 +30,7 @@
+
@@ -261,6 +262,7 @@
Opérations
opendons.operation
tree,form,pivot,graph
+
diff --git a/views/partner.xml b/views/partner.xml
index 823ad40..bd3cde0 100644
--- a/views/partner.xml
+++ b/views/partner.xml
@@ -190,8 +190,6 @@
-