[BREAK] request.context everywhere

some stuff broken will be repaired by chm

bzr revid: fme@openerp.com-20130905151803-7d17us7rn9yubnb2
This commit is contained in:
Fabien Meghazi 2013-09-05 17:18:03 +02:00
parent c80cf7d064
commit d2e90f0621
11 changed files with 289 additions and 172 deletions

View File

@ -56,9 +56,13 @@ class Website(openerp.addons.web.controllers.main.Home):
request.cr.execute('SAVEPOINT pagenew')
imd = request.registry['ir.model.data']
view = request.registry['ir.ui.view']
view_model, view_id = imd.get_object_reference(request.cr, request.uid, 'website', 'default_page')
newview_id = view.copy(request.cr, request.uid, view_id)
newview = view.browse(request.cr, request.uid, newview_id)
view_model, view_id = imd.get_object_reference(
request.cr, request.uid, 'website', 'default_page',
context=request.context)
newview_id = view.copy(
request.cr, request.uid, view_id, context=request.context)
newview = view.browse(
request.cr, request.uid, newview_id, context=request.context)
newview.write({
'arch': newview.arch.replace("website.default_page", path),
'name': "page/%s" % path,
@ -72,7 +76,7 @@ class Website(openerp.addons.web.controllers.main.Home):
'model': 'ir.ui.view',
'res_id': newview_id,
'noupdate': True
})
}, context=request.context)
except psycopg2.IntegrityError:
request.cr.execute('ROLLBACK TO SAVEPOINT pagenew')
else:
@ -87,14 +91,20 @@ class Website(openerp.addons.web.controllers.main.Home):
imd = request.registry['ir.model.data']
view = request.registry['ir.ui.view']
view_model, view_option_id = imd.get_object_reference(request.cr, request.uid, 'website', 'theme')
views = view.search(request.cr, request.uid, [('inherit_id','=',view_option_id)])
view.write(request.cr, request.uid, views, {'inherit_id': False})
view_model, view_option_id = imd.get_object_reference(
request.cr, request.uid, 'website', 'theme', context=request.context)
views = view.search(
request.cr, request.uid, [('inherit_id', '=', view_option_id)],
context=request.context)
view.write(request.cr, request.uid, views, {'inherit_id': False},
context=request.context)
if theme_id:
module, xml_id = theme_id.split('.')
view_model, view_id = imd.get_object_reference(request.cr, request.uid, module, xml_id)
view.write(request.cr, request.uid, [view_id], {'inherit_id':view_option_id})
view_model, view_id = imd.get_object_reference(
request.cr, request.uid, module, xml_id, context=request.context)
view.write(request.cr, request.uid, [view_id],
{'inherit_id': view_option_id}, context=request.context)
return request.webcontext.render('website.themes', {'theme_changed': True})
@ -110,7 +120,8 @@ class Website(openerp.addons.web.controllers.main.Home):
@website.route('/website/customize_template_toggle', type='json', auth='admin') # FIXME: auth
def customize_template_set(self, view_id):
view_obj = request.registry.get("ir.ui.view")
view = view_obj.browse(request.cr, request.uid, int(view_id), context=request.context)
view = view_obj.browse(request.cr, request.uid, int(view_id),
context=request.context)
if view.inherit_id:
value = False
else:
@ -123,14 +134,15 @@ class Website(openerp.addons.web.controllers.main.Home):
@website.route('/website/customize_template_get', type='json', auth='admin') # FIXME: auth
def customize_template_get(self, xml_id):
imd = request.registry['ir.model.data']
view_model, view_theme_id = imd.get_object_reference(request.cr, request.uid, 'website', 'theme')
view_model, view_theme_id = imd.get_object_reference(
request.cr, request.uid, 'website', 'theme', context=request.context)
view = request.registry.get("ir.ui.view")
views = view._views_get(request.cr, request.uid, xml_id, request.context)
done = {}
result = []
for v in views:
if v.inherit_option_id and v.inherit_option_id.id<>view_theme_id:
if v.inherit_option_id and v.inherit_option_id.id != view_theme_id:
if v.inherit_option_id.id not in done:
result.append({
'name': v.inherit_option_id.name,
@ -221,8 +233,10 @@ class Website(openerp.addons.web.controllers.main.Home):
width = int(resize[0])
height = int(resize[1])
# resize maximum 500*500
if width > 500: width = 500
if height > 500: height = 500
if width > 500:
width = 500
if height > 500:
height = 500
image_base64 = openerp.tools.image_resize_image(base64_source=image_base64, size=(width, height), encoding='base64', filetype='PNG')
image_data = base64.b64decode(image_base64)
@ -244,7 +258,9 @@ class Website(openerp.addons.web.controllers.main.Home):
_object = request.registry[post['object']]
obj = _object.browse(request.cr, request.uid, _id)
_object.write(request.cr, request.uid, [_id], {'website_published': not obj.website_published})
_object.write(request.cr, request.uid, [_id],
{'website_published': not obj.website_published},
context=request.context)
obj = _object.browse(request.cr, request.uid, _id)
return obj.website_published and "1" or "0"

View File

@ -17,42 +17,58 @@ class website_contract(http.Controller):
# check contracts
contract_ids = account_obj.search(request.cr, openerp.SUPERUSER_ID, [(1, "=", 1)])
contract_project_ids = [contract.partner_id.id
for contract in account_obj.browse(request.cr, openerp.SUPERUSER_ID, contract_ids) if contract.partner_id]
contracts = account_obj.browse(request.cr, openerp.SUPERUSER_ID,
contract_ids, request.context)
contract_project_ids = [contract.partner_id.id for contract in contracts
if contract.partner_id]
domain = ['|', ('id', "in", contract_project_ids), ('id', "child_of", contract_project_ids)]
if post.get('search'):
domain += ['|',
('name', 'ilike', "%%%s%%" % post.get("search")),
('name', 'ilike', "%%%s%%" % post.get("search")),
('website_description', 'ilike', "%%%s%%" % post.get("search"))]
# public partner profile
partner_ids = partner_obj.search(request.cr, openerp.SUPERUSER_ID, domain + [('website_published', '=', True)])
partner_ids = partner_obj.search(
request.cr, openerp.SUPERUSER_ID,
domain + [('website_published', '=', True)], request.context)
google_map_partner_ids = ",".join([str(p) for p in partner_ids])
if not request.webcontext.is_public_user:
# search without website_published
partner_ids += partner_obj.search(request.cr, request.uid, domain)
partner_ids += partner_obj.search(request.cr, request.uid,
domain, context=request.context)
partner_ids = list(set(partner_ids))
# group by country
countries = partner_obj.read_group(request.cr, request.uid, domain, ["id", "country_id"], groupby="country_id", orderby="country_id")
countries.insert(0, {'country_id_count': partner_obj.search(request.cr, request.uid, domain, count=True), 'country_id': ("all", _("All Countries"))})
countries = partner_obj.read_group(
request.cr, request.uid, domain, ["id", "country_id"],
groupby="country_id", orderby="country_id", context=request.context)
country_count = partner_obj.search(
request.cr, request.uid, domain, count=True, context=request.context)
countries.insert(0, {
'country_id_count': country_count,
'country_id': ("all", _("All Countries"))
}, context=request.context)
if post.get("country", "all") != 'all':
partner_ids = partner_obj.search(request.cr, request.uid, [('id', 'in', partner_ids), ('country_id', '=', int(post.get('country')))])
partner_ids = partner_obj.search(
request.cr, request.uid,
[
('id', 'in', partner_ids),
('country_id', '=', int(post.get('country')))
], context=request.context)
step = 20
pager = website.pager(url="/references/", total=len(partner_ids), page=page, step=step, scope=7, url_args=post)
partner_ids = partner_obj.search(request.cr, openerp.SUPERUSER_ID, [('id', 'in', partner_ids)], limit=step, offset=pager['offset'])
partner_ids = partner_obj.search(
request.cr, openerp.SUPERUSER_ID, [('id', 'in', partner_ids)],
limit=step, offset=pager['offset'], context=request.context)
partners = partner_obj.browse(request.cr, openerp.SUPERUSER_ID,
partner_ids, request.context)
values = {
'countries': countries,
'partner_ids': partner_obj.browse(request.cr, openerp.SUPERUSER_ID, partner_ids),
'partner_ids': partners,
'google_map_partner_ids': google_map_partner_ids,
'pager': pager,
'searches': post,
@ -63,11 +79,17 @@ class website_contract(http.Controller):
@website.route(['/references/<int:ref_id>/'], type='http', auth="public")
def references_ref(self, ref_id=0, **post):
partner_obj = request.registry['res.partner']
partner_ids = partner_obj.search(request.cr, openerp.SUPERUSER_ID, [('website_published', '=', True), ('id', '=', ref_id)])
partner_ids = partner_obj.search(
request.cr, openerp.SUPERUSER_ID, [
('website_published', '=', True),
('id', '=', ref_id)
], context=request.context)
if not request.webcontext.is_public_user:
partner_ids += partner_obj.search(request.cr, request.uid, [('id', '=', ref_id)])
partner_ids += partner_obj.search(
request.cr, request.uid, [('id', '=', ref_id)],
context=request.context)
values = {
'partner_id': partner_obj.browse(request.cr, openerp.SUPERUSER_ID, partner_ids[0], context={'show_address': True}),
}
return request.webcontext.render("website_contract.details", values)
request.webcontext['partner_id'] = partner_obj.browse(
request.cr, openerp.SUPERUSER_ID, partner_ids[0],
dict(request.context + {'show_address': True}))
return request.webcontext.render("website_contract.details")

View File

@ -11,7 +11,8 @@ class contactus(http.Controller):
@website.route(['/crm/contactus'], type='http', auth="admin")
def contactus(self, *arg, **post):
post['user_id'] = False
request.registry['crm.lead'].create(request.cr, request.uid, post)
request.registry['crm.lead'].create(request.cr, request.uid,
post, request.context)
company = request.webcontext['res_company']
values = {
'google_map_url': "http://maps.googleapis.com/maps/api/staticmap?center=%s&sensor=false&zoom=8&size=298x298" % quote_plus('%s, %s %s, %s' % (company.street, company.city, company.zip, company.country_id and company.country_id.name_get()[0][1] or ''))

View File

@ -26,39 +26,58 @@ class website_crm_partner_assign(http.Controller):
domain_search = {}
if post.get('search'):
domain_search["search"] += ['|',
('name', 'ilike', "%%%s%%" % post.get("search")),
('name', 'ilike', "%%%s%%" % post.get("search")),
('website_description', 'ilike', "%%%s%%" % post.get("search"))]
if post.get("grade", "all") != 'all':
domain_search["grade"] = [("grade_id", "=", int(post.get("grade")))]
if post.get("country", "all") != 'all':
domain_search["country"] = [("country_id", "=", int(post.get("country")))]
# public partner profile
partner_ids = partner_obj.search(request.cr, openerp.SUPERUSER_ID, dom_without(False) )
partner_ids = partner_obj.search(
request.cr, openerp.SUPERUSER_ID, dom_without(False),
context=request.context)
google_map_partner_ids = ",".join([str(p) for p in partner_ids])
# group by country
domain = dom_without("country")
countries = partner_obj.read_group(request.cr, request.uid, domain, ["id", "country_id"], groupby="country_id", orderby="country_id")
countries.insert(0, {'country_id_count': partner_obj.search(request.cr, request.uid, domain, count=True), 'country_id': ("all", _("All Countries"))})
countries = partner_obj.read_group(
request.cr, request.uid, domain, ["id", "country_id"],
groupby="country_id", orderby="country_id", context=request.context)
partners = partner_obj.search(request.cr, request.uid, domain,
context=request.context, count=True)
countries.insert(0, {
'country_id_count': partners,
'country_id': ("all", _("All Countries"))
})
# group by grade
domain = dom_without("grade")
grades = partner_obj.read_group(request.cr, request.uid, domain, ["id", "grade_id"], groupby="grade_id", orderby="grade_id")
grades.insert(0, {'grade_id_count': partner_obj.search(request.cr, request.uid, domain, count=True), 'grade_id': ("all", _("All Grade"))})
grades = partner_obj.read_group(
request.cr, request.uid, domain, ["id", "grade_id"],
groupby="grade_id", orderby="grade_id", context=request.context)
grade_id_count = partner_obj.search(request.cr, request.uid, domain,
count=True, context=request.context)
grades.insert(0, {
'grade_id_count': grade_id_count,
'grade_id': ("all", _("All Grade"))
})
step = 20
pager = website.pager(url="/partners/", total=len(partner_ids), page=page, step=step, scope=7, url_args=post)
partner_ids = partner_obj.search(request.cr, openerp.SUPERUSER_ID, [('id', 'in', partner_ids)],
limit=step, offset=pager['offset'], order="grade_id ASC,partner_weight DESC")
partner_ids = partner_obj.search(
request.cr, openerp.SUPERUSER_ID, [('id', 'in', partner_ids)],
context=request.context, limit=step, offset=pager['offset'],
order="grade_id ASC,partner_weight DESC")
partners = partner_obj.browse(request.cr, openerp.SUPERUSER_ID,
partner_ids, request.context)
values = {
'countries': countries,
'grades': grades,
'partner_ids': partner_obj.browse(request.cr, openerp.SUPERUSER_ID, partner_ids),
'partner_ids': partners,
'google_map_partner_ids': google_map_partner_ids,
'pager': pager,
'searches': post,
@ -69,11 +88,18 @@ class website_crm_partner_assign(http.Controller):
@website.route(['/partners/<int:ref_id>/'], type='http', auth="public")
def partners_ref(self, ref_id=0, **post):
partner_obj = request.registry['res.partner']
partner_ids = partner_obj.search(request.cr, openerp.SUPERUSER_ID, [('website_published', '=', True), ('id', '=', ref_id)])
if not request.webcontext.is_public_user:
partner_ids += partner_obj.search(request.cr, request.uid, [('id', '=', ref_id)])
partner_ids = partner_obj.search(
request.cr, openerp.SUPERUSER_ID,
[('website_published', '=', True), ('id', '=', ref_id)],
context=request.context)
values = {
'partner_id': partner_obj.browse(request.cr, openerp.SUPERUSER_ID, partner_ids[0], context={'show_address': True}),
}
return request.webcontext.render("website_crm_partner_assign.details", values)
if not request.webcontext.is_public_user:
partner_ids += partner_obj.search(
request.cr, request.uid, [('id', '=', ref_id)],
context=request.context)
request.webcontext['partner_id'] = partner_obj.browse(
request.cr, openerp.SUPERUSER_ID, partner_ids[0],
context=dict(request.context + {'show_address': True}))
return request.webcontext.render("website_crm_partner_assign.details")

View File

@ -72,23 +72,45 @@ class website_event(http.Controller):
# count by domains without self search
for date in dates:
date[3] = event_obj.search(request.cr, request.uid, dom_without('date') + date[2], count=True)
date[3] = event_obj.search(
request.cr, request.uid, dom_without('date') + date[2],
count=True, context=request.context)
domain = dom_without('type')
types = event_obj.read_group(request.cr, request.uid, domain, ["id", "type"], groupby="type", orderby="type")
types.insert(0, {'type_count': event_obj.search(request.cr, request.uid, domain, count=True), 'type': ("all", _("All Categories"))})
types = event_obj.read_group(
request.cr, request.uid, domain, ["id", "type"], groupby="type",
orderby="type", context=request.context)
type_count = event_obj.search(request.cr, request.uid, domain,
count=True, context=request.context)
types.insert(0, {
'type_count': type_count,
'type': ("all", _("All Categories"))
})
domain = dom_without('country')
countries = event_obj.read_group(request.cr, request.uid, domain, ["id", "country_id"], groupby="country_id", orderby="country_id")
countries.insert(0, {'country_id_count': event_obj.search(request.cr, request.uid, domain, count=True), 'country_id': ("all", _("All Countries"))})
countries = event_obj.read_group(
request.cr, request.uid, domain, ["id", "country_id"],
groupby="country_id", orderby="country_id", context=request.context)
country_id_count = event_obj.search(request.cr, request.uid, domain,
count=True, context=request.context)
countries.insert(0, {
'country_id_count': country_id_count,
'country_id': ("all", _("All Countries"))
})
step = 5
event_count = event_obj.search(request.cr, request.uid, dom_without("none"), count=True)
event_count = event_obj.search(
request.cr, request.uid, dom_without("none"), count=True,
context=request.context)
pager = website.pager(url="/event/", total=event_count, page=page, step=step, scope=5)
obj_ids = event_obj.search(request.cr, request.uid, dom_without("none"), limit=step, offset=pager['offset'], order="date_begin DESC")
obj_ids = event_obj.search(
request.cr, request.uid, dom_without("none"), limit=step,
offset=pager['offset'], order="date_begin DESC", context=request.context)
events_ids = event_obj.browse(request.cr, request.uid, obj_ids,
context=request.context)
values = {
'event_ids': event_obj.browse(request.cr, request.uid, obj_ids),
'event_ids': events_ids,
'dates': dates,
'types': types,
'countries': countries,
@ -101,9 +123,12 @@ class website_event(http.Controller):
@website.route(['/event/<int:event_id>'], type='http', auth="public")
def event(self, event_id=None, **post):
event_obj = request.registry['event.event']
values = {
'event_id': request.registry['event.event'].browse(request.cr, request.uid, event_id, {'show_address': 1}),
'message_ids': request.registry['event.event'].browse(request.cr, request.uid, event_id).message_ids,
'event_id': event_obj.browse(request.cr, request.uid, event_id,
dict({'show_address': 1} + request.context)),
'message_ids': event_obj.browse(request.cr, request.uid, event_id,
context=request.context).message_ids,
'subscribe': post.get('subscribe'),
'range': range
}
@ -119,12 +144,12 @@ class website_event(http.Controller):
if not order:
order = website_sale.controllers.main.get_order()
partner_id = user_obj.browse(request.cr, SUPERUSER_ID, request.uid).partner_id.id
context = {}
partner_id = user_obj.browse(request.cr, SUPERUSER_ID, request.uid,
context=request.context).partner_id.id
fields = [k for k, v in order_line_obj._columns.items()]
values = order_line_obj.default_get(request.cr, SUPERUSER_ID, fields, context=context)
values = order_line_obj.default_get(request.cr, SUPERUSER_ID, fields,
context=request.context)
_values = None
for key, value in post.items():
@ -132,7 +157,8 @@ class website_event(http.Controller):
ticket_id = key.split("-")[0] == 'ticket' and int(key.split("-")[1]) or None
if not ticket_id or not quantity:
continue
ticket = ticket_obj.browse(request.cr, request.uid, ticket_id)
ticket = ticket_obj.browse(request.cr, request.uid, ticket_id,
context=request.context)
values['product_id'] = ticket.product_id.id
values['event_id'] = ticket.event_id.id
@ -146,11 +172,14 @@ class website_event(http.Controller):
# change and record value
pricelist_id = order.pricelist_id and order.pricelist_id.id or False
_values = order_line_obj.product_id_change(request.cr, SUPERUSER_ID, [], pricelist_id, ticket.product_id.id, partner_id=partner_id, context=context)['value']
_values = order_line_obj.product_id_change(
request.cr, SUPERUSER_ID, [], pricelist_id, ticket.product_id.id,
partner_id=partner_id, context=request.context)['value']
_values.update(values)
order_line_id = order_line_obj.create(request.cr, SUPERUSER_ID, _values, context=context)
order.write({'order_line': [(4, order_line_id)]}, context=context)
order_line_id = order_line_obj.create(request.cr, SUPERUSER_ID,
_values, context=request.context)
order.write({'order_line': [(4, order_line_id)]}, context=request.context)
if not _values:
return werkzeug.utils.redirect("/event/%s/" % event_id)
@ -164,13 +193,24 @@ class website_event(http.Controller):
if event_id and 'subscribe' in post and (post.get('email') or not request.webcontext.is_public_user):
if request.webcontext.is_public_user:
partner_ids = partner_obj.search(request.cr, SUPERUSER_ID, [("email", "=", post.get('email'))])
partner_ids = partner_obj.search(
request.cr, SUPERUSER_ID, [("email", "=", post.get('email'))],
context=request.context)
if not partner_ids:
partner_ids = [partner_obj.create(request.cr, SUPERUSER_ID, {"email": post.get('email'), "name": "Subscribe: %s" % post.get('email')})]
partner_data = {
"email": post.get('email'),
"name": "Subscribe: %s" % post.get('email')
}
partner_ids = [partner_obj.create(
request.cr, SUPERUSER_ID, partner_data, context=request.context)]
else:
partner_ids = [user_obj.browse(request.cr, request.uid, request.uid).partner_id.id]
event_obj.check_access_rule(request.cr, request.uid, [event_id], 'read')
event_obj.message_subscribe(request.cr, SUPERUSER_ID, [event_id], partner_ids)
partner_ids = [user_obj.browse(
request.cr, request.uid, request.uid,
context=request.context).partner_id.id]
event_obj.check_access_rule(request.cr, request.uid, [event_id],
'read', request.context)
event_obj.message_subscribe(request.cr, SUPERUSER_ID, [event_id],
partner_ids, request.context)
return self.event(event_id=event_id, subscribe=post.get('email'))
@ -182,10 +222,12 @@ class website_event(http.Controller):
if event_id and 'unsubscribe' in post and (post.get('email') or not request.webcontext.is_public_user):
if request.webcontext.is_public_user:
partner_ids = partner_obj.search(request.cr, SUPERUSER_ID, [("email", "=", post.get('email'))])
partner_ids = partner_obj.search(
request.cr, SUPERUSER_ID, [("email", "=", post.get('email'))],
context=request.context)
else:
partner_ids = [user_obj.browse(request.cr, request.uid, request.uid).partner_id.id]
event_obj.check_access_rule(request.cr, request.uid, [event_id], 'read')
event_obj.message_unsubscribe(request.cr, SUPERUSER_ID, [event_id], partner_ids)
partner_ids = [user_obj.browse(request.cr, request.uid, request.uid, request.context).partner_id.id]
event_obj.check_access_rule(request.cr, request.uid, [event_id], 'read', request.context)
event_obj.message_unsubscribe(request.cr, SUPERUSER_ID, [event_id], partner_ids, request.context)
return self.event(event_id=event_id, subscribe=None)

View File

@ -23,12 +23,16 @@ class google_map(http.Controller):
partner_obj = request.registry['res.partner']
domain = [("id", "in", [int(p) for p in post.get('partner_ids', "").split(",") if p])]
partner_ids = partner_obj.search(request.cr, openerp.SUPERUSER_ID, domain + [('website_published', '=', True)])
domain_public = domain + [('website_published', '=', True)]
partner_ids = partner_obj.search(request.cr, openerp.SUPERUSER_ID,
domain_public, context=request.context)
if not request.webcontext.is_public_user:
partner_ids += partner_obj.search(request.cr, request.uid, domain)
partner_ids += partner_obj.search(request.cr, request.uid, domain,
context=request.context)
partner_ids = list(set(partner_ids))
return partner_obj.google_map_json(request.cr, openerp.SUPERUSER_ID, partner_ids)
return partner_obj.google_map_json(request.cr, openerp.SUPERUSER_ID,
partner_ids, request.context)
@website.route(['/google_map/set_partner_position/'], type='http', auth="admin")
def google_map_set_partner_position(self, *arg, **post):
@ -43,8 +47,9 @@ class google_map(http.Controller):
'partner_latitude': latitude,
'partner_longitude': longitude,
'date_localization': datetime.now().strftime('%Y-%m-%d'),
}
partner_obj.write(request.cr, request.uid, [partner_id], values)
}
partner_obj.write(request.cr, request.uid, [partner_id], values,
request.context)
# vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -9,8 +9,10 @@ class website_hr(http.Controller):
@website.route(['/page/website.aboutus'], type='http', auth="public")
def blog(self, **post):
hr_obj = request.registry['hr.employee']
employee_ids = hr_obj.search(request.cr, request.uid, [(1, "=", 1)])
employee_ids = hr_obj.search(request.cr, request.uid, [(1, "=", 1)],
context=request.context)
values = {
'employee_ids': hr_obj.browse(request.cr, request.uid, employee_ids)
'employee_ids': hr_obj.browse(request.cr, request.uid, employee_ids,
request.context)
}
return request.webcontext.render("website.aboutus", values)

View File

@ -32,13 +32,13 @@ class website_mail(http.Controller):
}
if not request.webcontext.is_public_user and mail_group_id:
message_follower_ids = group_obj.read(request.cr, request.uid, [mail_group_id], ['message_follower_ids'])[0]['message_follower_ids']
parent_id = user_obj.browse(request.cr, SUPERUSER_ID, request.uid).partner_id.id
message_follower_ids = group_obj.read(request.cr, request.uid, [mail_group_id], ['message_follower_ids'], request.context)[0]['message_follower_ids']
parent_id = user_obj.browse(request.cr, SUPERUSER_ID, request.uid, request.context).partner_id.id
values['subscribe'] = parent_id in message_follower_ids
domain = mail_group_id and [("res_id", "=", mail_group_id)] or []
for group in message_obj.read_group(request.cr, request.uid, domain + group_obj.get_domain_public_blog(request.cr, request.uid), ['subject', 'date'], groupby="date", orderby="create_date asc"):
for group in message_obj.read_group(request.cr, request.uid, domain + group_obj.get_domain_public_blog(request.cr, request.uid), ['subject', 'date'], groupby="date", orderby="create_date asc", context=request.context):
year = group['date'].split(" ")[1]
if not values['nav_list'].get(year):
values['nav_list'][year] = {'name': year, 'date_count': 0, 'months': []}
@ -46,21 +46,21 @@ class website_mail(http.Controller):
values['nav_list'][year]['months'].append(group)
if blog_id:
values['blog_id'] = message_obj.browse(request.cr, request.uid, blog_id)
values['blog_id'] = message_obj.browse(request.cr, request.uid, blog_id, request.context)
else:
step = 20
message_count = len(group_obj.get_public_message_ids(request.cr, request.uid, domain=domain, order="create_date desc"))
message_count = len(group_obj.get_public_message_ids(request.cr, request.uid, domain=domain, order="create_date desc", context=request.context))
pager = website.pager(url="/blog/%s/" % mail_group_id, total=message_count, page=page, step=step, scope=7)
message_ids = group_obj.get_public_message_ids(request.cr, request.uid, domain=domain, order="create_date desc", limit=step, offset=pager['offset'])
message_ids = group_obj.get_public_message_ids(request.cr, request.uid, domain=domain, order="create_date desc", limit=step, offset=pager['offset'], context=request.context)
values['pager'] = pager
values['blog_ids'] = message_obj.browse(request.cr, request.uid, message_ids)
values['blog_ids'] = message_obj.browse(request.cr, request.uid, message_ids, request.context)
return request.webcontext.render("website_mail.index", values)
@website.route(['/blog/nav'], type='http', auth="public")
def nav(self, **post):
comment_ids = request.registry['mail.group'].get_public_message_ids(request.cr, request.uid, domain=safe_eval(post.get('domain')), order="create_date asc", limit=None)
return simplejson.dumps(request.registry['mail.message'].read(request.cr, request.uid, comment_ids, ['website_published', 'subject', 'res_id']))
comment_ids = request.registry['mail.group'].get_public_message_ids(request.cr, request.uid, domain=safe_eval(post.get('domain')), order="create_date asc", limit=None, context=request.context)
return simplejson.dumps(request.registry['mail.message'].read(request.cr, request.uid, comment_ids, ['website_published', 'subject', 'res_id'], request.context))
@website.route(['/blog/<int:mail_group_id>/<int:blog_id>/post'], type='http', auth="public")
def blog_post(self, mail_group_id=None, blog_id=None, **post):
@ -77,8 +77,7 @@ class website_mail(http.Controller):
website_published=blog_id and True or False,
type='comment',
subtype='mt_comment',
context={'mail_create_nosubsrequest.cribe': True},
)
context=dict({'mail_create_nosubsrequest.cribe': True} + request.context))
request.session.body = False
if post.get('body'):
@ -94,8 +93,7 @@ class website_mail(http.Controller):
website_published=False,
type='comment',
subtype='mt_comment',
context={'mail_create_nosubsrequest.cribe': True},
)
context=dict({'mail_create_nosubsrequest.cribe': True} + request.context))
return werkzeug.utils.redirect("/blog/%s/%s/" % (mail_group_id, blog_id))
@website.route(['/blog/<int:mail_group_id>/subscribe', '/blog/<int:mail_group_id>/<int:blog_id>/subscribe'], type='http', auth="public")
@ -106,13 +104,13 @@ class website_mail(http.Controller):
if mail_group_id and 'subscribe' in post and (post.get('email') or not request.webcontext.is_public_user):
if request.webcontext.is_public_user:
partner_ids = partner_obj.search(request.cr, SUPERUSER_ID, [("email", "=", post.get('email'))])
partner_ids = partner_obj.search(request.cr, SUPERUSER_ID, [("email", "=", post.get('email'))], context=request.context)
if not partner_ids:
partner_ids = [partner_obj.create(request.cr, SUPERUSER_ID, {"email": post.get('email'), "name": "Subscribe: %s" % post.get('email')})]
partner_ids = [partner_obj.create(request.cr, SUPERUSER_ID, {"email": post.get('email'), "name": "Subscribe: %s" % post.get('email')}, request.context)]
else:
partner_ids = [user_obj.browse(request.cr, request.uid, request.uid).partner_id.id]
group_obj.check_access_rule(request.cr, request.uid, [mail_group_id], 'read')
group_obj.message_subscribe(request.cr, SUPERUSER_ID, [mail_group_id], partner_ids)
partner_ids = [user_obj.browse(request.cr, request.uid, request.uid, request.context).partner_id.id]
group_obj.check_access_rule(request.cr, request.uid, [mail_group_id], 'read', request.context)
group_obj.message_subscribe(request.cr, SUPERUSER_ID, [mail_group_id], partner_ids, request.context)
return self.blog(mail_group_id=mail_group_id, blog_id=blog_id, subscribe=post.get('email'))
@ -124,10 +122,10 @@ class website_mail(http.Controller):
if mail_group_id and 'unsubscribe' in post and (post.get('email') or not request.webcontext.is_public_user):
if request.webcontext.is_public_user:
partner_ids = partner_obj.search(request.cr, SUPERUSER_ID, [("email", "=", post.get('email'))])
partner_ids = partner_obj.search(request.cr, SUPERUSER_ID, [("email", "=", post.get('email'))], context=request.context)
else:
partner_ids = [user_obj.browse(request.cr, request.uid, request.uid).partner_id.id]
group_obj.check_access_rule(request.cr, request.uid, [mail_group_id], 'read')
group_obj.message_unsubscribe(request.cr, SUPERUSER_ID, [mail_group_id], partner_ids)
partner_ids = [user_obj.browse(request.cr, request.uid, request.uid, request.context).partner_id.id]
group_obj.check_access_rule(request.cr, request.uid, [mail_group_id], 'read', request.context)
group_obj.message_unsubscribe(request.cr, SUPERUSER_ID, [mail_group_id], partner_ids, request.context)
return self.blog(mail_group_id=mail_group_id, blog_id=blog_id, subscribe=None)

View File

@ -25,33 +25,31 @@ class website_crm_partner_assign(http.Controller):
domain_search = {}
if post.get('search'):
domain_search["search"] += ['|',
('name', 'ilike', "%%%s%%" % post.get("search")),
('name', 'ilike', "%%%s%%" % post.get("search")),
('website_description', 'ilike', "%%%s%%" % post.get("search"))]
if post.get("membership_id", "all") != 'all':
domain_search["membership"] = [("membership", "=", int(post.get("membership")))]
# public membership
membership_ids = membership_obj.search(request.cr, openerp.SUPERUSER_ID, dom_without(False) )
memberships = membership_obj.browse(request.cr, openerp.SUPERUSER_ID, membership_ids )
membership_ids = membership_obj.search(request.cr, openerp.SUPERUSER_ID, dom_without(False), context=request.context)
memberships = membership_obj.browse(request.cr, openerp.SUPERUSER_ID, membership_ids, request.context)
google_map_partner_ids = ",".join([str(m.partner.id) for m in memberships])
# group by membership_id
domain = dom_without("membership")
memberships = membership_obj.read_group(request.cr, request.uid, domain, ["id", "membership_id"], groupby="membership_id", orderby="membership_id")
memberships.insert(0, {'membership_id_count': membership_obj.search(request.cr, request.uid, domain, count=True), 'membership_id': ("all", _("All Groups"))})
memberships = membership_obj.read_group(request.cr, request.uid, domain, ["id", "membership_id"], groupby="membership_id", orderby="membership_id", context=request.context)
memberships.insert(0, {'membership_id_count': membership_obj.search(request.cr, request.uid, domain, count=True, context=request.context), 'membership_id': ("all", _("All Groups"))})
step = 20
pager = website.pager(url="/members/", total=len(membership_ids), page=page, step=step, scope=7, url_args=post)
membership_ids = membership_obj.search(request.cr, openerp.SUPERUSER_ID, [('id', 'in', membership_ids)],
limit=step, offset=pager['offset'], order="membership_id ASC,date DESC")
membership_ids = membership_obj.search(
request.cr, openerp.SUPERUSER_ID, [('id', 'in', membership_ids)],
limit=step, offset=pager['offset'], order="membership_id ASC,date DESC",
context=request.context)
values = {
'memberships': memberships,
'membership_line_ids': membership_obj.browse(request.cr, openerp.SUPERUSER_ID, membership_ids),
'membership_line_ids': membership_obj.browse(request.cr, openerp.SUPERUSER_ID, membership_ids, request.context),
'google_map_partner_ids': google_map_partner_ids,
'pager': pager,
'searches': post,
@ -62,11 +60,13 @@ class website_crm_partner_assign(http.Controller):
@website.route(['/members/<int:ref_id>/'], type='http', auth="public")
def partners_ref(self, ref_id=0, **post):
partner_obj = request.registry['res.partner']
partner_ids = partner_obj.search(request.cr, openerp.SUPERUSER_ID, [('website_published', '=', True), ('id', '=', ref_id)])
partner_ids = partner_obj.search(request.cr, openerp.SUPERUSER_ID, [('website_published', '=', True), ('id', '=', ref_id)], context=request.context)
if not request.webcontext.is_public_user:
partner_ids += partner_obj.search(request.cr, request.uid, [('id', '=', ref_id)])
partner_ids += partner_obj.search(request.cr, request.uid, [('id', '=', ref_id)], context=request.context)
values = {
'partner_id': partner_obj.browse(request.cr, openerp.SUPERUSER_ID, partner_ids[0], context={'show_address': True}),
'partner_id': partner_obj.browse(
request.cr, openerp.SUPERUSER_ID, partner_ids[0],
context=dict({'show_address': True} + request.context)),
}
return request.webcontext.render("website_membership.details", values)

View File

@ -10,9 +10,9 @@ class Website(osv.osv):
_inherit = "website"
def get_webcontext(self, values={}, **kw):
project_obj = request.registry['project.project']
project_ids = project_obj.search(request.cr, request.uid, [('privacy_visibility', "=", "public")])
project_ids = project_obj.search(request.cr, request.uid, [('privacy_visibility', "=", "public")], context=request.context)
values.update({
'project_ids': project_obj.browse(request.cr, request.uid, project_ids),
'project_ids': project_obj.browse(request.cr, request.uid, project_ids, request.context),
})
return super(Website, self).get_webcontext(values, **kw)
@ -22,5 +22,5 @@ class website_project(http.Controller):
@website.route(['/project/<int:project_id>/'], type='http', auth="public")
def blog(self, project_id=None, **post):
project_obj = request.registry['project.project']
project = project_obj.browse(request.cr, request.uid, project_id)
project = project_obj.browse(request.cr, request.uid, project_id, request.context)
return request.webcontext.render("website_project.index", {'project_id': project})

View File

@ -15,24 +15,24 @@ def get_order(order_id=None):
context = {}
if order_id:
try:
order = order_obj.browse(request.cr, SUPERUSER_ID, order_id)
order = order_obj.browse(request.cr, SUPERUSER_ID, order_id, request.context)
order.pricelist_id
except:
order_id = None
if not order_id:
fields = [k for k, v in order_obj._columns.items()]
order_value = order_obj.default_get(request.cr, SUPERUSER_ID, fields)
order_value = order_obj.default_get(request.cr, SUPERUSER_ID, fields, request.context)
if request.httprequest.session.get('ecommerce_pricelist'):
order_value['pricelist_id'] = request.httprequest.session['ecommerce_pricelist']
order_value['partner_id'] = request.registry.get('res.users').browse(request.cr, SUPERUSER_ID, request.uid).partner_id.id
order_value.update(order_obj.onchange_partner_id(request.cr, SUPERUSER_ID, [], order_value['partner_id'], context={})['value'])
order_id = order_obj.create(request.cr, SUPERUSER_ID, order_value)
order = order_obj.browse(request.cr, SUPERUSER_ID, order_id)
order_value['partner_id'] = request.registry.get('res.users').browse(request.cr, SUPERUSER_ID, request.uid, request.context).partner_id.id
order_value.update(order_obj.onchange_partner_id(request.cr, SUPERUSER_ID, [], order_value['partner_id'], context=request.context)['value'])
order_id = order_obj.create(request.cr, SUPERUSER_ID, order_value, request.context)
order = order_obj.browse(request.cr, SUPERUSER_ID, order_id, request.context)
request.httprequest.session['ecommerce_order_id'] = order.id
context = {
context = dict({
'pricelist': order.pricelist_id.id,
}
} + request.context)
return order_obj.browse(request.cr, SUPERUSER_ID, order_id, context=context)
def get_current_order():
@ -82,17 +82,17 @@ class Ecommerce(http.Controller):
domain += [('product_variant_ids.public_categ_id.id', 'child_of', cat_id)] + domain
step = 20
product_count = len(product_obj.search(request.cr, request.uid, domain))
product_count = len(product_obj.search(request.cr, request.uid, domain, context=request.context))
pager = website.pager(url="/shop/category/%s/" % cat_id, total=product_count, page=page, step=step, scope=7, url_args=post)
product_ids = product_obj.search(request.cr, request.uid, domain, limit=step, offset=pager['offset'])
product_ids = product_obj.search(request.cr, request.uid, domain, limit=step, offset=pager['offset'], context=request.context)
context = {'pricelist': self.get_pricelist()}
request.context['pricelist'] = self.get_pricelist()
values = {
'categories': self.get_categories(),
'category_id': cat_id,
'products': product_obj.browse(request.cr, SUPERUSER_ID, product_ids, context=context),
'products': product_obj.browse(request.cr, SUPERUSER_ID, product_ids, context=request.context),
'search': post.get("search"),
'pager': pager,
}
@ -108,12 +108,13 @@ class Ecommerce(http.Controller):
product_obj = request.registry.get('product.template')
category_obj = request.registry.get('product.public.category')
context = {'pricelist': self.get_pricelist()}
category_list = category_obj.name_get(request.cr, request.uid, category_obj.search(request.cr, request.uid, [(1,'=',1)]))
category_ids = category_obj.search(request.cr, request.uid, [(1, '=', 1)], context=request.context)
category_list = category_obj.name_get(request.cr, request.uid, category_ids, request.context)
category_list = sorted(category_list, key=lambda category: category[1])
product = product_obj.browse(request.cr, request.uid, product_id, context=context)
request.context['pricelist'] = self.get_pricelist()
product = product_obj.browse(request.cr, request.uid, product_id, context=request.context)
values = {
'category_id': post.get('category_id') and int(post.get('category_id')) or None,
'search': post.get("search"),
@ -125,12 +126,14 @@ class Ecommerce(http.Controller):
@website.route(['/shop/add_product/'], type='http', auth="public")
def add_product(self, **post):
product_id = request.registry.get('product.product').create(request.cr, request.uid, {'name': 'New Product'})
product_id = request.registry.get('product.product').create(request.cr, request.uid, {'name': 'New Product'}, request.context)
return werkzeug.utils.redirect("/shop/product/%s/" % product_id)
@website.route(['/shop/change_category/<product_id>/'], type='http', auth="public")
def edit_product(self, product_id=0, **post):
request.registry.get('product.template').write(request.cr, request.uid, [int(product_id)], {'public_categ_id': int(post.get('public_categ_id', 0))})
request.registry.get('product.template').write(
request.cr, request.uid, [int(product_id)],
{'public_categ_id': int(post.get('public_categ_id', 0))}, request.context)
return "1"
def get_pricelist(self):
@ -144,13 +147,13 @@ class Ecommerce(http.Controller):
pricelist_id = False
if code:
pricelist_obj = request.registry.get('product.pricelist')
pricelist_ids = pricelist_obj.search(request.cr, SUPERUSER_ID, [('code', '=', code)])
pricelist_ids = pricelist_obj.search(request.cr, SUPERUSER_ID, [('code', '=', code)], context=request.context)
if pricelist_ids:
pricelist_id = pricelist_ids[0]
if not pricelist_id:
partner_id = request.registry.get('res.users').browse(request.cr, SUPERUSER_ID, request.uid).partner_id.id
pricelist_id = request.registry['sale.order'].onchange_partner_id(request.cr, SUPERUSER_ID, [], partner_id, context={})['value']['pricelist_id']
partner_id = request.registry.get('res.users').browse(request.cr, SUPERUSER_ID, request.uid, request.context).partner_id.id
pricelist_id = request.registry['sale.order'].onchange_partner_id(request.cr, SUPERUSER_ID, [], partner_id, context=request.context)['value']['pricelist_id']
request.httprequest.session['ecommerce_pricelist'] = pricelist_id
@ -171,7 +174,7 @@ class Ecommerce(http.Controller):
if not order:
order = get_order()
context = {'pricelist': self.get_pricelist()}
context = dict({'pricelist': self.get_pricelist()} + request.context)
quantity = 0
@ -230,7 +233,7 @@ class Ecommerce(http.Controller):
if order:
for line in order.order_line:
suggested_ids += [p.id for p in line.product_id and line.product_id.suggested_product_ids or [] for line in order.order_line]
suggested_ids = prod_obj.search(request.cr, request.uid, [('id', 'in', suggested_ids)])
suggested_ids = prod_obj.search(request.cr, request.uid, [('id', 'in', suggested_ids)], context=request.context)
# select 3 random products
suggested_products = []
while len(suggested_products) < 3 and suggested_ids:
@ -239,7 +242,7 @@ class Ecommerce(http.Controller):
values = {
'categories': self.get_categories(),
'suggested_products': prod_obj.browse(request.cr, request.uid, suggested_products),
'suggested_products': prod_obj.browse(request.cr, request.uid, suggested_products, request.context),
}
return request.webcontext.render("website_sale.mycart", values)
@ -286,15 +289,15 @@ class Ecommerce(http.Controller):
checkout = {}
if not request.webcontext.is_public_user:
partner = user_obj.browse(request.cr, request.uid, request.uid).partner_id
partner = user_obj.browse(request.cr, request.uid, request.uid, request.context).partner_id
partner_id = partner.id
fields = ["name", "phone", "fax", "company", "email", "street", "city", "state_id", "zip", "country_id"]
checkout = user_obj.read(request.cr, SUPERUSER_ID, [partner_id], fields)[0]
checkout = user_obj.read(request.cr, SUPERUSER_ID, [partner_id], fields, request.context)[0]
checkout['company'] = partner.parent_id and partner.parent_id.name or ''
shipping_ids = partner_obj.search(request.cr, request.uid, [("parent_id", "=", partner_id), ('type', "=", 'delivery')])
shipping_ids = partner_obj.search(request.cr, request.uid, [("parent_id", "=", partner_id), ('type', "=", 'delivery')], context=request.context)
if shipping_ids:
for k,v in partner_obj.read(request.cr, request.uid, shipping_ids[0]).items():
for k,v in partner_obj.read(request.cr, request.uid, shipping_ids[0], request.context).items():
checkout['shipping_'+k] = v or ''
checkout.update(request.session.setdefault('checkout', {}))
@ -302,8 +305,10 @@ class Ecommerce(http.Controller):
checkout[k] = v or ''
values['checkout'] = checkout
values['countries'] = country_obj.browse(request.cr, SUPERUSER_ID, country_obj.search(request.cr, SUPERUSER_ID, [(1, "=", 1)]))
values['states'] = country_state_obj.browse(request.cr, SUPERUSER_ID, country_state_obj.search(request.cr, SUPERUSER_ID, [(1, "=", 1)]))
countries_ids = country_obj.search(request.cr, SUPERUSER_ID, [(1, "=", 1)], context=request.context)
values['countries'] = country_obj.browse(request.cr, SUPERUSER_ID, countries_ids, request.context)
states_ids = country_state_obj.search(request.cr, SUPERUSER_ID, [(1, "=", 1)], context=request.context)
values['states'] = country_state_obj.browse(request.cr, SUPERUSER_ID, states_ids, request.context)
return request.webcontext.render("website_sale.checkout", values)
@ -335,10 +340,10 @@ class Ecommerce(http.Controller):
# search or create company
company_id = None
if post['company']:
company_ids = partner_obj.search(request.cr, SUPERUSER_ID, [("name", "ilike", post['company']), ('is_company', '=', True)])
company_ids = partner_obj.search(request.cr, SUPERUSER_ID, [("name", "ilike", post['company']), ('is_company', '=', True)], context=request.context)
company_id = company_ids and company_ids[0] or None
if not company_id:
company_id = partner_obj.create(request.cr, SUPERUSER_ID, {'name': post['company'], 'is_company': True})
company_id = partner_obj.create(request.cr, SUPERUSER_ID, {'name': post['company'], 'is_company': True}, request.context)
partner_value = {
'fax': post['fax'],
@ -353,10 +358,10 @@ class Ecommerce(http.Controller):
'state_id': post['state_id'],
}
if not request.webcontext.is_public_user:
partner_id = user_obj.browse(request.cr, request.uid, request.uid).partner_id.id
partner_obj.write(request.cr, request.uid, [partner_id], partner_value)
partner_id = user_obj.browse(request.cr, request.uid, request.uid, request.context).partner_id.id
partner_obj.write(request.cr, request.uid, [partner_id], partner_value, request.context)
else:
partner_id = partner_obj.create(request.cr, SUPERUSER_ID, partner_value)
partner_id = partner_obj.create(request.cr, SUPERUSER_ID, partner_value, request.context)
shipping_id = None
if post.get('shipping_different'):
@ -375,19 +380,19 @@ class Ecommerce(http.Controller):
domain = [(key, '_id' in key and '=' or 'ilike', '_id' in key and value and int(value) or False)
for key, value in shipping_value.items() if key in required_field + ["type", "parent_id"]]
shipping_ids = partner_obj.search(request.cr, SUPERUSER_ID, domain)
shipping_ids = partner_obj.search(request.cr, SUPERUSER_ID, domain, context=request.context)
if shipping_ids:
shipping_id = shipping_ids[0]
partner_obj.write(request.cr, SUPERUSER_ID, [shipping_id], shipping_value)
partner_obj.write(request.cr, SUPERUSER_ID, [shipping_id], shipping_value, request.context)
else:
shipping_id = partner_obj.create(request.cr, SUPERUSER_ID, shipping_value)
shipping_id = partner_obj.create(request.cr, SUPERUSER_ID, shipping_value, request.context)
order_value = {
'partner_id': partner_id,
'partner_invoice_id': partner_id,
'partner_shipping_id': shipping_id or partner_id
}
order_value.update(request.registry.get('sale.order').onchange_partner_id(request.cr, SUPERUSER_ID, [], order.partner_id.id, context={})['value'])
order_value.update(request.registry.get('sale.order').onchange_partner_id(request.cr, SUPERUSER_ID, [], order.partner_id.id, context=request.context)['value'])
order.write(order_value)
return werkzeug.utils.redirect("/shop/payment/")
@ -405,8 +410,8 @@ class Ecommerce(http.Controller):
}
payment_obj = request.registry.get('portal.payment.acquirer')
payment_ids = payment_obj.search(request.cr, SUPERUSER_ID, [('visible', '=', True)])
values['payments'] = payment_obj.browse(request.cr, SUPERUSER_ID, payment_ids)
payment_ids = payment_obj.search(request.cr, SUPERUSER_ID, [('visible', '=', True)], context=request.context)
values['payments'] = payment_obj.browse(request.cr, SUPERUSER_ID, payment_ids, request.context)
for payment in values['payments']:
content = payment_obj.render(request.cr, SUPERUSER_ID, payment.id, order, order.name, order.pricelist_id.currency_id, order.amount_total)
payment._content = content