我扩展了class calendar_event以添加状态栏的状态 . 当我尝试创建一个问题时,它在我更新事件时工作得很好:
Traceback (most recent call last):
File "/home/x/workspace/Odoo8/openerp/http.py", line 530, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/home/x/workspace/Odoo8/openerp/http.py", line 567, in dispatch
result = self._call_function(**self.params)
File "/home/x/workspace/Odoo8/openerp/http.py", line 303, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/home/x/workspace/Odoo8/openerp/service/model.py", line 113, in wrapper
return f(dbname, *args, **kwargs)
File "/home/x/workspace/Odoo8/openerp/http.py", line 300, in checked_call
return self.endpoint(*a, **kw)
File "/home/x/workspace/Odoo8/openerp/http.py", line 796, in __call__
return self.method(*args, **kw)
File "/home/x/workspace/Odoo8/openerp/http.py", line 396, in response_wrap
response = f(*args, **kw)
File "/home/x/workspace/alpbureautique_openerp/openerp/addons/web/controllers/main.py", line 949, in call_kw
return self._call_kw(model, method, args, kwargs)
File "/home/x/workspace/alpbureautique_openerp/openerp/addons/web/controllers/main.py", line 941, in _call_kw
return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
File "/home/x/workspace/Odoo8/openerp/api.py", line 241, in wrapper
return old_api(self, *args, **kwargs)
File "/home/x/workspace/alpbureautique_openerp/openerp/cap_addons/cap_CRM/models/calendar_event.py", line 66, in create
res = super(calendar_event, self).create(cr, uid, vals, context=context)
File "/home/x/workspace/Odoo8/openerp/api.py", line 241, in wrapper
return old_api(self, *args, **kwargs)
File "/home/x/workspace/alpbureautique_openerp/openerp/addons/crm/calendar_event.py", line 36, in create
res = super(calendar_event, self).create(cr, uid, vals, context=context)
File "/home/x/workspace/Odoo8/openerp/api.py", line 241, in wrapper
return old_api(self, *args, **kwargs)
File "/home/x/workspace/alpbureautique_openerp/openerp/addons/calendar/calendar.py", line 1646, in create
res = super(calendar_event, self).create(cr, uid, vals, context=context)
File "/home/x/workspace/Odoo8/openerp/api.py", line 241, in wrapper
return old_api(self, *args, **kwargs)
File "/home/x/workspace/alpbureautique_openerp/openerp/addons/mail/mail_thread.py", line 377, in create
thread_id = super(mail_thread, self).create(cr, uid, values, context=context)
File "/home/x/workspace/Odoo8/openerp/api.py", line 241, in wrapper
return old_api(self, *args, **kwargs)
File "/home/x/workspace/Odoo8/openerp/api.py", line 336, in old_api
result = method(recs, *args, **kwargs)
File "/home/x/workspace/Odoo8/openerp/models.py", line 4042, in create
record = self.browse(self._create(old_vals))
File "/home/x/workspace/Odoo8/openerp/api.py", line 239, in wrapper
return new_api(self, *args, **kwargs)
File "/home/x/workspace/Odoo8/openerp/api.py", line 462, in new_api
result = method(self._model, cr, uid, *args, **kwargs)
File "/home/x/workspace/Odoo8/openerp/models.py", line 4214, in _create
recs.modified(self._fields)
File "/home/x/workspace/Odoo8/openerp/api.py", line 239, in wrapper
return new_api(self, *args, **kwargs)
File "/home/x/workspace/Odoo8/openerp/models.py", line 5608, in modified
spec += self._fields[fname].modified(self)
File "/home/x/workspace/Odoo8/openerp/fields.py", line 1414, in modified
spec = super(_Relational, self).modified(records)
File "/home/x/workspace/Odoo8/openerp/fields.py", line 908, in modified
target = env[field.model_name].search([(path, 'in', records.ids)])
File "/home/x/workspace/Odoo8/openerp/api.py", line 239, in wrapper
return new_api(self, *args, **kwargs)
File "/home/x/workspace/Odoo8/openerp/api.py", line 462, in new_api
result = method(self._model, cr, uid, *args, **kwargs)
File "/home/x/workspace/alpbureautique_openerp/openerp/addons/calendar/calendar.py", line 1511, in search
res = self.get_recurrent_ids(cr, uid, res, args, order=order, context=context)
File "/home/x/workspace/Odoo8/openerp/api.py", line 241, in wrapper
return old_api(self, *args, **kwargs)
File "/home/x/workspace/alpbureautique_openerp/openerp/addons/calendar/calendar.py", line 1187, in get_recurrent_ids
result_data.append(self.get_search_fields(ev, order_fields))
File "/home/x/workspace/alpbureautique_openerp/openerp/addons/calendar/calendar.py", line 1155, in get_search_fields
sort_fields['sort_start'] = browse_event['display_start'].replace(' ', '').replace('-', '')
AttributeError: 'bool' object has no attribute 'replace'
当我通过super()调用create()并且它与字段“participant_without_owner”的链接时,会出现此错误
我的代码:
class calendar_event(osv.Model):
_inherit = 'calendar.event'
_columns = {
'cap_state':fields.selection(
[('open', 'Confirmed'),
('cancel', 'Cancelled'),
('pending', 'Pending'),
('done', 'Held')
], string='Status', track_visibility='onchange',
help='The status is set to Confirmed, when a case is created.\n'
'When the call is over, the status is set to Held.\n'
'If the callis not applicable anymore, the status can be set to Cancelled.'),
'participant_without_owner':fields.char(compute="_compute_participant",store=True),
}
_default = {
'cap_state':'open'
}
@api.depends('partner_ids', 'user_id')
def _compute_participant(self):
for record in self:
if record.user_id.partner_id in record.partner_ids:
participants = record.partner_ids - record.user_id.partner_id
chaine = str("")
for p in participants:
chaine = chaine + p.name + ", "
record.participant_without_owner = chaine
def done_event_in_tree(self, cr, uid, ids, context=None):
res = self.write(cr, uid, ids, {'cap_state': 'done'}, context)
return res
def create(self,cr, uid, vals, context=None):
import datetime as dt
if context is None:
context = {}
date_appel = datetime.strptime(vals['start_datetime'], '%Y-%m-%d %H:%M:%S')
print type(date_appel)
print type(dt.datetime.today())
if date_appel > dt.datetime.today():
vals['cap_state'] = 'open'
else:
vals['cap_state'] = 'done'
vals['participant_without_owner'] = ""
print vals
res = super(calendar_event, self).create(cr, uid, vals, context=context)
return res
在odoo v8
1 回答
您的视图中用于“display_start”的字段是否在模型上具有默认值?
我认为这是因为它为这个字段返回False你有这个错误 . 如果它今天返回,我认为它会没问题 .