You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

67 lines
2.6 KiB

# -*- coding: utf-8 -*-
from odoo import http
from odoo.http import request
from odoo.exceptions import UserError
from odoo.addons.website_sale.controllers.main import WebsiteSale
import json
class SalesProduct(WebsiteSale):
@http.route(['/shop/cart/update'], type='http', auth="public", methods=['POST'], website=True)
def cart_update(self, product_id, add_qty=1, set_qty=0, **kw):
"""This route is called when adding a product to cart (no options)."""
#return kw.get('donation_amount')
sale_order = request.website.sale_get_order(force_create=True)
if sale_order.state != 'draft':
request.session['sale_order_id'] = None
sale_order = request.website.sale_get_order(force_create=True)
product_custom_attribute_values = None
if kw.get('product_custom_attribute_values'):
product_custom_attribute_values = json.loads(kw.get('product_custom_attribute_values'))
no_variant_attribute_values = None
if kw.get('no_variant_attribute_values'):
no_variant_attribute_values = json.loads(kw.get('no_variant_attribute_values'))
product=request.env['product.product'].search([('id','=',int(product_id))])
donation_amount=0
if 'donation_amount' in kw:
donation_amount=int(kw.get('donation_amount'))
sale_order._cart_update(
product_id=int(product_id),
add_qty=add_qty,
set_qty=set_qty,
product_custom_attribute_values=product_custom_attribute_values,
no_variant_attribute_values=no_variant_attribute_values,
donation_amount=donation_amount
)
if kw.get('express'):
return request.redirect("/shop/checkout?express=1")
return request.redirect("/shop/cart")
# class DonationQualifier(http.Controller):
# @http.route('/donation_qualifier/donation_qualifier/', auth='public')
# def index(self, **kw):
# return "Hello, world"
# @http.route('/donation_qualifier/donation_qualifier/objects/', auth='public')
# def list(self, **kw):
# return http.request.render('donation_qualifier.listing', {
# 'root': '/donation_qualifier/donation_qualifier',
# 'objects': http.request.env['donation_qualifier.donation_qualifier'].search([]),
# })
# @http.route('/donation_qualifier/donation_qualifier/objects/<model("donation_qualifier.donation_qualifier"):obj>/', auth='public')
# def object(self, obj, **kw):
# return http.request.render('donation_qualifier.object', {
# 'object': obj
# })