ODOO,calendar.event:bool没有属性替换

时间:2015-04-27 07:59:19

标签: python-2.7 calendar odoo odoo-8

我使用状态栏扩展了类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 个答案:

答案 0 :(得分:0)

您的字段是否用于' display_start'在您的视图上有您的模型的默认值?

我认为这是因为它为此字段返回False您有此错误。如果它今天返回,我认为它会没问题。