# -*- coding: utf-8 -*-
from odoo import http
from odoo.http import request
import werkzeug
from odoo.exceptions import UserError
from odoo.addons.website_sale.controllers.main import WebsiteSale
import json
class opendons(http.Controller):
@http.route(['/opendons/object'], type='http', auth='public', website=True, sitemap=False,csrf=False)
def object(self,model,id,*args,**kw):
field_list=request.env[model].sudo().fields_get()
objet=request.env[model].search([('id','=',int(id))])
# result=[]
# for key in field_list:
# result.append((key,str(objet[key])))
# result.sort()
# return json.dumps(result)
result=""
for key in field_list:
result=result+str(key)+':'+str(objet[key])+'
'
return result
@http.route(['/opendons/cp'],type='json', methods=['GET','POST'],auth="public",csrf=False)
def index(self, **post):
name = post.get('name', False)
res={}
res['dd']='ggggg'
json_object = json.dumps(res, indent = 4)
return json_object
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//', auth='public')
# def object(self, obj, **kw):
# return http.request.render('donation_qualifier.object', {
# 'object': obj
# })