From ff37d0ebcaed01b628be188c4b0a29810765d18c Mon Sep 17 00:00:00 2001 From: Antony Lesuisse Date: Fri, 31 Jan 2014 00:39:51 +0100 Subject: [PATCH 001/106] website sale refactor bzr revid: al@openerp.com-20140130233951-55ttup4ohmp4i0nf --- addons/website/__openerp__.py | 4 +- .../data/{website_data.xml => data.xml} | 0 .../data/{website_demo.xml => demo.xml} | 0 addons/website/models/ir_http.py | 7 + addons/website/models/website.py | 14 +- addons/website_event_sale/models/website.py | 4 +- .../views/website_event_sale.xml | 2 +- addons/website_mail/doc/changelog.rst | 9 - addons/website_mail/doc/index.rst | 10 - addons/website_partner/__openerp__.py | 2 +- .../demo.xml} | 0 addons/website_sale/__openerp__.py | 8 +- addons/website_sale/controllers/main.py | 574 +++++++----------- .../data/{website_sale_data.xml => data.xml} | 2 +- .../data/{website_sale_demo.xml => demo.xml} | 8 +- addons/website_sale/models/__init__.py | 4 - .../models/payment_transaction.py | 11 - addons/website_sale/models/product.py | 143 ++--- .../models/product_characteristics.py | 87 --- addons/website_sale/models/sale_order.py | 171 +++++- addons/website_sale/models/website.py | 222 ------- addons/website_sale/models/website_styles.py | 30 - .../static/src/js/website_sale.js | 37 +- .../website_sale/tests/test_sale_process.py | 9 + ..._process-test.js => test_sale_process1.js} | 0 ...rocess-test-2.js => test_sale_process2.js} | 0 addons/website_sale/tests/test_ui.py | 8 - .../views/{website_sale.xml => templates.xml} | 333 +++++----- .../{website_sale_backend.xml => views.xml} | 9 +- addons/website_sale_delivery/__openerp__.py | 2 +- .../website_sale_delivery/controllers/main.py | 7 +- .../views/website_sale_delivery.xml | 2 +- 32 files changed, 644 insertions(+), 1075 deletions(-) rename addons/website/data/{website_data.xml => data.xml} (100%) rename addons/website/data/{website_demo.xml => demo.xml} (100%) delete mode 100644 addons/website_mail/doc/changelog.rst delete mode 100644 addons/website_mail/doc/index.rst rename addons/website_partner/{website_partner_demo.xml => data/demo.xml} (100%) rename addons/website_sale/data/{website_sale_data.xml => data.xml} (94%) rename addons/website_sale/data/{website_sale_demo.xml => demo.xml} (99%) delete mode 100644 addons/website_sale/models/payment_transaction.py delete mode 100644 addons/website_sale/models/product_characteristics.py delete mode 100644 addons/website_sale/models/website.py delete mode 100644 addons/website_sale/models/website_styles.py create mode 100644 addons/website_sale/tests/test_sale_process.py rename addons/website_sale/tests/{ui_suite/website_sale-sale_process-test.js => test_sale_process1.js} (100%) rename addons/website_sale/tests/{ui_suite/website_sale-sale_process-test-2.js => test_sale_process2.js} (100%) delete mode 100644 addons/website_sale/tests/test_ui.py rename addons/website_sale/views/{website_sale.xml => templates.xml} (86%) rename addons/website_sale/views/{website_sale_backend.xml => views.xml} (92%) diff --git a/addons/website/__openerp__.py b/addons/website/__openerp__.py index 9161255c835..3969c745d1e 100644 --- a/addons/website/__openerp__.py +++ b/addons/website/__openerp__.py @@ -12,7 +12,7 @@ OpenERP Website CMS 'depends': ['web', 'share', 'mail'], 'installable': True, 'data': [ - 'data/website_data.xml', + 'data/data.xml', 'security/ir.model.access.csv', 'security/ir_ui_view.xml', 'views/website_templates.xml', @@ -22,7 +22,7 @@ OpenERP Website CMS 'views/res_config.xml', ], 'demo': [ - 'data/website_demo.xml', + 'data/demo.xml', ], 'js': ['static/src/js/website.backend.js'], 'qweb' : ['static/src/xml/website.backend.xml'], diff --git a/addons/website/data/website_data.xml b/addons/website/data/data.xml similarity index 100% rename from addons/website/data/website_data.xml rename to addons/website/data/data.xml diff --git a/addons/website/data/website_demo.xml b/addons/website/data/demo.xml similarity index 100% rename from addons/website/data/website_demo.xml rename to addons/website/data/demo.xml diff --git a/addons/website/models/ir_http.py b/addons/website/models/ir_http.py index d8773e6ebfc..044b5a7f26a 100644 --- a/addons/website/models/ir_http.py +++ b/addons/website/models/ir_http.py @@ -31,6 +31,13 @@ class ir_http(orm.AbstractModel): page=PageConverter, ) + def _auth_method_public(self): + # TODO: select user_id from matching website + if not request.session.uid: + request.uid = self.pool['ir.model.data'].xmlid_to_res_id(request.cr, openerp.SUPERUSER_ID, 'base.public_user') + else: + request.uid = request.session.uid + def _dispatch(self): first_pass = not hasattr(request, 'website') request.website = None diff --git a/addons/website/models/website.py b/addons/website/models/website.py index e3c683861f9..ce91e731136 100644 --- a/addons/website/models/website.py +++ b/addons/website/models/website.py @@ -106,10 +106,6 @@ class website(osv.osv): menu = menus and menus[0] or False return dict( map(lambda x: (x, menu), ids) ) - def _get_public_user(self, cr, uid, ids, name='public_user', arg=(), context=None): - ref = self.get_public_user(cr, uid, context=context) - return dict( map(lambda x: (x, ref), ids) ) - _name = "website" # Avoid website.website convention for conciseness (for new api). Got a special authorization from xmo and rco _description = "Website" _columns = { @@ -126,7 +122,7 @@ class website(osv.osv): 'social_googleplus': fields.char('Google+ Account'), 'google_analytics_key': fields.char('Google Analytics Key'), 'user_id': fields.many2one('res.users', string='Public User'), - 'public_user': fields.function(_get_public_user, relation='res.users', type='many2one', string='Public User'), + 'partner_id': fields.related('user_id','partner_id', type='many2one', relation='res.partner', string='Public Partner'), 'menu_id': fields.function(_get_menu, relation='website.menu', type='many2one', string='Main Menu', store= { 'website.menu': (_get_menu_website, ['sequence','parent_id','website_id'], 10) @@ -185,11 +181,6 @@ class website(osv.osv): except: return False - def get_public_user(self, cr, uid, context=None): - uid = openerp.SUPERUSER_ID - res = self.pool['ir.model.data'].get_object_reference(cr, uid, 'base', 'public_user') - return res and res[1] or False - @openerp.tools.ormcache(skiparg=3) def _get_languages(self, cr, uid, id, context=None): website = self.browse(cr, uid, id) @@ -380,7 +371,8 @@ class website(osv.osv): """ router = request.httprequest.app.get_db_router(request.db) # Force enumeration to be performed as public user - uid = self.get_public_user(cr, uid, context=context) + # TODO: use website.user_id instead + uid = self.pool['ir.model.data'].xmlid_to_res_id(request.cr, openerp.SUPERUSER_ID, 'base.public_user') for rule in router.iter_rules(): if not self.rule_is_enumerable(rule): continue diff --git a/addons/website_event_sale/models/website.py b/addons/website_event_sale/models/website.py index e41a7092404..84315b52a77 100644 --- a/addons/website_event_sale/models/website.py +++ b/addons/website_event_sale/models/website.py @@ -5,6 +5,6 @@ from openerp.osv import orm class Website(orm.Model): _inherit = 'website' - def ecommerce_get_product_domain(self): + def sale_product_domain(self): # remove product event from the website content grid and list view (not removed in detail view) - return ['&'] + super(Website, self).ecommerce_get_product_domain() + [('event_ok', '=', False)] + return ['&'] + super(Website, self).sale_product_domain() + [('event_ok', '=', False)] diff --git a/addons/website_event_sale/views/website_event_sale.xml b/addons/website_event_sale/views/website_event_sale.xml index aa56a5542ac..3fe467c0aaa 100644 --- a/addons/website_event_sale/views/website_event_sale.xml +++ b/addons/website_event_sale/views/website_event_sale.xml @@ -13,7 +13,7 @@ -