Traceback (most recent call last): File "/home/tom/odoo/odoo-server/odoo/addons/base/models/qweb.py", line 344, in _compiled_fn return compiled(self, append, new, options, log) File "<template>", line 1, in template_741_43 AttributeError: 'NoneType' object has no attribute 'get_state_count'
my code
<div class="card text-white bg-primary"> <div class="card-body"> <div class="stat-widget-one"> <div class="stat-content dib"> <div class="stat-text">Quatation</div> <div class='stat-digit'> <t t-esc="sale.get_state_count()"/> </div> </div> </div> </div> </div>
# -*- coding: utf-8 -*- from odoo import api, fields, models, _ class SaleOrder(models.Model): _inherit = 'sale.order' @api.multi def get_state_count(self): count = len(self.env['sale.order'].search([('state','=','draft')]).ids) print("\n\n\n\n",count) return count please help
thanks in advance
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- إدارة علاقات العملاء
- e-Commerce
- المحاسبة
- المخزون
- PoS
- Project
- MRP
لقد تم الإبلاغ عن هذا السؤال
Hi Geo,
You should remove the @api.multi. Because of the @api.multi decorator Odoo cannot find your function. Are you inheriting the default existing report in Odoo? Because then you should not use "sale.get_sale_count()" but "doc.get_sale_count()" as Odoo uses doc as variable in this report. An example in XML:
<t t-set="state_count" t-value="doc.get_state_count()"/>
<span t-esc="state_count"/>
An example in Python:
def get_state_count(self): count = len(self.env['sale.order'].search([('state','=','draft')]).ids) return count
Regards,
Yenthe
Exactly which report are you inheriting and modifying? Are you not defining the variables? Perhaps it is nice to add more code to your initial question so we can see the whole XML.
actually its not report
controller
from odoo import http
from odoo.http import request
from odoo.addons.sale.controllers.onboarding import OnboardingController # Import the class
class CustomOnboardingController(OnboardingController): # Inherit in your custom class
@http.route('/sales/sale_quotation_onboarding_panel', auth='user', type='json')
def sale_quotation_onboarding(self):
#res = super(CustomOnboardingController, self).sale_quotation_onboarding()
company = request.env.user.company_id
return {
'html': request.env.ref('sale_notify.sale_quotation_notify').render({
'company': company,
'state': company.get_and_update_sale_quotation_onboarding_state()
})
}
xml
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="sale_quotation_notify" name="sale.quotation.notify">
<div class="row">
<div class ="col-5">
<div class="row">
<div class ='col'>
<!-- <div class="stat-digit">
<t t-set="count" t-value='sale.get_state_count()'/>
</div> -->
<t t-set="state_count" t-value="sale.get_state_count()"/>
<div class="card text-white bg-primary">
<div class="card-body">
<div class="stat-widget-one">
<div class="stat-content dib">
<div class="stat-text">Quatation</div>
<div class='stat-digit'>
<t t-esc="state_count"/>
</div>
</div>
</div>
</div>
</div>
</div>
<div class ='col'>
<div class="card text-white bg-primary">
<div class="card-body">
<div class="stat-widget-one">
<div class="stat-content dib">
<div class="stat-text">Quatation Sent</div>
</div>
</div>
</div>
</div>
</div>
<div class ='col'>
<div class="card text-white bg-primary">
<div class="card-body">
<div class="stat-widget-one">
<div class="stat-content dib">
<div class="stat-text">Sale Order</div>
</div>
</div>
</div>
</div>
</div>
<div class ='col'>
<div class="card text-white bg-primary">
<div class="card-body">
<div class="stat-widget-one">
<div class="stat-content dib">
<div class="stat-text">Cancel</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
</odoo>
python
# -*- coding: utf-8 -*-
from odoo import api, fields, models, _
class SaleOrder(models.Model):
_inherit = 'sale.order'
def get_state_count(self):
count = len(self.env['sale.order'].search([('state','=','draft')]).ids)
print("\n\n\n\n",count)
return count
thanks for your consider
Hmm interesting. I assume that because you call it from the controller with a render that it works a bit different. I have no modules that look like this to test with & I haven't done this requirement for now I'm afraid. Let's see if somebody else can give you a good solution for this.
هل أعجبك النقاش؟ لا تكن مستمعاً فقط. شاركنا!
أنشئ حساباً اليوم لتستمتع بالخصائص الحصرية، وتفاعل مع مجتمعنا الرائع!
تسجيل