diff --git a/trytond/ir/module/module.xml b/trytond/ir/module/module.xml
index 8ff8d00332..7d72fc7d14 100644
--- a/trytond/ir/module/module.xml
+++ b/trytond/ir/module/module.xml
@@ -35,19 +35,20 @@
+ type="object" states="state == 'uninstalled'"/>
+ type="object" states="state == 'to install'"/>
+ type="object" states="state == 'installed'"/>
+ type="object" states="state == 'to remove'"/>
+ type="object" states="state == 'installed'"/>
+ type="object" states="state == 'to upgrade'"/>
diff --git a/trytond/res/request.py b/trytond/res/request.py
index 8027b8ef8b..07e5bf2da6 100644
--- a/trytond/res/request.py
+++ b/trytond/res/request.py
@@ -18,9 +18,7 @@ class Request(OSV):
_columns = {
'create_date': fields.DateTime('Created date', readonly=True),
'name': fields.Char('Subject', states={
- 'waiting': [('readonly', True)],
- 'active': [('readonly', True)],
- 'closed': [('readonly', True)],
+ 'readonly': "state in ('waiting', 'active', 'closed')",
}, required=True, size=128),
'active': fields.Boolean('Active'),
'priority': fields.Selection([
@@ -28,26 +26,22 @@ class Request(OSV):
('1', 'Normal'),
('2', 'High'),
], 'Priority', states={
- 'waiting': [('readonly', True)],
- 'closed': [('readonly', True)],
+ 'readonly': "state in ('waiting', 'closed')",
}, required=True),
'act_from': fields.Many2One('res.user', 'From', required=True,
readonly=True, states={
- 'closed': [('readonly', True)],
+ 'readonly': "state == 'closed'",
}),
'act_to': fields.Many2One('res.user', 'To', required=True,
states={
- 'waiting': [('readonly', True)],
- 'closed': [('readonly', True)],
+ 'readonly': "state in ('waiting', 'closed')",
}),
'body': fields.Text('Request', states={
- 'waiting': [('readonly', True)],
- 'closed': [('readonly', True)],
+ 'readonly': "state in ('waiting', 'closed')",
}),
'date_sent': fields.DateTime('Date', readonly=True),
'trigger_date': fields.DateTime('Trigger Date', states={
- 'waiting': [('readonly', True)],
- 'closed': [('readonly', True)],
+ 'readonly': "state in ('waiting', 'closed')",
}),
# 'ref_partner_id': fields.Many2One('res.partner', 'Partner Ref.',
# states={
@@ -56,11 +50,11 @@ class Request(OSV):
#TODO: use one2many instead limit number of reference
'ref_doc1': fields.Reference('Document Ref 1', selection=_links_get,
size=128, states={
- 'closed': [('readonly', True)],
+ 'readonly': "state == 'closed'",
}),
'ref_doc2': fields.Reference('Document Ref 2', selection=_links_get,
size=128, states={
- 'closed': [('readonly', True)],
+ 'readonly': "state == 'closed'",
}),
'state': fields.Selection([
('draft', 'draft'),
@@ -153,23 +147,14 @@ class RequestHistory(OSV):
_name = 'res.request.history'
_description = __doc__
_columns = {
- 'name': fields.Char('Summary', size=128, states={
- 'active': [('readonly', True)],
- 'waiting': [('readonly', True)],
- }, required=True),
+ 'name': fields.Char('Summary', size=128, required=True),
'req_id': fields.Many2One('res.request', 'Request', required=True,
ondelete='cascade', select=True),
'act_from': fields.Many2One('res.user', 'From', required=True,
readonly=True),
- 'act_to': fields.Many2One('res.user', 'To', required=True, states={
- 'waiting': [('readonly', True)],
- }),
- 'body': fields.Text('Body', states={
- 'waiting': [('readonly', True)],
- }),
- 'date_sent': fields.DateTime('Date sent', states={
- 'waiting': [('readonly', True)],
- }, required=True)
+ 'act_to': fields.Many2One('res.user', 'To', required=True),
+ 'body': fields.Text('Body'),
+ 'date_sent': fields.DateTime('Date sent', required=True)
}
_defaults = {
'name': lambda *a: 'NoName',
diff --git a/trytond/res/request.xml b/trytond/res/request.xml
index a85f0b34bb..74ffdfd02d 100644
--- a/trytond/res/request.xml
+++ b/trytond/res/request.xml
@@ -41,9 +41,9 @@
-
-
@@ -60,7 +60,7 @@
-