[IMP] Improved code as in trunk.
bzr revid: psa@tinyerp.com-20130524045741-3hx0kozz9eobv69b
This commit is contained in:
parent
f12c4b2e8c
commit
1c7e3fa732
|
@ -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'),
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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}" />
|
||||
|
|
Loading…
Reference in New Issue