[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"
|
_description = "Meeting"
|
||||||
_order = "id desc"
|
_order = "id desc"
|
||||||
_inherit = ["calendar.event", "mail.thread", "ir.needaction_mixin"]
|
_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 = {
|
_columns = {
|
||||||
# base_state required fields
|
# base_state required fields
|
||||||
'create_date': fields.datetime('Creation Date', readonly=True),
|
'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),
|
'date_closed': fields.datetime('Closed', readonly=True),
|
||||||
'partner_ids': fields.many2many('res.partner', 'crm_meeting_partner_rel', 'meeting_id', 'partner_id',
|
'partner_ids': fields.many2many('res.partner', 'crm_meeting_partner_rel', 'meeting_id', 'partner_id',
|
||||||
string='Attendees', states={'done': [('readonly', True)]}),
|
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(
|
'state': fields.selection(
|
||||||
[('draft', 'Unconfirmed'), ('open', 'Confirmed')],
|
[('draft', 'Unconfirmed'), ('open', 'Confirmed')],
|
||||||
string='Status', size=16, readonly=True, track_visibility='onchange'),
|
string='Status', size=16, readonly=True, track_visibility='onchange'),
|
||||||
|
|
|
@ -234,7 +234,7 @@
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<search string="Search Meetings">
|
<search string="Search Meetings">
|
||||||
<field name="name" string="Meeting" filter_domain="[('name','ilike',self)]"/>
|
<field name="name" string="Meeting" filter_domain="[('name','ilike',self)]"/>
|
||||||
<field name="partner_id"/>
|
<field name="partner_ids"/>
|
||||||
<field name="categ_ids"/>
|
<field name="categ_ids"/>
|
||||||
<field name="user_id"/>
|
<field name="user_id"/>
|
||||||
<separator/>
|
<separator/>
|
||||||
|
@ -291,20 +291,6 @@
|
||||||
<menuitem name="Calendar"
|
<menuitem name="Calendar"
|
||||||
id="mail_menu_calendar" parent="mail.mail_my_stuff"
|
id="mail_menu_calendar" parent="mail.mail_my_stuff"
|
||||||
sequence="10" action="action_crm_meeting"/>
|
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>
|
</data>
|
||||||
</openerp>
|
</openerp>
|
||||||
|
|
|
@ -99,6 +99,10 @@
|
||||||
<field name="priority" eval="10"/>
|
<field name="priority" eval="10"/>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<xpath expr="//div[@name='buttons']" position="inside">
|
<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"
|
<button type="action" string="Calls"
|
||||||
name="%(crm.crm_case_categ_phone_incoming0)d"
|
name="%(crm.crm_case_categ_phone_incoming0)d"
|
||||||
context="{'search_default_partner_id': active_id, 'default_duration': 1.0}" />
|
context="{'search_default_partner_id': active_id, 'default_duration': 1.0}" />
|
||||||
|
|
Loading…
Reference in New Issue