diff --git a/addons/event/__openerp__.py b/addons/event/__openerp__.py index 85eb78f32f1..88943b06654 100644 --- a/addons/event/__openerp__.py +++ b/addons/event/__openerp__.py @@ -55,6 +55,7 @@ Note that: 'test': ['test/process/event_draft2done.yml'], 'css': ['static/src/css/*.css'], 'js': ['static/src/js/event.js'], + 'qweb': ['static/src/xml/event_address.xml'], 'installable': True, 'application': True, 'auto_install': False, diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index 87e29a641f2..42037637ea5 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -45,98 +45,27 @@ - - - - Event Items Tree - event.items - tree - - - - - - - - - - - - - Event Items Form - event.items - form - - - - - - - - - - - - - + Events event.event form - - - - - - - - - - - - - - - - - - - Venue : - - - - - - - - - Where - - - - - - - - Start: - - - End - - - - - - - - + + + + + + + + + - + @@ -169,7 +98,13 @@ - + + + + + + + @@ -177,7 +112,7 @@ - + @@ -194,6 +129,67 @@ + + + + + + + + + Events + event.event + form + + + + + + + + + + + + + + + + + + + + Venue : + + + + + + + + + Where + + + + + + + + Start: + + + End + + + + + + + + + + diff --git a/addons/event/static/src/css/event.css b/addons/event/static/src/css/event.css index c9f9084a583..3ff0bb8564f 100644 --- a/addons/event/static/src/css/event.css +++ b/addons/event/static/src/css/event.css @@ -128,7 +128,7 @@ div.oe_fold_column{ } .oe_mapbox { - width:380px; + width:auto; height:200px; margin-left:auto; margin-right:auto; @@ -140,8 +140,9 @@ div.oe_fold_column{ padding: 2px; border-right: 1px solid black; text-align: center; + } .oe_td_date_border { border-right:1px solid black; -} \ No newline at end of file +} diff --git a/addons/event/static/src/js/event.js b/addons/event/static/src/js/event.js index 6081533397a..0932d6ed776 100644 --- a/addons/event/static/src/js/event.js +++ b/addons/event/static/src/js/event.js @@ -14,8 +14,10 @@ openerp.event = function(instance){ set_value:function(value){ var self = this; this.get_address(value).done(function(value){ + self.__parentedParent.$element.find(".oe_td_border").after(instance.web.qweb.render("address",{'record': value})); var address = _.str.sprintf(' %(street)s, %(city)s, %(country_id[1])s', value); return self.list_addresses(address); + }); }, diff --git a/addons/event/static/src/xml/event_address.xml b/addons/event/static/src/xml/event_address.xml new file mode 100644 index 00000000000..370da230e6b --- /dev/null +++ b/addons/event/static/src/xml/event_address.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/addons/event_sale/event_sale.py b/addons/event_sale/event_sale.py index 81b69babebf..eb17f6ac59a 100644 --- a/addons/event_sale/event_sale.py +++ b/addons/event_sale/event_sale.py @@ -99,75 +99,94 @@ class event_event(osv.osv): _columns = { 'event_item_ids': fields.one2many('event.items','event_id', 'Event Items'), } -# def subscribe_to_event(self, cr, uid, ids, context=None): -# res = {} -# 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') -# partner_pool = self.pool.get("res.partner") -# data_obj = self.pool.get("ir.model.data") -# 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 = 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): -# 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, -# '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 + + def order_now(self, cr, uid, ids, context=None): + res = {} + register_pool = self.pool.get('event.registration') + sale_order_line_pool = self.pool.get('sale.order.line') + sale_order = self.pool.get('sale.order') + partner_pool = self.pool.get("res.partner") + data_obj = self.pool.get("ir.model.data") + 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: + # partner not found create new partner..... + new_partner_id = partner_pool.create(cr, uid, {'name': user.name, 'email': user.user_email}) + 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): + 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, + '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 + + def subscribe_to_event(self, cr, uid, ids, context=None): + res = {} + data_obj = self.pool.get("ir.model.data") + view_id = data_obj._get_id(cr, uid, 'event', 'view_event_page') + if view_id: + res_id = data_obj.browse(cr, uid, view_id, context=context).res_id + res = { + 'name': _('Event Page'), + 'view_type': 'form', + 'view_mode': 'form', + 'views':[(res_id,'form'), (False, 'tree')], + 'res_model': 'event.event', + 'res_id': ids[0], + 'type': 'ir.actions.act_window', + 'nodestroy': True, + 'target': 'current', + } + return res class event_items(osv.osv): _name = "event.items" _columns = { 'product_id': fields.many2one('product.product', 'Product', required=True), 'price': fields.integer('Price'), - 'qty': fields.integer('QTY'), - # 'qty': fields.selection(_max_register, 'QTY'), + 'max_qty': fields.integer('Max.Quantity available'), + 'qty': fields.integer('QTY', type ='integer'), 'uom_id': fields.many2one('product.uom', 'UoM'), 'discount': fields.integer('Discount'), 'event_id': fields.many2one('event.event', 'Event'), 'sales_end_date': fields.date('Sales End') } - + def onchange_product_id(self, cr, uid, ids, product, context=None): product_obj = self.pool.get('product.product') data = {} diff --git a/addons/event_sale/event_sale_view.xml b/addons/event_sale/event_sale_view.xml index 72782d5c421..9fb3fb9f81b 100644 --- a/addons/event_sale/event_sale_view.xml +++ b/addons/event_sale/event_sale_view.xml @@ -30,49 +30,68 @@ + + Events Inherit + event.event + form + + + + + + + + + + + + + + + + + + + + + Events Inherit event.event form - - - - + + + + + + + + + + + + + + + + - - Event Items Tree - event.items - tree - - - - - - - - - - - + + event.inherit.kanban + event.event + kanban + + + + + + + - - Event Items Form - event.items - form - - - - - - - - - -