[IMP] Improved code as in trunk.

bzr revid: psa@tinyerp.com-20130524045741-3hx0kozz9eobv69b
This commit is contained in:
Paramjit Singh Sahota 2013-05-24 10:27:41 +05:30
parent f12c4b2e8c
commit 1c7e3fa732
3 changed files with 6 additions and 44 deletions

View File

@ -44,32 +44,6 @@ class crm_meeting(base_state, osv.Model):
_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),
@ -78,8 +52,6 @@ class crm_meeting(base_state, osv.Model):
'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'),

View File

@ -234,7 +234,7 @@
<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/>
@ -291,20 +291,6 @@
<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>

View File

@ -99,6 +99,10 @@
<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}" />