From d75f4f4fbbafc46f958739c8103e51c101871991 Mon Sep 17 00:00:00 2001 From: "Pinakin Nayi (OpenERP)" Date: Tue, 25 Sep 2012 14:08:50 +0530 Subject: [PATCH] [IMP]base_calendar(crm_meeting) recurrence meeting view error bzr revid: pna@tinyerp.com-20120925083850-6g7nx5kobet0himx --- addons/base_calendar/crm_meeting.py | 46 +++++++++++++++++++ .../wizard/import_google_data.py | 4 +- 2 files changed, 48 insertions(+), 2 deletions(-) diff --git a/addons/base_calendar/crm_meeting.py b/addons/base_calendar/crm_meeting.py index 0ee23ed1d0f..7be167f4342 100644 --- a/addons/base_calendar/crm_meeting.py +++ b/addons/base_calendar/crm_meeting.py @@ -88,4 +88,50 @@ class crm_meeting(base_state, osv.Model): def case_close_send_note(self, cr, uid, ids, context=None): return self.message_post(cr, uid, ids, body=_("Meeting completed."), context=context) +#override following methods to avoid recurrency meeting view problem +class mail_message(osv.Model): + _inherit = 'mail.message' + def search(self, cr, uid, args, offset=0, limit=0, order=None, context=None, count=False): + for arg in args: + if arg[0] == "res_id": + if isinstance(arg[2], (str)): + args[1][2] = self.pool.get('calendar.event').remove_virtual_id(arg[2]) + res = super(mail_message, self).search(cr, uid, args, offset, limit, order, context, count=False) + if count: + return len(res) + elif limit: + return res[offset:offset+limit] + else: + return res +mail_message() + +class mail_compose_message(osv.Model): + _inherit = 'mail.compose.message' + # if not web warning message + def default_get(self, cr, uid, fields, context=None): + if context is None: + context = {} + res_id = context.get('default_res_id', context.get('active_id')) + if isinstance(res_id, (str)): + res_id = self.pool.get('calendar.event').remove_virtual_id(res_id) + context.update({'default_res_id':res_id}) + result = super(mail_compose_message, self).default_get(cr, uid, fields, context=context) + return result +mail_compose_message() + +class ir_attachment(osv.Model): + _inherit = 'ir.attachment' + def search(self, cr, uid, args, offset=0, limit=0, order=None, context=None, count=False): + for arg in args: + if arg[0] == "res_id": + if isinstance(arg[2], (str)): + args[1][2] = self.pool.get('calendar.event').remove_virtual_id(arg[2]) + res = super(ir_attachment, self).search(cr, uid, args, offset, limit, order, context, count=False) + if count: + return len(res) + elif limit: + return res[offset:offset+limit] + else: + return res +ir_attachment() diff --git a/addons/import_google/wizard/import_google_data.py b/addons/import_google/wizard/import_google_data.py index 2132d141e29..4d87b9a974c 100644 --- a/addons/import_google/wizard/import_google_data.py +++ b/addons/import_google/wizard/import_google_data.py @@ -104,8 +104,8 @@ class synchronize_google(osv.osv_memory): _columns = { 'customer': fields.boolean('Customer', help="Check this box to set newly created partner as Customer."), 'supplier': fields.boolean('Supplier', help="Check this box to set newly created partner as Supplier."), - 'group_name': fields.selection(_get_group, "Group Name",help="Choose which group to import, By default it takes all."), - 'calendar_name': fields.selection(_get_calendars, "Calendar Name"), + 'group_name': fields.selection(_get_group, "Group Name", required= True, help="Choose which group to import, By default it takes all."), + 'calendar_name': fields.selection(_get_calendars, "Calendar Name", required= True), } _defaults = {