Odoo Help

Welcome!

This community is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.

0

Problem with calendar.event : bool have no attribute replace

By
dark
on 4/27/15, 4:02 AM 491 views

I extends class calendar_event for add status with statusbar. It's work perfectly when i update an event BUT when i tried to create i've a problem : 

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('-', '')

ttributeError: 'bool' object has no attribute 'replace'.



This error is raise when i call create() by super() and it's link with field "participant_without_owner"

My code : 
"

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

"

Your Answer

Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!

About This Community

This community is for professionals and enthusiasts of our products and services. Read Guidelines

Question tools

1 follower(s)

Stats

Asked: 4/27/15, 4:02 AM
Seen: 491 times
Last updated: 4/28/15, 11:08 AM