_description = "Meeting"
_order = "id desc"
_inherit = ["calendar.event", "mail.thread", "ir.needaction_mixin"]
-
- def _get_attendee(self, cursor, user, ids, name, arg, context=None):
- res = {}
- return res
-
- def _attendees_search(self, cursor, user, obj, name, args, context=None):
- if not len(args):
- return []
- clause = ''
- res = False
- for field, operator, value in args:
- if operator == '=':
- if value:
- clause = 'rel.partner_id ' + operator + str(value)
- elif operator == 'ilike':
- if value:
- clause = 'p.id = rel.partner_id and p.name ' + operator + "'%" + str(value) +"%'"
- if clause:
- cursor.execute('SELECT rel.meeting_id, p.name ' \
- 'FROM crm_meeting_partner_rel AS rel, res_partner AS p ' \
- 'WHERE ' + clause)
- res = cursor.fetchall()
- if not res:
- return [('id', '=', 0)]
- return [('id', 'in', [x[0] for x in res])]
-
_columns = {
# base_state required fields
'create_date': fields.datetime('Creation Date', readonly=True),
'date_closed': fields.datetime('Closed', readonly=True),
'partner_ids': fields.many2many('res.partner', 'crm_meeting_partner_rel', 'meeting_id', 'partner_id',
string='Attendees', states={'done': [('readonly', True)]}),
- 'partner_id': fields.function(_get_attendee, string='Attendees',
- fnct_search=_attendees_search, type='many2one', relation='res.partner'),
'state': fields.selection(
[('draft', 'Unconfirmed'), ('open', 'Confirmed')],
string='Status', size=16, readonly=True, track_visibility='onchange'),
<field name="arch" type="xml">
<search string="Search Meetings">
<field name="name" string="Meeting" filter_domain="[('name','ilike',self)]"/>
- <field name="partner_id"/>
+ <field name="partner_ids"/>
<field name="categ_ids"/>
<field name="user_id"/>
<separator/>
<menuitem name="Calendar"
id="mail_menu_calendar" parent="mail.mail_my_stuff"
sequence="10" action="action_crm_meeting"/>
-
- <record model="ir.ui.view" id="res_partner_view_buttons">
- <field name="name">res.partner.view.buttons.meeting</field>
- <field name="model">res.partner</field>
- <field name="inherit_id" ref="base.view_partner_form" />
- <field name="priority" eval="10"/>
- <field name="arch" type="xml">
- <xpath expr="//div[@name='buttons']" position="inside">
- <button type="action"
- string="Meetings"
- name="%(base_calendar.action_crm_meeting)d"
- context="{'search_default_partner_id': active_id, 'default_partner_ids': [active_id]}"/>
- </xpath>
- </field>
- </record>
+
</data>
</openerp>
<field name="priority" eval="10"/>
<field name="arch" type="xml">
<xpath expr="//div[@name='buttons']" position="inside">
+ <button type="action"
+ string="Meetings"
+ name="%(base_calendar.action_crm_meeting)d"
+ context="{'search_default_partner_ids': active_id, 'default_partner_ids' : [active_id]}"/>
<button type="action" string="Calls"
name="%(crm.crm_case_categ_phone_incoming0)d"
context="{'search_default_partner_id': active_id, 'default_duration': 1.0}" />