diff --git a/partner_changeset/README.rst b/partner_changeset/README.rst
index 6c970ce38..a9fdce12e 100644
--- a/partner_changeset/README.rst
+++ b/partner_changeset/README.rst
@@ -123,7 +123,7 @@ Screenshot:
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
- :target: https://runbot.odoo-community.org/runbot/134/9.0
+ :target: https://runbot.odoo-community.org/runbot/134/10.0
Known issues / Roadmap
======================
diff --git a/partner_changeset/demo/changeset_field_rule.xml b/partner_changeset/demo/changeset_field_rule.xml
index 6b69f84a4..05d265b6d 100644
--- a/partner_changeset/demo/changeset_field_rule.xml
+++ b/partner_changeset/demo/changeset_field_rule.xml
@@ -8,7 +8,7 @@
- validate
+ auto
@@ -38,7 +38,7 @@
- validate
+ auto
diff --git a/partner_changeset/models/changeset_field_rule.py b/partner_changeset/models/changeset_field_rule.py
index 1abc03e06..c2e504e69 100644
--- a/partner_changeset/models/changeset_field_rule.py
+++ b/partner_changeset/models/changeset_field_rule.py
@@ -2,7 +2,7 @@
# Copyright 2015-2017 Camptocamp SA
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-from odoo import models, fields, api
+from odoo import api, fields, models
from odoo.tools.cache import ormcache
diff --git a/partner_changeset/models/res_partner.py b/partner_changeset/models/res_partner.py
index f64916fc8..c29488a4a 100644
--- a/partner_changeset/models/res_partner.py
+++ b/partner_changeset/models/res_partner.py
@@ -2,7 +2,7 @@
# Copyright 2015-2017 Camptocamp SA
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-from odoo import models, fields, api
+from odoo import api, fields, models
class ResPartner(models.Model):
@@ -17,13 +17,13 @@ class ResPartner(models.Model):
compute='_count_pending_changesets',
search='_search_count_pending_changesets')
- @api.one
@api.depends('changeset_ids', 'changeset_ids.state')
def _count_pending_changesets(self):
- changesets = self.changeset_ids.filtered(
- lambda rev: rev.state == 'draft' and rev.partner_id == self
- )
- self.count_pending_changesets = len(changesets)
+ for rec in self:
+ changesets = rec.changeset_ids.filtered(
+ lambda rev: rev.state == 'draft' and rev.partner_id == rec
+ )
+ rec.count_pending_changesets = len(changesets)
@api.multi
def write(self, values):
diff --git a/partner_changeset/models/res_partner_changeset.py b/partner_changeset/models/res_partner_changeset.py
index 43ee69c95..464cf792e 100644
--- a/partner_changeset/models/res_partner_changeset.py
+++ b/partner_changeset/models/res_partner_changeset.py
@@ -6,7 +6,8 @@ from itertools import groupby
from lxml import etree
from operator import attrgetter
-from odoo import models, fields, api, exceptions, _
+from odoo import api, fields, models
+from odoo import exceptions, _
from odoo.osv.orm import setup_modifiers
# sentinel object to be sure that no empty value was passed to
@@ -52,14 +53,14 @@ class ResPartnerChangeset(models.Model):
models = self.env['ir.model'].search([])
return [(model.model, model.name) for model in models]
- @api.one
@api.depends('change_ids', 'change_ids.state')
def _compute_state(self):
- if all(change.state in ('done', 'cancel') for change
- in self.mapped('change_ids')):
- self.state = 'done'
- else:
- self.state = 'draft'
+ for rec in self:
+ if all(change.state in ('done', 'cancel') for change
+ in rec.mapped('change_ids')):
+ rec.state = 'done'
+ else:
+ rec.state = 'draft'
@api.multi
def apply(self):
@@ -69,7 +70,7 @@ class ResPartnerChangeset(models.Model):
def cancel(self):
self.mapped('change_ids').cancel()
- @api.multi
+ @api.model
def add_changeset(self, record, values):
""" Add a changeset on a partner
@@ -306,25 +307,25 @@ class ResPartnerChangesetChange(models.Model):
_old_value_fields +
_new_value_fields)
- @api.one
@api.depends('changeset_id.partner_id')
def _compute_origin_values(self):
- field_name = self.get_field_for_type(self.field_id, 'origin')
- if self.state == 'draft':
- value = self.changeset_id.partner_id[self.field_id.name]
- else:
- old_field = self.get_field_for_type(self.field_id, 'old')
- value = self[old_field]
- setattr(self, field_name, value)
+ for rec in self:
+ field_name = rec.get_field_for_type(rec.field_id, 'origin')
+ if rec.state == 'draft':
+ value = rec.changeset_id.partner_id[rec.field_id.name]
+ else:
+ old_field = rec.get_field_for_type(rec.field_id, 'old')
+ value = rec[old_field]
+ setattr(rec, field_name, value)
- @api.one
@api.depends(lambda self: self._value_fields)
def _compute_value_display(self):
- for prefix in ('origin', 'new'):
- value = getattr(self, 'get_%s_value' % prefix)()
- if self.field_id.ttype == 'many2one' and value:
- value = value.display_name
- setattr(self, '%s_value_display' % prefix, value)
+ for rec in self:
+ for prefix in ('origin', 'new'):
+ value = getattr(rec, 'get_%s_value' % prefix)()
+ if rec.field_id.ttype == 'many2one' and value:
+ value = value.display_name
+ setattr(rec, '%s_value_display' % prefix, value)
@api.model
def get_field_for_type(self, field, prefix):
@@ -369,7 +370,8 @@ class ResPartnerChangesetChange(models.Model):
"""
changes_ok = self.browse()
key = attrgetter('changeset_id')
- for changeset, changes in groupby(self.sorted(key=key), key=key):
+ for changeset, changes in groupby(self.with_context(
+ __no_changeset=True).sorted(key=key), key=key):
values = {}
partner = changeset.partner_id
for change in changes:
@@ -405,7 +407,7 @@ class ResPartnerChangesetChange(models.Model):
'this one.')
)
- partner.with_context(__no_changeset=True).write(values)
+ partner.write(values)
changes_ok.write({'state': 'done'})
@@ -455,7 +457,7 @@ class ResPartnerChangesetChange(models.Model):
else:
return value
- @api.multi
+ @api.model
def _prepare_changeset_change(self, record, rule, field_name, value):
""" Prepare data for a changeset change
@@ -494,6 +496,7 @@ class ResPartnerChangesetChange(models.Model):
return change, pop_value
+ @api.model
def fields_view_get(self, *args, **kwargs):
_super = super(ResPartnerChangesetChange, self)
result = _super.fields_view_get(*args, **kwargs)