preparation for cleaning of v13 task-2065018 closes odoo/odoo#39051 X-original-commit: 8a0fc6476c70a4126043de3b3efbd1096e41f968 Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
60 lines
2.2 KiB
Python
60 lines
2.2 KiB
Python
# -*- coding: utf-8 -*-
|
|
from odoo import http
|
|
from odoo.http import request
|
|
from odoo.addons.website_sale.controllers.main import WebsiteSale
|
|
import json
|
|
|
|
|
|
class WebsiteSaleWishlist(WebsiteSale):
|
|
|
|
@http.route(['/shop/wishlist/add'], type='json', auth="public", website=True)
|
|
def add_to_wishlist(self, product_id, price=False, **kw):
|
|
if not price:
|
|
pricelist_context, pl = self._get_pricelist_context()
|
|
p = request.env['product.product'].with_context(pricelist_context, display_default_code=False).browse(product_id)
|
|
price = p._get_combination_info_variant()['price']
|
|
|
|
Wishlist = request.env['product.wishlist']
|
|
if request.website.is_public_user():
|
|
Wishlist = Wishlist.sudo()
|
|
partner_id = False
|
|
else:
|
|
partner_id = request.env.user.partner_id.id
|
|
|
|
wish_id = Wishlist._add_to_wishlist(
|
|
pl.id,
|
|
pl.currency_id.id,
|
|
request.website.id,
|
|
price,
|
|
product_id,
|
|
partner_id
|
|
)
|
|
|
|
if not partner_id:
|
|
request.session['wishlist_ids'] = request.session.get('wishlist_ids', []) + [wish_id.id]
|
|
|
|
return wish_id
|
|
|
|
@http.route(['/shop/wishlist'], type='http', auth="public", website=True, sitemap=False)
|
|
def get_wishlist(self, count=False, **kw):
|
|
values = request.env['product.wishlist'].with_context(display_default_code=False).current()
|
|
if count:
|
|
return request.make_response(json.dumps(values.mapped('product_id').ids))
|
|
|
|
if not len(values):
|
|
return request.redirect("/shop")
|
|
|
|
return request.render("website_sale_wishlist.product_wishlist", dict(wishes=values))
|
|
|
|
@http.route(['/shop/wishlist/remove/<model("product.wishlist"):wish>'], type='json', auth="public", website=True)
|
|
def rm_from_wishlist(self, wish, **kw):
|
|
if request.website.is_public_user():
|
|
wish_ids = request.session.get('wishlist_ids') or []
|
|
if wish.id in wish_ids:
|
|
request.session['wishlist_ids'].remove(wish.id)
|
|
request.session.modified = True
|
|
wish.sudo().unlink()
|
|
else:
|
|
wish.unlink()
|
|
return True
|