[REM] Removed preload_records

This feature will be stripped down and moved to server's ir.http#_dispatch()

bzr revid: fme@openerp.com-20140123150448-3hhlj4vytr82k88n
This commit is contained in:
Fabien Meghazi 2014-01-23 16:04:48 +01:00
parent 8ee6f53005
commit d6690455e9
9 changed files with 0 additions and 43 deletions

View File

@ -71,23 +71,6 @@ def urlplus(url, params):
def quote_plus(value): def quote_plus(value):
return urllib.quote_plus(value.encode('utf-8') if isinstance(value, unicode) else str(value)) return urllib.quote_plus(value.encode('utf-8') if isinstance(value, unicode) else str(value))
def preload_records(*args, **kwargs):
""" This helper allows to check the existence and prefetch one or many browse_records at once.
If the browse record(s) does not exists in the db it will raise a LazyResponse
"""
field = kwargs.pop('field', 'name')
on_error = kwargs.pop('on_error', 'website.404')
error_code = kwargs.pop('error_code', 404)
try:
for arg in args:
if isinstance(arg, orm.browse_record):
arg[field]
elif isinstance(arg, orm.browse_record_list):
[record[field] for record in arg]
except:
lazy_error = request.website.render(on_error, status_code=error_code)
raise werkzeug.exceptions.HTTPException(response=lazy_error)
class website(osv.osv): class website(osv.osv):
def _get_menu_website(self, cr, uid, ids, context=None): def _get_menu_website(self, cr, uid, ids, context=None):
# IF a menu is changed, update all websites # IF a menu is changed, update all websites

View File

@ -21,7 +21,6 @@
from openerp.addons.web import http from openerp.addons.web import http
from openerp.addons.web.http import request from openerp.addons.web.http import request
from openerp.addons.website.models import website
from openerp.tools.translate import _ from openerp.tools.translate import _
from openerp import SUPERUSER_ID from openerp import SUPERUSER_ID
@ -98,7 +97,6 @@ class WebsiteBlog(http.Controller):
""" """
BYPAGE = 10 BYPAGE = 10
website.preload_records(category, tag)
cr, uid, context = request.cr, request.uid, request.context cr, uid, context = request.cr, request.uid, request.context
blog_post_obj = request.registry['blog.post'] blog_post_obj = request.registry['blog.post']
@ -180,8 +178,6 @@ class WebsiteBlog(http.Controller):
- 'nav_list': a dict [year][month] for archives navigation - 'nav_list': a dict [year][month] for archives navigation
""" """
website.preload_records(blog_post)
pager_url = "/blogpost/%s" % blog_post.id pager_url = "/blogpost/%s" % blog_post.id
pager = request.website.pager( pager = request.website.pager(

View File

@ -7,7 +7,6 @@ from openerp import SUPERUSER_ID
from openerp.addons.web import http from openerp.addons.web import http
from openerp.tools.translate import _ from openerp.tools.translate import _
from openerp.addons.web.http import request from openerp.addons.web.http import request
from openerp.addons.website.models import website
from openerp.addons.website_partner.controllers import main as website_partner from openerp.addons.website_partner.controllers import main as website_partner
@ -97,7 +96,6 @@ class WebsiteCrmPartnerAssign(http.Controller):
@http.route(['/partners/<int:partner_id>/', '/partners/<partner_name>-<int:partner_id>/'], type='http', auth="public", website=True, multilang=True) @http.route(['/partners/<int:partner_id>/', '/partners/<partner_name>-<int:partner_id>/'], type='http', auth="public", website=True, multilang=True)
def partners_ref(self, partner_id, **post): def partners_ref(self, partner_id, **post):
partner = request.registry['res.partner'].browse(request.cr, SUPERUSER_ID, partner_id, context=request.context) partner = request.registry['res.partner'].browse(request.cr, SUPERUSER_ID, partner_id, context=request.context)
website.preload_records(partner)
values = website_partner.get_partner_template_value(partner) values = website_partner.get_partner_template_value(partner)
if not values: if not values:
return self.partners(**post) return self.partners(**post)

View File

@ -5,7 +5,6 @@ from openerp import SUPERUSER_ID
from openerp.addons.web import http from openerp.addons.web import http
from openerp.tools.translate import _ from openerp.tools.translate import _
from openerp.addons.web.http import request from openerp.addons.web.http import request
from openerp.addons.website.models import website
from openerp.addons.website_partner.controllers import main as website_partner from openerp.addons.website_partner.controllers import main as website_partner
import urllib import urllib
@ -79,7 +78,6 @@ class WebsiteCustomer(http.Controller):
@http.route(['/customers/<int:partner_id>/', '/customers/<partner_name>-<int:partner_id>/'], type='http', auth="public", website=True, multilang=True) @http.route(['/customers/<int:partner_id>/', '/customers/<partner_name>-<int:partner_id>/'], type='http', auth="public", website=True, multilang=True)
def customer(self, partner_id, **post): def customer(self, partner_id, **post):
partner = request.registry['res.partner'].browse(request.cr, SUPERUSER_ID, partner_id, context=request.context) partner = request.registry['res.partner'].browse(request.cr, SUPERUSER_ID, partner_id, context=request.context)
website.preload_records(partner)
values = website_partner.get_partner_template_value(partner) values = website_partner.get_partner_template_value(partner)
if not values: if not values:
return self.customers(**post) return self.customers(**post)

View File

@ -23,7 +23,6 @@ from openerp import SUPERUSER_ID
from openerp.addons.web import http from openerp.addons.web import http
from openerp.addons.web.http import request from openerp.addons.web.http import request
from openerp.tools.translate import _ from openerp.tools.translate import _
from openerp.addons.website.models import website
from openerp.addons.website.controllers.main import Website as controllers from openerp.addons.website.controllers.main import Website as controllers
controllers = controllers() controllers = controllers()
@ -163,7 +162,6 @@ class website_event(http.Controller):
@http.route(['/event/<model("event.event"):event>/page/<page:page>'], type='http', auth="public", website=True, multilang=True) @http.route(['/event/<model("event.event"):event>/page/<page:page>'], type='http', auth="public", website=True, multilang=True)
def event_page(self, event, page, **post): def event_page(self, event, page, **post):
website.preload_records(event, on_error="website_event.404")
values = { values = {
'event': event, 'event': event,
'main_object': event 'main_object': event
@ -172,7 +170,6 @@ class website_event(http.Controller):
@http.route(['/event/<model("event.event"):event>'], type='http', auth="public", website=True, multilang=True) @http.route(['/event/<model("event.event"):event>'], type='http', auth="public", website=True, multilang=True)
def event(self, event, **post): def event(self, event, **post):
website.preload_records(event, on_error="website_event.404")
if event.menu_id and event.menu_id.child_id: if event.menu_id and event.menu_id.child_id:
target_url = event.menu_id.child_id[0].url target_url = event.menu_id.child_id[0].url
else: else:
@ -183,7 +180,6 @@ class website_event(http.Controller):
@http.route(['/event/<model("event.event"):event>/register'], type='http', auth="public", website=True, multilang=True) @http.route(['/event/<model("event.event"):event>/register'], type='http', auth="public", website=True, multilang=True)
def event_register(self, event, **post): def event_register(self, event, **post):
website.preload_records(event, on_error="website_event.404")
values = { values = {
'event': event, 'event': event,
'main_object': event, 'main_object': event,

View File

@ -21,7 +21,6 @@
from openerp.addons.web import http from openerp.addons.web import http
from openerp.addons.web.http import request from openerp.addons.web.http import request
from openerp.addons.website.models import website
from openerp.addons.website.controllers.main import Website as controllers from openerp.addons.website.controllers.main import Website as controllers
import re import re
@ -33,14 +32,11 @@ class website_event(http.Controller):
@http.route(['/event/<model("event.event"):event>/track/<model("event.track"):track>'], type='http', auth="public", website=True, multilang=True) @http.route(['/event/<model("event.event"):event>/track/<model("event.track"):track>'], type='http', auth="public", website=True, multilang=True)
def event_track_view(self, event, track, **post): def event_track_view(self, event, track, **post):
# TODO: not implemented # TODO: not implemented
website.preload_records(event, on_error="website_event.404")
website.preload_records(track)
values = { 'track': track, 'event': track.event_id, 'main_object': track } values = { 'track': track, 'event': track.event_id, 'main_object': track }
return request.website.render("website_event_track.track_view", values) return request.website.render("website_event_track.track_view", values)
@http.route(['/event/<model("event.event"):event>/agenda/'], type='http', auth="public", website=True, multilang=True) @http.route(['/event/<model("event.event"):event>/agenda/'], type='http', auth="public", website=True, multilang=True)
def event_agenda(self, event, tag=None, **post): def event_agenda(self, event, tag=None, **post):
website.preload_records(event, on_error="website_event.404")
values = { values = {
'event': event, 'event': event,
'main_object': event, 'main_object': event,
@ -52,8 +48,6 @@ class website_event(http.Controller):
'/event/<model("event.event"):event>/track/tag/<model("event.track.tag"):tag>' '/event/<model("event.event"):event>/track/tag/<model("event.track.tag"):tag>'
], type='http', auth="public", website=True, multilang=True) ], type='http', auth="public", website=True, multilang=True)
def event_tracks(self, event, tag=None, **post): def event_tracks(self, event, tag=None, **post):
website.preload_records(event, on_error="website_event.404")
website.preload_records(tag)
searches = {} searches = {}
if tag: if tag:
@ -82,7 +76,6 @@ class website_event(http.Controller):
@http.route(['/event/<model("event.event"):event>/track_proposal/'], type='http', auth="public", website=True, multilang=True) @http.route(['/event/<model("event.event"):event>/track_proposal/'], type='http', auth="public", website=True, multilang=True)
def event_track_proposal(self, event, **post): def event_track_proposal(self, event, **post):
website.preload_records(event, on_error="website_event.404")
values = { 'event': event } values = { 'event': event }
return request.website.render("website_event_track.event_track_proposal", values) return request.website.render("website_event_track.event_track_proposal", values)

View File

@ -4,7 +4,6 @@ import openerp
from openerp import SUPERUSER_ID from openerp import SUPERUSER_ID
from openerp.addons.web import http from openerp.addons.web import http
from openerp.addons.web.http import request from openerp.addons.web.http import request
from openerp.addons.website.models import website
from openerp.addons.website_partner.controllers import main as website_partner from openerp.addons.website_partner.controllers import main as website_partner
from openerp.tools.translate import _ from openerp.tools.translate import _
@ -95,7 +94,6 @@ class WebsiteMembership(http.Controller):
@http.route(['/members/<int:partner_id>/', '/members/<partner_name>-<int:partner_id>/'], type='http', auth="public", website=True, multilang=True) @http.route(['/members/<int:partner_id>/', '/members/<partner_name>-<int:partner_id>/'], type='http', auth="public", website=True, multilang=True)
def partners_ref(self, partner_id, **post): def partners_ref(self, partner_id, **post):
partner = request.registry['res.partner'].browse(request.cr, SUPERUSER_ID, partner_id, context=request.context) partner = request.registry['res.partner'].browse(request.cr, SUPERUSER_ID, partner_id, context=request.context)
website.preload_records(partner)
values = website_partner.get_partner_template_value(partner) values = website_partner.get_partner_template_value(partner)
if not values: if not values:
return self.members(**post) return self.members(**post)

View File

@ -4,7 +4,6 @@ import openerp
from openerp import SUPERUSER_ID from openerp import SUPERUSER_ID
from openerp.addons.web import http from openerp.addons.web import http
from openerp.addons.web.http import request from openerp.addons.web.http import request
from openerp.addons.website.models import website
import werkzeug import werkzeug
@ -38,7 +37,6 @@ class WebsitePartner(http.Controller):
def partner(self, partner_id, **post): def partner(self, partner_id, **post):
""" Route for displaying a single partner / customer. """ """ Route for displaying a single partner / customer. """
partner = request.registry['res.partner'].browse(request.cr, SUPERUSER_ID, partner_id, context=request.context) partner = request.registry['res.partner'].browse(request.cr, SUPERUSER_ID, partner_id, context=request.context)
website.preload_records(partner)
values = get_partner_template_value(partner) values = get_partner_template_value(partner)
if not values: if not values:
raise werkzeug.exceptions.NotFound raise werkzeug.exceptions.NotFound

View File

@ -7,7 +7,6 @@ import werkzeug
from openerp import SUPERUSER_ID from openerp import SUPERUSER_ID
from openerp.addons.web import http from openerp.addons.web import http
from openerp.addons.web.http import request from openerp.addons.web.http import request
from openerp.addons.website.models import website
PPG = 20 # Products Per Page PPG = 20 # Products Per Page
PPR = 4 # Products Per Row PPR = 4 # Products Per Row
@ -258,8 +257,6 @@ class Ecommerce(http.Controller):
@http.route(['/shop/product/<model("product.template"):product>/'], type='http', auth="public", website=True, multilang=True) @http.route(['/shop/product/<model("product.template"):product>/'], type='http', auth="public", website=True, multilang=True)
def product(self, product, search='', category='', filters='', **kwargs): def product(self, product, search='', category='', filters='', **kwargs):
website.preload_records(product, on_error="website_sale.404")
category_obj = request.registry.get('product.public.category') category_obj = request.registry.get('product.public.category')
category_ids = category_obj.search(request.cr, request.uid, [], context=request.context) category_ids = category_obj.search(request.cr, request.uid, [], context=request.context)