From 4443f39f3854ce511dfe68a6f7660c97513dea84 Mon Sep 17 00:00:00 2001 From: "Atul Patel (OpenERP)" Date: Mon, 30 Apr 2012 15:14:54 +0530 Subject: [PATCH] [FIX]: Fix some code error. add security rules for event module bzr revid: atp@tinyerp.com-20120430094454-hcz6w2xvllg7g2b7 --- addons/event_sale/event_sale.py | 81 +++++++++++-------- addons/portal_event/portal_event.py | 42 +++------- .../portal_event/security/ir.model.access.csv | 4 +- .../security/portal_event_security.xml | 4 +- 4 files changed, 61 insertions(+), 70 deletions(-) diff --git a/addons/event_sale/event_sale.py b/addons/event_sale/event_sale.py index 911d316cca8..ee48956324f 100644 --- a/addons/event_sale/event_sale.py +++ b/addons/event_sale/event_sale.py @@ -105,48 +105,59 @@ class event_event(osv.osv): register_pool = self.pool.get('event.registration') sale_order_line_pool = self.pool.get('sale.order.line') sale_order = self.pool.get('sale.order') - user = self.pool.get("res.users").browse(cr, uid, uid, context=context) partner_pool = self.pool.get("res.partner") - new_partner_id = False + prod_pricelist_obj = self.pool.get('product.pricelist') + user = self.pool.get("res.users").browse(cr, uid, uid, context=context) partner_ids = partner_pool.search(cr, uid, [('name', '=', user.name), ('email', '=', user.user_email)]) if not partner_ids: new_partner_id = partner_pool.create(cr, uid, {'name': user.name, 'email': user.user_email}) - partner_invoice_id = self.pool.get('res.partner').address_get(cr, uid, [new_partner_id], ['invoice'])['invoice'] - partner_shipping_id = self.pool.get('res.partner').address_get(cr, uid, [new_partner_id], ['delivery'])['delivery'] + partner_invoice_id = partner_pool.address_get(cr, uid, [new_partner_id], ['invoice'])['invoice'] + partner_shipping_id = partner_pool.address_get(cr, uid, [new_partner_id], ['delivery'])['delivery'] + else: + new_partner_id = partner_ids[0] + partner_invoice_id = partner_pool.address_get(cr, uid, [new_partner_id], ['invoice'])['invoice'] + partner_shipping_id = partner_pool.address_get(cr, uid, [new_partner_id], ['delivery'])['delivery'] for event_id in self.browse(cr, uid, ids, context=context): - prod_pricelist_obj = self.pool.get('product.pricelist') sale_order_lines = [] price_list = prod_pricelist_obj.search(cr,uid,[],context=context)[0] - new_sale_id = sale_order.create(cr, uid, { - 'date_order': event_id.date_begin, - 'pricelist_id': price_list, - 'partner_id': new_partner_id, - 'partner_invoice_id': partner_invoice_id, - 'partner_shipping_id': partner_shipping_id - }) - if event_id.event_item_ids: - for items in event_id.event_item_ids: - product = items.product_id.id - sale_order_line = sale_order_line_pool.create(cr, uid, { - 'order_id': new_sale_id, - 'name': items.product_id.name, - 'product_uom_qty': items.qty, - 'product_id': items.product_id.id, - 'product_uom': items.uom_id.id, - 'price_unit': items.price, - 'date_planned': items.sales_end_date, - }, context=context) - res = { - 'name': _('Quotation'), - 'view_type': 'form', - 'view_mode': 'form', - 'res_model': 'sale.order', - 'res_id': new_sale_id, - 'type': 'ir.actions.act_window', - 'nodestroy': True, - 'target': 'new', - } - # self.write(cr, uid, ids, {'state': 'confirm'}, context=context) + sale_ids = sale_order.search(cr, uid, [('date_order', '=', event_id.date_begin), ('partner_id', '=', new_partner_id)]) + if not sale_ids: +# raise osv.except_osv(_('Error !'), +# _('sale order is already Exists for this event:')) +# else: + new_sale_id = sale_order.create(cr, uid, { + 'date_order': event_id.date_begin, + 'pricelist_id': price_list, + 'partner_id': new_partner_id, + 'partner_invoice_id': partner_invoice_id, + 'partner_shipping_id': partner_shipping_id + }) + if event_id.event_item_ids: + for items in event_id.event_item_ids: + product = items.product_id.id + sale_order_line = sale_order_line_pool.create(cr, uid, { + 'order_id': new_sale_id, + 'name': items.product_id.name, + 'product_uom_qty': items.qty, + 'product_id': items.product_id.id, + 'product_uom': items.uom_id.id, + 'price_unit': items.price, + 'date_planned': items.sales_end_date, + }, context=context) + view_id = data_obj._get_id(cr, uid, 'sale', 'view_order_form') + if view_id: + res_id = data_obj.browse(cr, uid, view_id, context=context).res_id + res = { + 'name': _('Quotation'), + 'view_type': 'form', + 'view_mode': 'form', + 'res_model': 'sale.order', + 'res_id': new_sale_id, + 'views':[(res_id,'form'), (False, 'tree')], + 'type': 'ir.actions.act_window', + 'nodestroy': True, + 'target': 'current', + } return res class event_items(osv.osv): diff --git a/addons/portal_event/portal_event.py b/addons/portal_event/portal_event.py index 41a7d81bcc5..570bd3131b6 100644 --- a/addons/portal_event/portal_event.py +++ b/addons/portal_event/portal_event.py @@ -26,44 +26,22 @@ from tools.translate import _ class event_event(osv.osv): _inherit = 'event.event' - def make_quotation(self, cr, uid, ids, partner_id, context=None): + def make_quotation(self, cr, uid, ids, context=None): event_pool = self.pool.get('event.event') register_pool = self.pool.get('event.registration') sale_order_line_pool = self.pool.get('sale.order.line') sale_order = self.pool.get('sale.order') - res_partner_obj = self.pool.get('res.partner') + partner_pool = self.pool.get('res.partner') prod_pricelist_obj = self.pool.get('product.pricelist') res_users_obj = self.pool.get('res.users') - customer = res_partner_obj.browse(cr, uid, partner_id, context=context) - - partner_id = res_users_obj.browse(cr, uid, uid, context=context).partner_id.id - if not partner_id: + user = res_users_obj.browse(cr, uid, uid, context=context) + partner_ids = partner_pool.search(cr, uid, [('name', '=', user.name), ('email', '=', user.user_email)]) + if partner_ids: + res_users_obj.write(cr, uid, user.id, {'partner_id': partner_ids[0]}) + if not partner_ids: raise osv.except_osv(_('Error !'), _('There is no Partner defined ' \ 'for this event:')) - - user_name = res_users_obj.browse(cr, uid, uid, context=context).name - price_list = prod_pricelist_obj.search(cr,uid,[],context=context)[0] - for event_id in self.browse(cr, uid, ids, context=context): - sale_order_lines = [] - price_list = prod_pricelist_obj.search(cr,uid,[],context=context)[0] - new_sale_id = sale_order.create(cr, uid, { - 'partner_id': partner_id, - 'pricelist_id': price_list, - 'partner_invoice_id': partner_id, - 'partner_shipping_id': partner_id, - 'date_order': event_id.date_begin - }) - if event_id.event_item_ids: - for items in event_id.event_item_ids: - product = items.product_id.id - sale_order_line = sale_order_line_pool.create(cr, uid, { - 'order_id': new_sale_id, - 'name': items.product_id.name, - 'product_uom_qty': items.qty, - 'product_id': items.product_id.id, - 'product_uom': items.uom_id.id, - 'price_unit': items.price, - 'date_planned': items.sales_end_date, - }, context=context) - return True + res = super(event_event,self).make_quotation(cr, uid, ids, context) + + return res diff --git a/addons/portal_event/security/ir.model.access.csv b/addons/portal_event/security/ir.model.access.csv index 2ca1e3def91..0b3dfe5f3b2 100644 --- a/addons/portal_event/security/ir.model.access.csv +++ b/addons/portal_event/security/ir.model.access.csv @@ -1,4 +1,6 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink access_event,event,event.model_event_event,portal_event.group_event_portal,1,0,0,0 access_registration,registration,event.model_event_registration,portal_event.group_event_portal,1,0,0,0 -access_event_items,event.items,event.model_event_event,portal_event.group_event_portal,1,1,1,0 \ No newline at end of file +access_event_items,event.items,event.model_event_event,portal_event.group_event_portal,1,1,1,0 +access_product_product,product.product,product.model_product_product,portal_event.group_event_portal,1,0,0,0 +access_product_uom,product.uom,product.model_product_uom,portal_event.group_event_portal,1,0,0,0 \ No newline at end of file diff --git a/addons/portal_event/security/portal_event_security.xml b/addons/portal_event/security/portal_event_security.xml index 64c077c7bb9..1202fcce3f5 100644 --- a/addons/portal_event/security/portal_event_security.xml +++ b/addons/portal_event/security/portal_event_security.xml @@ -5,12 +5,12 @@ - Portal User + Event Portal Groups - Events Portal + Portal User