diff --git a/partner_revision/__openerp__.py b/partner_revision/__openerp__.py index 9588a7081..94abbe57d 100644 --- a/partner_revision/__openerp__.py +++ b/partner_revision/__openerp__.py @@ -29,7 +29,7 @@ 'website': 'http://www.camptocamp.com', 'data': ['views/menu.xml', 'views/res_partner_revision_views.xml', - 'views/revision_behavior_views.xml', + 'views/revision_field_rule_views.xml', ], 'test': [], 'installable': True, diff --git a/partner_revision/models/__init__.py b/partner_revision/models/__init__.py index 9a890dbb1..18d75db26 100644 --- a/partner_revision/models/__init__.py +++ b/partner_revision/models/__init__.py @@ -2,4 +2,4 @@ from . import res_partner from . import res_partner_revision -from . import revision_behavior +from . import revision_field_rule diff --git a/partner_revision/models/res_partner_revision.py b/partner_revision/models/res_partner_revision.py index 4ecb3bfd1..b7632254f 100644 --- a/partner_revision/models/res_partner_revision.py +++ b/partner_revision/models/res_partner_revision.py @@ -94,7 +94,7 @@ class ResPartnerRevision(models.Model): change_model = self.env['res.partner.revision.change'] write_values = values.copy() changes = [] - rules = self.env['revision.behavior'].get_rules(record._model._name) + rules = self.env['revision.field.rule'].get_rules(record._model._name) for field in values: rule = rules.get(field) if not rule: @@ -349,12 +349,12 @@ class ResPartnerRevisionChange(models.Model): if not self.env.context.get('__revision_rules'): # by default always write on partner change['state'] = 'done' - elif rule.default_behavior == 'auto': + elif rule.action == 'auto': change['state'] = 'done' - elif rule.default_behavior == 'validate': + elif rule.action == 'validate': change['state'] = 'draft' pop_value = True # change to apply manually - elif rule.default_behavior == 'never': + elif rule.action == 'never': change['state'] = 'cancel' pop_value = True # change never applied return change, pop_value diff --git a/partner_revision/models/revision_behavior.py b/partner_revision/models/revision_field_rule.py similarity index 82% rename from partner_revision/models/revision_behavior.py rename to partner_revision/models/revision_field_rule.py index ab09278c7..91cff6e9d 100644 --- a/partner_revision/models/revision_behavior.py +++ b/partner_revision/models/revision_field_rule.py @@ -23,9 +23,9 @@ from openerp import models, fields, api from openerp.tools.cache import ormcache -class RevisionBehavior(models.Model): - _name = 'revision.behavior' - _description = 'Revision Behavior' +class RevisionFieldRule(models.Model): + _name = 'revision.field.rule' + _description = 'Revision Field Rules' _rec_name = 'field_id' model_id = fields.Many2one(comodel_name='ir.model', @@ -35,9 +35,9 @@ class RevisionBehavior(models.Model): field_id = fields.Many2one(comodel_name='ir.model.fields', string='Field', ondelete='cascade') - default_behavior = fields.Selection( - selection='_selection_default_behavior', - string='Default Behavior', + action = fields.Selection( + selection='_selection_action', + string='Action', help="Auto: always apply a change.\n" "Validate: manually applied by an administrator.\n" "Never: change never applied.", @@ -48,7 +48,7 @@ class RevisionBehavior(models.Model): return self.env.ref('base.model_res_partner').id @api.model - def _selection_default_behavior(self): + def _selection_action(self): return [('auto', 'Auto'), ('validate', 'Validate'), ('never', 'Never'), @@ -62,18 +62,18 @@ class RevisionBehavior(models.Model): @api.model def create(self, vals): - record = super(RevisionBehavior, self).create(vals) + record = super(RevisionFieldRule, self).create(vals) self.clear_caches() return record @api.multi def write(self, vals): - result = super(RevisionBehavior, self).write(vals) + result = super(RevisionFieldRule, self).write(vals) self.clear_caches() return result @api.multi def unlink(self): - result = super(RevisionBehavior, self).unlink() + result = super(RevisionFieldRule, self).unlink() self.clear_caches() return result diff --git a/partner_revision/tests/test_revision_field_type.py b/partner_revision/tests/test_revision_field_type.py index 1e7d64d17..bda7e9d69 100644 --- a/partner_revision/tests/test_revision_field_type.py +++ b/partner_revision/tests/test_revision_field_type.py @@ -30,8 +30,8 @@ class TestRevisionFieldType(RevisionMixin, common.TransactionCase): but we have to ensure that the general revision flows work as expected. """ - def _setup_behavior(self): - RevisionBehavior = self.env['revision.behavior'] + def _setup_rules(self): + RevisionFieldRule = self.env['revision.field.rule'] partner_model_id = self.env.ref('base.model_res_partner').id fields = (('char', 'ref'), ('text', 'comment'), @@ -54,15 +54,15 @@ class TestRevisionFieldType(RevisionMixin, common.TransactionCase): # set attribute such as 'self.field_char' is a # ir.model.fields record of the field res_partner.ref setattr(self, attr_name, field_record) - RevisionBehavior.create({ + RevisionFieldRule.create({ 'model_id': partner_model_id, 'field_id': field_record.id, - 'default_behavior': 'validate', + 'action': 'validate', }) def setUp(self): super(TestRevisionFieldType, self).setUp() - self._setup_behavior() + self._setup_rules() self.partner = self.env['res.partner'].create({ 'name': 'Original Name', 'street': 'Original Street', diff --git a/partner_revision/tests/test_revision_flow.py b/partner_revision/tests/test_revision_flow.py index 2fc18d2f6..76b8ec57a 100644 --- a/partner_revision/tests/test_revision_flow.py +++ b/partner_revision/tests/test_revision_flow.py @@ -41,31 +41,31 @@ class TestRevisionFlow(RevisionMixin, common.TransactionCase): * changes in state 'cancel' or 'done' do not write on the partner """ - def _setup_behavior(self): - RevisionBehavior = self.env['revision.behavior'] + def _setup_rules(self): + RevisionFieldRule = self.env['revision.field.rule'] partner_model_id = self.env.ref('base.model_res_partner').id self.field_name = self.env.ref('base.field_res_partner_name') self.field_street = self.env.ref('base.field_res_partner_street') self.field_street2 = self.env.ref('base.field_res_partner_street2') - RevisionBehavior.create({ + RevisionFieldRule.create({ 'model_id': partner_model_id, 'field_id': self.field_name.id, - 'default_behavior': 'auto', + 'action': 'auto', }) - RevisionBehavior.create({ + RevisionFieldRule.create({ 'model_id': partner_model_id, 'field_id': self.field_street.id, - 'default_behavior': 'validate', + 'action': 'validate', }) - RevisionBehavior.create({ + RevisionFieldRule.create({ 'model_id': partner_model_id, 'field_id': self.field_street2.id, - 'default_behavior': 'never', + 'action': 'never', }) def setUp(self): super(TestRevisionFlow, self).setUp() - self._setup_behavior() + self._setup_rules() self.partner = self.env['res.partner'].create({ 'name': 'X', 'street': 'street X', diff --git a/partner_revision/views/revision_behavior_views.xml b/partner_revision/views/revision_behavior_views.xml deleted file mode 100644 index e9ce1ec76..000000000 --- a/partner_revision/views/revision_behavior_views.xml +++ /dev/null @@ -1,61 +0,0 @@ - - - - - revision.behavior.tree - revision.behavior - - - - - - - - - - - revision.behavior.form - revision.behavior - -
- - - - - - - -
-
-
- - - revision.behavior.search - revision.behavior - - - - - - - - - - - Revision Behavior - ir.actions.act_window - revision.behavior - form - tree,form - - - - -
-
diff --git a/partner_revision/views/revision_field_rule_views.xml b/partner_revision/views/revision_field_rule_views.xml new file mode 100644 index 000000000..f1c2b9b22 --- /dev/null +++ b/partner_revision/views/revision_field_rule_views.xml @@ -0,0 +1,61 @@ + + + + + revision.field.rule.tree + revision.field.rule + + + + + + + + + + + revision.field.rule.form + revision.field.rule + +
+ + + + + + + +
+
+
+ + + revision.field.rule.search + revision.field.rule + + + + + + + + + + + Revision Fields Rules + ir.actions.act_window + revision.field.rule + form + tree,form + + + + +
+