Odoo Help


[V8.0] How to inherit calendar.event

Thomas Fossoul
on 12/16/14, 3:35 AM 3,122 views


I'm currently trying to make a simple inherit of the table "calendar.event". 

It work fine until i try to create a record in my new table.

Here is my code and the error:

from openerp.osv import osv, fields
from openerp import models, api

class re_calendar_event(osv.osv):
    _name = 're.calendar.event'
    _inherit = 'calendar.event'

Note the form view is the exact copy of the calendar.event form :

<?xml version="1.0"?>
    <record model="ir.ui.view" id="re_view_calendar_event_form">
        <field name="name">Calendar - Event Form</field>
        <field name="model">re.calendar.event</field>
        <field name="priority" eval="1"/>
        <field name="arch" type="xml">
            <form string="Meetings">
                    <field name="state" invisible="1"/>
                    <field name="is_attendee" invisible="1"/>
                    <field name="attendee_status" invisible="1"/>
                    <div class="oe_title">
                        <div class="oe_edit_only">
                            <label for="name"/>
                            <field name="name"/>
                        <label for="partner_ids" string="Attendees" class="oe_edit_only"/>
                            <field name="partner_ids" widget="many2manyattendee"
                        <page string="Meeting Details">
                            <group attrs="{'invisible': [('recurrency','==',False)]}" class="oe_edit_only ">
                                <p class='alert alert-warning'> This event is linked to a recurrence...<br/>
                                    <button type="object" name="open_after_detach_event"  string="Update only this instance"  help="Click here to update only this instance and not all recurrences. " class="oe_link"/>
                                    <field name="start" attrs="{'invisible': True}"/>
                                    <field name="stop" attrs="{'invisible': True}"/>

                                    <field name="start_date" string="Starting at" on_change="onchange_dates('start', start_date, stop_date, allday, True)" attrs="{'invisible': [('allday','=',False)]}"/>
                                    <field name="stop_date" string="Ending at" on_change="onchange_dates('stop', start_date, stop_date, allday, True)" attrs="{'invisible': [('allday','=',False)]}"/>

                                    <field name="start_datetime" string="Starting at" on_change="onchange_dates('start', start_datetime, stop_datetime, allday, False)" attrs="{'invisible': [('allday','=',True)]}"/>
                                    <field name="stop_datetime" string="Ending at" on_change="onchange_dates('stop', start_datetime, stop_datetime, allday, False)" attrs="{'invisible': [('allday','=',True)]}"/>
                                    <label for="allday"/>
                                        <field name="allday"  class="oe_inline" on_change="onchange_allday(start, stop, start_date, stop_date, start_datetime, stop_datetime, allday)"/>
                                    <field name="duration" widget="float_time" class="oe_inline" attrs="{ 'invisible': True }"/>
                                    <field name="categ_ids" widget="many2many_tags" />
                                    <field name="alarm_ids" widget="many2many_tags" />
                                    <field name="location" />

                            <label for="description"/>
                            <field name="description"/>
                        <page string="Options">
                                <group col="1">
                                        <field name="recurrency"/>
                                    <group attrs="{'invisible': [('recurrency','=',False)]}">
                                        <label for="interval"/>
                                            <field name="interval" attrs="{'required': [('recurrency','==',True)]}" class="oe_inline"/>
                                            <field name="rrule_type" attrs="{'required': [('recurrency','==',True)]}" class="oe_inline"/>
                                        <label string="Until" for="end_type"/>
                                            <field name="end_type" attrs="{'required': [('recurrency','==',True)]}" class="oe_inline"/>
                                            <field name="count" attrs="{'invisible': [('end_type', '!=', 'count')], 'required': [('recurrency','==',True)]}" class="oe_inline"/>
                                            <field name="final_date" attrs="{'invisible': [('end_type', '!=', 'end_date')], 'required': [('end_type', '=', 'end_date')]}" class="oe_inline"/>
                                        <label string="Select Weekdays" attrs="{'invisible' :[('rrule_type','not in', ['weekly'])]}"/>
                                        <group col="2" colspan="1" name="weekdays" attrs="{'invisible' :[('rrule_type','not in', ['weekly'])]}" >
                                            <field name="mo" />
                                            <field name="tu" />
                                            <field name="we" />
                                            <field name="th" />
                                            <field name="fr" />
                                            <field name="sa" />
                                            <field name="su" />
                                        <label string="Day of Month"
                                            attrs="{'invisible': [('rrule_type','!=','monthly')]}"/>
                                        <div attrs="{'invisible': [('rrule_type','!=','monthly')]}">
                                            <field name="month_by"/>
                                            <field name="day"
                                                attrs="{'required': [('month_by','=','date'), ('rrule_type','=','monthly')],
                                                    'invisible': [('month_by','=','day')]}"/>
                                            <field name="byday" string="The"
                                                attrs="{'required': [('month_by','=','day'), ('rrule_type','=','monthly')], 'invisible': [('month_by','=','date')]}"/>
                                            <field name="week_list" nolabel="1"
                                                attrs="{'required': [('month_by','=','day'), ('rrule_type','=','monthly')], 'invisible': [('month_by','=','date')]}"/>
                                    <field name="class"/>
                                    <field name="show_as"/>
                                    <field name="rrule" invisible="1" readonly="0" />                                    
                                    <field name="recurrent_id" invisible="1" />
                        <page string="Invitations" groups="base.group_no_one">
                            <button name="do_sendmail" type="object" string="Send mail" icon="terp-mail-message-new" class="oe_link"/>
                            <field name="attendee_ids" widget="one2many" >
                                <tree string="Invitation details" editable="top" create="false" delete="false">
                                    <field name="partner_id" />
                                    <field name="state" />
                                    <field name="email" widget="email"/>
                                    <button name="do_tentative" states="needsAction,declined,accepted" string="Uncertain" type="object" icon="terp-crm" />
                                    <button name="do_accept" string="Accept" states="needsAction,tentative,declined" type="object" icon="gtk-apply"/>
                                    <button name="do_decline" string="Decline" states="needsAction,tentative,accepted" type="object" icon="gtk-cancel"/>
                        <page string="Misc" groups="base.group_no_one">
                            <label string="Owner"/>
                            <field name="user_id" />

                <div class="oe_chatter">
                    <field name="message_follower_ids" widget="mail_followers"/>
                    <field name="message_ids" widget="mail_thread" />

The error I got : 

Traceback (most recent call last):
  File "/home/odoo/openerp-8.0-1125/openerp/http.py", line 508, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/home/odoo/openerp-8.0-1125/openerp/http.py", line 526, in dispatch
    result = self._call_function(**self.params)
  File "/home/odoo/openerp-8.0-1125/openerp/http.py", line 285, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/home/odoo/openerp-8.0-1125/openerp/service/model.py", line 113, in wrapper
    return f(dbname, *args, **kwargs)
  File "/home/odoo/openerp-8.0-1125/openerp/http.py", line 282, in checked_call
    return self.endpoint(*a, **kw)
  File "/home/odoo/openerp-8.0-1125/openerp/http.py", line 742, in __call__
    return self.method(*args, **kw)
  File "/home/odoo/openerp-8.0-1125/openerp/http.py", line 378, in response_wrap
    response = f(*args, **kw)
  File "/home/odoo/openerp-8.0/openerp/addons/web/controllers/main.py", line 948, in call_kw
    return self._call_kw(model, method, args, kwargs)
  File "/home/odoo/openerp-8.0/openerp/addons/web/controllers/main.py", line 940, in _call_kw
    return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
  File "/home/odoo/openerp-8.0-1125/openerp/api.py", line 237, in wrapper
    return old_api(self, *args, **kwargs)
  File "/home/odoo/openerp-8.0/openerp/addons/calendar/calendar.py", line 1595, in create
    res = super(calendar_event, self).create(cr, uid, vals, context=context)
  File "/home/odoo/openerp-8.0-1125/openerp/api.py", line 237, in wrapper
    return old_api(self, *args, **kwargs)
  File "/home/odoo/openerp-8.0/openerp/addons/mail/mail_thread.py", line 377, in create
    thread_id = super(mail_thread, self).create(cr, uid, values, context=context)
  File "/home/odoo/openerp-8.0-1125/openerp/api.py", line 237, in wrapper
    return old_api(self, *args, **kwargs)
  File "/home/odoo/openerp-8.0-1125/openerp/api.py", line 332, in old_api
    result = method(recs, *args, **kwargs)
  File "/home/odoo/openerp-8.0-1125/openerp/models.py", line 3994, in create
    record = self.browse(self._create(old_vals))
  File "/home/odoo/openerp-8.0-1125/openerp/api.py", line 235, in wrapper
    return new_api(self, *args, **kwargs)
  File "/home/odoo/openerp-8.0-1125/openerp/api.py", line 464, in new_api
    result = method(self._model, cr, uid, *args, **kwargs)
  File "/home/odoo/openerp-8.0-1125/openerp/models.py", line 4179, in _create
    result += self._columns[field].set(cr, self, id_new, field, vals[field], user, rel_context) or []
  File "/home/odoo/openerp-8.0-1125/openerp/osv/fields.py", line 978, in set
    cr.execute('delete from '+rel+' where '+id1+'=%s AND '+id2+' IN (SELECT '+rel+'.'+id2+' FROM '+rel+', '+','.join(tables)+' WHERE '+rel+'.'+id1+'=%s AND '+rel+'.'+id2+' = '+obj._table+'.id '+ d1 +')', [id, id]+d2)
  File "/home/odoo/openerp-8.0-1125/openerp/sql_db.py", line 158, in wrapper
    return f(self, *args, **kwargs)
  File "/home/odoo/openerp-8.0-1125/openerp/sql_db.py", line 234, in execute
    res = self._obj.execute(query, params)
ProgrammingError: column "re_calendar_event_id" does not exist
LINE 1: delete from calendar_event_res_partner_rel where re_calendar...


Thanks in advance



sameer alhwety
On 12/17/14, 9:36 AM

The problem is that you are trying to add non exist column/s to view 
Make sure that you add the column re_calendar_event_id before install your module

Thomas Fossoul
On 12/17/14, 9:48 AM

no. i don't add column. Here is the content on my python file : 

from openerp.osv import osv, fields
from openerp import models, api

class re_calendar_event(osv.osv):
    _name = 're.calendar.event'
    _inherit = 'calendar.event'

There is no more line.

The re_calendar_event_id come from the many2many table calendar_event_res_partner_rel. I don't know why he try to acces to this unknow/unaddedbymy field

About This Community

This platform 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.


Odoo Training Center

Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.

Test it now

Question tools

1 follower(s)


Asked: 12/16/14, 3:35 AM
Seen: 3122 times
Last updated: 3/16/15, 8:10 AM