From eb1ede2367ab8bf6bfa62dcdafa13e7eb1bfb0e1 Mon Sep 17 00:00:00 2001 From: Paramjit Singh Sahota Date: Fri, 12 Apr 2013 13:55:00 +0530 Subject: [PATCH] [IMP] Improved code of Meetings buttons in Customers form view which is showing 'id' of Customer. Removed unwanted code of views and action and used older actions. bzr revid: psa@tinyerp.com-20130412082500-xf96csxd5unz66cr --- addons/base_calendar/crm_meeting.py | 25 ++++++++++++++ addons/base_calendar/crm_meeting_view.xml | 18 ++++++++-- addons/crm/res_partner_view.xml | 4 --- addons/crm_claim/crm_claim_view.xml | 22 ++---------- addons/project/project_view.xml | 1 + addons/project/res_partner_view.xml | 38 ++------------------- addons/project_issue/project_issue_view.xml | 20 ++--------- 7 files changed, 48 insertions(+), 80 deletions(-) diff --git a/addons/base_calendar/crm_meeting.py b/addons/base_calendar/crm_meeting.py index 6010f5ccfca..927fd22a6c8 100644 --- a/addons/base_calendar/crm_meeting.py +++ b/addons/base_calendar/crm_meeting.py @@ -44,6 +44,29 @@ 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 arg in args: + if arg[1] == '=': + if arg[2]: + clause = 'rel.partner_id = ' + str(arg[2]) + if clause: + cursor.execute('SELECT rel.meeting_id ' \ + 'FROM crm_meeting_partner_rel AS rel ' \ + '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), @@ -52,6 +75,8 @@ 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'), diff --git a/addons/base_calendar/crm_meeting_view.xml b/addons/base_calendar/crm_meeting_view.xml index d9b659b91fa..98db03da62d 100644 --- a/addons/base_calendar/crm_meeting_view.xml +++ b/addons/base_calendar/crm_meeting_view.xml @@ -234,7 +234,7 @@ - + @@ -291,6 +291,20 @@ - + + + res.partner.view.buttons.meeting + res.partner + + + + +