Browse Source

Rename model revision.behavior to revision.field.rule

pull/208/head
Guewen Baconnier 10 years ago
parent
commit
d715129f3b
  1. 2
      partner_revision/__openerp__.py
  2. 2
      partner_revision/models/__init__.py
  3. 8
      partner_revision/models/res_partner_revision.py
  4. 20
      partner_revision/models/revision_field_rule.py
  5. 10
      partner_revision/tests/test_revision_field_type.py
  6. 18
      partner_revision/tests/test_revision_flow.py
  7. 61
      partner_revision/views/revision_behavior_views.xml
  8. 61
      partner_revision/views/revision_field_rule_views.xml

2
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,

2
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

8
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

20
partner_revision/models/revision_behavior.py → 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

10
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',

18
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',

61
partner_revision/views/revision_behavior_views.xml

@ -1,61 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="0">
<record id="view_revision_behavior_tree" model="ir.ui.view">
<field name="name">revision.behavior.tree</field>
<field name="model">revision.behavior</field>
<field name="arch" type="xml">
<tree string="Revision Behavior">
<field name="model_id"/>
<field name="field_id"/>
<field name="default_behavior"/>
</tree>
</field>
</record>
<record id="view_revision_behavior_form" model="ir.ui.view">
<field name="name">revision.behavior.form</field>
<field name="model">revision.behavior</field>
<field name="arch" type="xml">
<form string="Revision Behavior">
<sheet string="Revision Behavior">
<group>
<field name="model_id" invisible="1"/>
<field name="field_id"
domain="[('model_id', '=', model_id),
('ttype', 'in', ('char', 'selection', 'date', 'datetime', 'float', 'integer', 'text', 'boolean', 'many2one')),
('readonly', '=', False)]"/>
<field name="default_behavior"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="view_revision_behavior_search" model="ir.ui.view">
<field name="name">revision.behavior.search</field>
<field name="model">revision.behavior</field>
<field name="arch" type="xml">
<search string="Revision Behavior">
<field name="model_id"/>
<field name="field_id"/>
<field name="default_behavior"/>
</search>
</field>
</record>
<record model="ir.actions.act_window" id="action_revision_behavior_view">
<field name="name">Revision Behavior</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">revision.behavior</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="search_view_id" ref="view_revision_behavior_search"/>
</record>
<menuitem id="menu_revision_behavior"
parent="menu_revision"
sequence="20"
action="action_revision_behavior_view"/>
</data>
</openerp>

61
partner_revision/views/revision_field_rule_views.xml

@ -0,0 +1,61 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="0">
<record id="view_revision_field_rule_tree" model="ir.ui.view">
<field name="name">revision.field.rule.tree</field>
<field name="model">revision.field.rule</field>
<field name="arch" type="xml">
<tree string="Revision Fields Rules">
<field name="model_id"/>
<field name="field_id"/>
<field name="action"/>
</tree>
</field>
</record>
<record id="view_revision_field_rule_form" model="ir.ui.view">
<field name="name">revision.field.rule.form</field>
<field name="model">revision.field.rule</field>
<field name="arch" type="xml">
<form string="Revision Fields Rules">
<sheet string="Revision Fields Rules">
<group>
<field name="model_id" invisible="1"/>
<field name="field_id"
domain="[('model_id', '=', model_id),
('ttype', 'in', ('char', 'selection', 'date', 'datetime', 'float', 'integer', 'text', 'boolean', 'many2one')),
('readonly', '=', False)]"/>
<field name="action"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="view_revision_field_rule_search" model="ir.ui.view">
<field name="name">revision.field.rule.search</field>
<field name="model">revision.field.rule</field>
<field name="arch" type="xml">
<search string="Revision Fields Rules">
<field name="model_id"/>
<field name="field_id"/>
<field name="action"/>
</search>
</field>
</record>
<record model="ir.actions.act_window" id="action_revision_field_rule_view">
<field name="name">Revision Fields Rules</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">revision.field.rule</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="search_view_id" ref="view_revision_field_rule_search"/>
</record>
<menuitem id="menu_revision_field_rule"
parent="menu_revision"
sequence="20"
action="action_revision_field_rule_view"/>
</data>
</openerp>
Loading…
Cancel
Save