Add some more field in request history for issue507

Prevent the write on request history
This commit is contained in:
Cédric Krier
2008-11-06 00:01:04 +01:00
parent 03b3d0c394
commit cce6aa7b71
2 changed files with 49 additions and 23 deletions
+34 -18
View File
@@ -4,6 +4,19 @@ from trytond.osv import OSV, fields
import time
import datetime
_STATES = [
('draft', 'Draft'),
('waiting', 'Waiting'),
('chatting', 'Chatting'),
('closed', 'Closed'),
]
_PRIORITIES = [
('0', 'Low'),
('1', 'Normal'),
('2', 'High'),
]
class Request(OSV):
"Request"
_name = 'res.request'
@@ -15,11 +28,7 @@ class Request(OSV):
"(state == 'chatting' and act_from != _user)",
}, required=True)
active = fields.Boolean('Active')
priority = fields.Selection([
('0', 'Low'),
('1', 'Normal'),
('2', 'High'),
], 'Priority', states={
priority = fields.Selection(_PRIORITIES, 'Priority', states={
'readonly': "(state in ('waiting', 'closed')) or " \
"(state == 'chatting' and act_from != _user)",
}, required=True)
@@ -45,12 +54,7 @@ class Request(OSV):
})
number_references = fields.Function('get_number_references', type='integer',
string="Number of References", on_change_with=['references'])
state = fields.Selection([
('draft', 'Draft'),
('waiting', 'Waiting'),
('chatting', 'Chatting'),
('closed', 'Closed'),
], 'State', required=True, readonly=True)
state = fields.Selection(_STATES, 'State', required=True, readonly=True)
history = fields.One2Many('res.request.history', 'request',
'History', readonly=True)
@@ -61,7 +65,7 @@ class Request(OSV):
return 'draft'
def default_active(self, cursor, user, context=None):
return 1
return True
def default_priority(self, cursor, user, context=None):
return '1'
@@ -102,6 +106,10 @@ class Request(OSV):
'act_from': request.act_from.id,
'act_to': request.act_to.id,
'body': request.body,
'state': request.state,
'subject': request.name,
'number_references': request.number_references,
'priority': request.priority,
}
if values['body'] and len(values['body']) > 128:
values['name'] = values['body'][:125] + '...'
@@ -176,14 +184,19 @@ class RequestHistory(OSV):
"Request history"
_name = 'res.request.history'
_description = __doc__
name = fields.Char('Summary', required=True)
name = fields.Char('Summary', required=True, readonly=True)
request = fields.Many2One('res.request', 'Request', required=True,
ondelete='CASCADE', select=1)
ondelete='CASCADE', select=1, readonly=True)
act_from = fields.Many2One('res.user', 'From', required=True,
readonly=True)
act_to = fields.Many2One('res.user', 'To', required=True)
body = fields.Text('Body')
date_sent = fields.DateTime('Date sent', required=True)
act_to = fields.Many2One('res.user', 'To', required=True, readonly=True)
body = fields.Text('Body', readonly=True)
date_sent = fields.DateTime('Date sent', required=True, readonly=True)
state = fields.Selection(_STATES, 'State', required=True, readonly=True)
subject = fields.Char('Subject', required=True, readonly=True)
number_references = fields.Integer('References', readonly=True)
priority = fields.Selection(_PRIORITIES, 'Priority', required=True,
readonly=True)
def __init__(self):
super(RequestHistory, self).__init__()
@@ -199,7 +212,10 @@ class RequestHistory(OSV):
return user
def default_date_sent(self, cursor, user, context=None):
return time.strftime('%Y-%m-%d %H:%M:%S')
return datetime.datetime.now()
def write(self, cursor, user, ids, vals, context=None):
raise
RequestHistory()
+15 -5
View File
@@ -14,6 +14,7 @@
<field name="name" select="1"/>
<field name="priority" select="2"/>
<field name="trigger_date" select="2"/>
<field name="number_references"/>
<field name="state"/>
<field name="active" select="2"/>
<field name="body" tree_invisible="1" select="2"/>
@@ -147,8 +148,10 @@
<tree string="Request History">
<field name="act_from"/>
<field name="act_to"/>
<field name="date_sent"/>
<field name="name"/>
<field name="number_references"/>
<field name="date_sent"/>
<field name="state"/>
</tree>
]]>
</field>
@@ -163,11 +166,18 @@
<field name="act_from"/>
<label name="act_to"/>
<field name="act_to"/>
<label name="date_sent"/>
<field name="date_sent"/>
<label name="name"/>
<field name="name" colspan="5"/>
<label name="number_references"/>
<field name="number_references"/>
<label name="subject"/>
<field name="subject" colspan="3"/>
<label name="priority"/>
<field name="priority"/>
<field name="body" colspan="6"/>
<label name="date_sent"/>
<field name="date_sent" colspan="3"/>
<newline/>
<label name="state"/>
<field name="state" colspan="3"/>
</form>
]]>
</field>