Error Indexing some controllers/main.py files
eng-eslam-a-y opened this issue · comments
Error while indexing /home/eslam/PycharmProjects/Odoo12-dev/SerpentCS_Contributions/website_product_brand/controllers/main.py
To reindex this file IDEA has to be restarted
com.intellij.openapi.project.IndexNotReadyException: Please change caller according to com.intellij.openapi.project.IndexNotReadyException documentation
at com.intellij.openapi.project.IndexNotReadyException.create(IndexNotReadyException.java:81)
at com.intellij.util.indexing.FileBasedIndexImpl.handleDumbMode(FileBasedIndexImpl.java:715)
at com.intellij.util.indexing.FileBasedIndexImpl.ensureUpToDate(FileBasedIndexImpl.java:665)
at com.intellij.util.indexing.FileBasedIndexEx.processAllKeys(FileBasedIndexEx.java:119)
at com.intellij.util.indexing.FileBasedIndexEx.processAllKeys(FileBasedIndexEx.java:108)
at com.intellij.util.indexing.FileBasedIndexEx.getAllKeys(FileBasedIndexEx.java:102)
at dev.ngocta.pycharm.odoo.module.OdooModuleIndex.getAllModules(OdooModuleIndex.java:95)
at dev.ngocta.pycharm.odoo.module.OdooModuleIndex.getAllModules(OdooModuleIndex.java:112)
at dev.ngocta.pycharm.odoo.module.OdooAddonsMembersProvider.getMembersByQName(OdooAddonsMembersProvider.java:19)
at com.jetbrains.python.psi.types.PyModuleMembersProvider.getMembers(PyModuleMembersProvider.java:38)
at com.jetbrains.python.psi.types.PyModuleMembersProvider.resolveMember(PyModuleMembersProvider.java:54)
at com.jetbrains.python.psi.types.PyModuleType.resolveByMembersProviders(PyModuleType.java:260)
at com.jetbrains.python.psi.types.PyModuleType.resolveMemberInPackageOrModule(PyModuleType.java:105)
at com.jetbrains.python.psi.types.PyModuleType.resolveMember(PyModuleType.java:68)
at com.jetbrains.python.psi.resolve.PyResolveUtil.lambda$null$4(PyResolveUtil.java:288)
at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:271)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
at java.base/java.util.AbstractList$RandomAccessSpliterator.forEachRemaining(AbstractList.java:720)
at one.util.streamex.AbstractStreamEx.forEach(AbstractStreamEx.java:306)
at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:274)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1654)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:550)
at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260)
at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:517)
at one.util.streamex.AbstractStreamEx.toArray(AbstractStreamEx.java:344)
at com.jetbrains.python.psi.resolve.PyResolveUtil.resolveQualifiedNameInScope(PyResolveUtil.java:292)
at com.jetbrains.python.psi.impl.PyClassImpl.classTypeFromQName(PyClassImpl.java:1699)
at com.jetbrains.python.psi.impl.PyClassImpl.fillSuperClassesNoSwitchToAst(PyClassImpl.java:1388)
at com.jetbrains.python.psi.impl.PyClassImpl.getSuperClassTypes(PyClassImpl.java:1333)
at com.jetbrains.python.psi.types.PyClassTypeImpl.getSuperClassTypes(PyClassTypeImpl.java:118)
at com.jetbrains.python.psi.impl.PyClassImpl.mroLinearize(PyClassImpl.java:416)
at com.jetbrains.python.psi.impl.PyClassImpl.getMROAncestorTypes(PyClassImpl.java:1623)
at com.jetbrains.python.psi.impl.PyClassImpl.lambda$getAncestorTypesWithMetaClassInstances$5(PyClassImpl.java:1421)
at com.jetbrains.python.psi.PyUtil.getNullableParameterizedCachedValue(PyUtil.java:750)
at com.jetbrains.python.psi.PyUtil.getParameterizedCachedValue(PyUtil.java:728)
at com.jetbrains.python.psi.impl.PyClassImpl.getAncestorTypesWithMetaClassInstances(PyClassImpl.java:1417)
at com.jetbrains.python.psi.impl.PyClassImpl.getAncestorTypes(PyClassImpl.java:1412)
at com.jetbrains.python.psi.impl.PyClassImpl.getAncestorClasses(PyClassImpl.java:211)
at com.jetbrains.python.psi.impl.PyClassImpl.isSubclass(PyClassImpl.java:224)
at dev.ngocta.pycharm.odoo.model.OdooModelInfo.getInfoInner(OdooModelInfo.java:61)
at dev.ngocta.pycharm.odoo.model.OdooModelInfo.lambda$getInfo$0(OdooModelInfo.java:53)
at com.intellij.psi.util.CachedValuesManager$1.compute(CachedValuesManager.java:158)
at com.intellij.psi.impl.PsiCachedValueImpl.doCompute(PsiCachedValueImpl.java:54)
at com.intellij.util.CachedValueBase.lambda$getValueWithLock$1(CachedValueBase.java:235)
at com.intellij.openapi.util.RecursionManager$1.doPreventingRecursion(RecursionManager.java:117)
at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:75)
at com.intellij.util.CachedValueBase.getValueWithLock(CachedValueBase.java:236)
at com.intellij.psi.impl.PsiCachedValueImpl.getValue(PsiCachedValueImpl.java:43)
at com.intellij.util.CachedValuesManagerImpl.getCachedValue(CachedValuesManagerImpl.java:73)
at com.intellij.psi.util.CachedValuesManager.getCachedValue(CachedValuesManager.java:154)
at com.intellij.psi.util.CachedValuesManager.getCachedValue(CachedValuesManager.java:136)
at dev.ngocta.pycharm.odoo.model.OdooModelInfo.getInfo(OdooModelInfo.java:52)
at dev.ngocta.pycharm.odoo.model.OdooModelIndex$1.visitPyClass(OdooModelIndex.java:58)
at com.jetbrains.python.psi.impl.PyClassImpl.acceptPyVisitor(PyClassImpl.java:133)
at com.jetbrains.python.psi.impl.PyBaseElementImpl.accept(PyBaseElementImpl.java:69)
at com.intellij.psi.impl.source.tree.SharedImplUtil.acceptChildren(SharedImplUtil.java:199)
at com.intellij.psi.impl.source.PsiFileImpl.acceptChildren(PsiFileImpl.java:730)
at dev.ngocta.pycharm.odoo.model.OdooModelIndex.lambda$getIndexer$0(OdooModelIndex.java:54)
at com.intellij.util.indexing.impl.MapReduceIndex.mapByIndexer(MapReduceIndex.java:317)
at com.intellij.util.indexing.impl.MapReduceIndex.mapInput(MapReduceIndex.java:309)
at com.intellij.util.indexing.VfsAwareMapReduceIndex.mapInput(VfsAwareMapReduceIndex.java:150)
at com.intellij.util.indexing.VfsAwareMapReduceIndex.mapInput(VfsAwareMapReduceIndex.java:40)
at com.intellij.util.indexing.impl.MapReduceIndex.calculateUpdateData(MapReduceIndex.java:267)
at com.intellij.util.indexing.impl.MapReduceIndex.update(MapReduceIndex.java:239)
at com.intellij.util.indexing.FileBasedIndexImpl.updateSingleIndex(FileBasedIndexImpl.java:1253)
at com.intellij.util.indexing.FileBasedIndexImpl.lambda$doIndexFileContent$20(FileBasedIndexImpl.java:1181)
at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.freezeFileTypeTemporarilyIn(FileTypeManagerImpl.java:722)
at com.intellij.util.indexing.FileBasedIndexImpl.doIndexFileContent(FileBasedIndexImpl.java:1161)
at com.intellij.util.indexing.FileBasedIndexImpl.indexFileContent(FileBasedIndexImpl.java:1147)
at com.intellij.util.indexing.UnindexedFilesUpdater.lambda$indexFiles$1(UnindexedFilesUpdater.java:128)
at com.intellij.openapi.project.CacheUpdateRunner.lambda$null$1(CacheUpdateRunner.java:224)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1106)
at com.intellij.openapi.project.CacheUpdateRunner.lambda$null$2(CacheUpdateRunner.java:240)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:164)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:625)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:570)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:61)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:151)
at com.intellij.openapi.project.CacheUpdateRunner.lambda$createRunnable$3(CacheUpdateRunner.java:237)
at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:210)
at com.intellij.util.ConcurrencyUtil.lambda$underThreadNameRunnable$3(ConcurrencyUtil.java:198)
at com.intellij.util.RunnableCallable.call(RunnableCallable.java:20)
at com.intellij.util.RunnableCallable.call(RunnableCallable.java:11)
at com.intellij.openapi.application.impl.ApplicationImpl$1.call(ApplicationImpl.java:255)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
the file
See LICENSE file for full copyright and licensing details.
import werkzeug
from odoo import http
from odoo.http import request
import odoo.addons.website_sale.controllers.main
from odoo.addons.http_routing.models.ir_http import slug
from odoo.addons.website_sale.controllers.main import TableCompute, QueryURL
PPG = 20
PPR = 4
class WebsiteSale(odoo.addons.website_sale.controllers.main.WebsiteSale):
@http.route(['/shop', '/shop/page/int:page',
'/shop/category/<model("product.public.category"):category>',
'/shop/category/<model("product.public.category"):category>
/page/int:page', '/shop/brands'], type='http',
auth='public', website=True)
def shop(self, page=0, category=None, search='', brand=None, **post):
values = {}
domain = request.website.sale_product_domain()
if search:
domain += ['|', '|', '|',
('name', 'ilike', search),
('description', 'ilike', search),
('description_sale', 'ilike', search),
('product_variant_ids.default_code', 'ilike', search)]
if category:
domain += [('public_categ_ids', 'child_of', int(category))]
attrib_list = request.httprequest.args.getlist('attrib')
attrib_values = [map(int, v.split('-')) for v in attrib_list if v]
attrib_set = set([v[1] for v in attrib_values])
if attrib_values:
attrib = None
ids = []
for value in attrib_values:
if not attrib:
attrib = value[0]
ids.append(value[1])
elif value[0] == attrib:
ids.append(value[1])
else:
domain += [('attribute_line_ids.value_ids', 'in', ids)]
attrib = value[0]
ids = [value[1]]
if attrib:
domain += [('attribute_line_ids.value_ids', 'in', ids)]
keep = QueryURL('/shop', category=category and int(category),
search=search, attrib=attrib_list)
pricelist_context = dict(request.env.context)
if not pricelist_context.get('pricelist'):
pricelist = request.website.get_current_pricelist()
pricelist_context['pricelist'] = pricelist.id
else:
pricelist = request.env['product.pricelist'].browse(
pricelist_context['pricelist'])
product_obj = request.env['product.template']
# Brand's product search
if brand:
values.update({'brand': brand})
product_designer_obj = request.env['product.brand']
brand_ids = product_designer_obj.search([('id', '=', int(brand))])
domain += [('product_brand_id', 'in', brand_ids.ids)]
url = '/shop'
product_count = product_obj.search_count(domain)
if search:
post['search'] = search
if category:
category = request.env['product.public.category']. \
browse(int(category))
url = '/shop/category/%s' % slug(category)
pager = request.website. \
pager(url=url, total=product_count, page=page, step=PPG,
scope=7, url_args=post)
products = product_obj. \
search(domain, limit=PPG, offset=pager['offset'],
order='website_published desc, website_sequence desc')
style_obj = request.env['product.style']
styles = style_obj.search([])
category_obj = request.env['product.public.category']
categories = category_obj.search([])
categs = filter(lambda x: not x.parent_id, categories)
if category:
selected_id = int(category)
children_ids = category_obj. \
search([('parent_id', '=', selected_id)])
values.update({'child_list': children_ids})
attributes_obj = request.env['product.attribute']
attributes = attributes_obj.search([])
from_currency = request.env.user.company_id.currency_id
to_currency = pricelist.currency_id
compute_currency = self.currency_compute(from_currency, to_currency)
values.update({'search': search,
'category': category,
'attrib_values': attrib_values,
'attrib_set': attrib_set,
'pager': pager,
'pricelist': pricelist,
'products': products,
'bins': TableCompute().process(products),
'rows': PPR,
'styles': styles,
'categories': categs,
'attributes': attributes,
'compute_currency': compute_currency,
'keep': keep,
'style_in_product':
lambda style, product: style.id in [
s.id for s in product.website_style_ids],
'attrib_encode': lambda attribs: werkzeug.url_encode
([('attrib', i) for i in attribs])})
return request.render('website_sale.products', values)
def currency_compute(self, from_currency, to_currency):
return lambda price: from_currency.compute(price,
to_currency)
# Method to get the brands.
@http.route(['/page/product_brands'], type='http', auth='public',
website=True)
def product_brands(self, **post):
brand_values = []
brand_obj = request.env['product.brand']
domain = []
if post.get('search'):
domain += [('name', 'ilike', post.get('search'))]
brand_ids = brand_obj.search(domain)
for brand_rec in brand_ids:
brand_values.append(brand_rec)
keep = QueryURL('/page/product_brands', brand_id=[])
values = {'brand_rec': brand_values, 'keep': keep}
if post.get('search'):
values.update({'search': post.get('search')})
return request.render('website_product_brand.product_brands', values)
This was fixed in version 3.7. Thank you for reporting.