From a85f78a48bb5a8681746925eaf6eb62243472453 Mon Sep 17 00:00:00 2001 From: "Atul Patel (OpenERP)" Date: Mon, 2 Apr 2012 11:58:17 +0530 Subject: [PATCH 01/38] [ADD]event_sale: Add event_items fields for product_ids and sales_ends fields. bzr revid: atp@tinyerp.com-20120402062817-yjd1pay0kqolv8fe --- addons/event_sale/event_sale.py | 30 +++++++++++++++++- addons/event_sale/event_sale_view.xml | 45 +++++++++++++++++++++++++++ 2 files changed, 74 insertions(+), 1 deletion(-) diff --git a/addons/event_sale/event_sale.py b/addons/event_sale/event_sale.py index df115c0eef4..0208714b083 100644 --- a/addons/event_sale/event_sale.py +++ b/addons/event_sale/event_sale.py @@ -92,4 +92,32 @@ class sale_order_line(osv.osv): message = _("The registration %s has been created from the Sale Order %s.") % (registration_id, order_line.order_id.name) registration_obj.log(cr, uid, registration_id, message) return super(sale_order_line, self).button_confirm(cr, uid, ids, context=context) - + +class event_event(osv.osv): + _inherit = 'event.event' + _columns = { + 'event_item_ids': fields.one2many('event.items','event_id', 'Event Items'), + } + +class event_items(osv.osv): + _name = "event.items" + _columns = { + 'product_id': fields.many2one('product.product', 'Product', required=True), + 'qty': fields.integer('Quantity'), + 'price': fields.integer('Price'), + 'uom_id': fields.many2one('product.uom', 'Unit of Measure'), + '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 = {} + if not product: + return {'value': data} + price = product_obj.browse(cr, uid, product).list_price + uom = product_obj.browse(cr, uid, product).uom_id.id + data['price'] = price + data['uom_id'] = uom + return {'value': data} diff --git a/addons/event_sale/event_sale_view.xml b/addons/event_sale/event_sale_view.xml index 4387e3a725a..1eb15e944a9 100644 --- a/addons/event_sale/event_sale_view.xml +++ b/addons/event_sale/event_sale_view.xml @@ -29,5 +29,50 @@ + + + Events Inherit + event.event + form + + + + + + + + + + + + Event Items Tree + event.items + tree + + + + + + + + + + + + + Event Items Form + event.items + form + +
+ + + + + + + +
+ From 95952a8d56abb3c69e3597991b3c3819e65c8775 Mon Sep 17 00:00:00 2001 From: "Bharat Devnani (OpenERP)" Date: Tue, 17 Apr 2012 15:03:40 +0530 Subject: [PATCH 02/38] [ADD] added functionality which checks the available seats at the time of confirming registration, and set current date in demo data inorder to show the upcoming events bzr revid: bde@tinyerp.com-20120417093340-824lazijkbf83m1x --- addons/event/event.py | 12 ++++++++++++ addons/event/event_demo.xml | 8 ++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/addons/event/event.py b/addons/event/event.py index 6bf1ea24786..071835fa240 100644 --- a/addons/event/event.py +++ b/addons/event/event.py @@ -102,6 +102,14 @@ class event_event(osv.osv): total_confirmed = self.event.register_current if total_confirmed < self.event.register_min or total_confirmed > self.event.register_max and self.event.register_max!=0: raise osv.except_osv(_('Error!'),_("The total of confirmed registration for the event '%s' does not meet the expected minimum/maximum. You should maybe reconsider those limits before going further") % (self.event.name)) + + def check_registration_limits_before(self, cr, uid, ids, no_of_registration, context=None): + total_confirmed = self.browse(cr, uid, ids, context=context).register_current + register_max = self.browse(cr, uid, ids, context=context).register_max + available_seats = register_max - total_confirmed + if no_of_registration > available_seats: + raise osv.except_osv(_('Warning!'),_("Only %d Seats are Available!") % (available_seats)) + def confirm_event(self, cr, uid, ids, context=None): register_pool = self.pool.get('event.registration') @@ -295,6 +303,10 @@ class event_registration(osv.osv): def registration_open(self, cr, uid, ids, context=None): """ Open Registration """ + event_obj = self.pool.get('event.event') + event_id = self.browse(cr, uid, ids, context=context)[0].event_id.id + no_of_registration = self.browse(cr, uid, ids, context=context)[0].nb_register + event_obj.check_registration_limits_before(cr, uid, event_id, no_of_registration, context=context) res = self.confirm_registration(cr, uid, ids, context=context) self.mail_user(cr, uid, ids, context=context) return res diff --git a/addons/event/event_demo.xml b/addons/event/event_demo.xml index 96bc64e12aa..d5907b4bebf 100644 --- a/addons/event/event_demo.xml +++ b/addons/event/event_demo.xml @@ -38,16 +38,16 @@ Opera of Verdi - - + + 50 350 Conference on ERP Business - - + + 200 From 27d279e3c3e21233005efa5b4c2aca788044f912 Mon Sep 17 00:00:00 2001 From: "Bharat Devnani (OpenERP)" Date: Tue, 17 Apr 2012 17:01:20 +0530 Subject: [PATCH 03/38] [IMP] improved the date manipulation in event/event_demo.xml bzr revid: bde@tinyerp.com-20120417113120-cm6tro3par1vtpy2 --- addons/event/event_demo.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/event/event_demo.xml b/addons/event/event_demo.xml index d5907b4bebf..81dad07b5e4 100644 --- a/addons/event/event_demo.xml +++ b/addons/event/event_demo.xml @@ -38,16 +38,16 @@ Opera of Verdi - - + + 50 350 Conference on ERP Business - - + + 200 From 89547acdfb6d883b6fc5c8790dbd2cc3abadedca Mon Sep 17 00:00:00 2001 From: "Bharat Devnani (OpenERP)" Date: Wed, 18 Apr 2012 14:56:37 +0530 Subject: [PATCH 04/38] [ADD] added text area in kanban view inorder to input number of seats bzr revid: bde@tinyerp.com-20120418092637-uprsxgafbu1tl8vw --- addons/event/__openerp__.py | 3 +++ addons/event/event.py | 6 +++++- addons/event/event_view.xml | 1 + addons/event/static/src/css/event.css | 3 +++ 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/addons/event/__openerp__.py b/addons/event/__openerp__.py index ea0e4316ef5..b9753835aeb 100644 --- a/addons/event/__openerp__.py +++ b/addons/event/__openerp__.py @@ -54,6 +54,9 @@ Note that: 'demo_xml': ['event_demo.xml'], 'test': ['test/process/event_draft2done.yml'], 'css': ['static/src/css/event.css'], + 'js': [ + #'static/src/js/event.js', + ], 'installable': True, 'application': True, 'auto_install': False, diff --git a/addons/event/event.py b/addons/event/event.py index 6bf1ea24786..27b8269db20 100644 --- a/addons/event/event.py +++ b/addons/event/event.py @@ -215,10 +215,13 @@ class event_event(osv.osv): register_pool = self.pool.get('event.registration') user_pool = self.pool.get('res.users') user = user_pool.browse(cr, uid, uid, context=context) + print "user", user curr_reg_ids = register_pool.search(cr, uid, [('user_id', '=', user.id), ('event_id', '=' , ids[0])]) + print "curr_reg_ids", curr_reg_ids #the subscription is done with UID = 1 because in case we share the kanban view, we want anyone to be able to subscribe if not curr_reg_ids: - curr_reg_ids = [register_pool.create(cr, 1, {'event_id': ids[0] ,'email': user.user_email, 'name':user.name, 'user_id': user.id,})] + curr_reg_ids = [register_pool.create(cr, 1, {'event_id': ids[0] ,'email': user.user_email, 'name':user.name, 'user_id': user.id, 'nb_register': 5})] + print "::::::::::::::", curr_reg_ids return register_pool.confirm_registration(cr, 1, curr_reg_ids, context=context) def unsubscribe_to_event(self, cr, uid, ids, context=None): @@ -288,6 +291,7 @@ class event_registration(osv.osv): return self.write(cr, uid, ids, {'state': 'draft'}, context=context) def confirm_registration(self, cr, uid, ids, context=None): + print "confirm_registrationconfirm_registration" self.message_append(cr, uid, ids,_('State set to open'),body_text= _('Open')) return self.write(cr, uid, ids, {'state': 'open'}, context=context) diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index 4e22569c3e1..d4bbe059084 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -203,6 +203,7 @@

+