My ACSA


 
Sorry. That page is not available right now.
 
 


 

 

 

 

 

 

 
Product_productNumber: ['101AMhttp://www.acsa-arch.org/forms/store/ProductFormPublic/search?action=1', '101AM']
action: 1

Site Root: /data/acsa/current/acsa_org/
username: public
userid: 0
dbname: acsa
Accept: */*
Host: www.acsa-arch.org
Referer: http://www.acsa-arch.org/forms/store/ProductFormPublic/search?action=1&Product_productNumber=101AMhttp://www.acsa-arch.org/forms/store/ProductFormPublic/search?action=1&Product_productNumber=101AM
User-Agent: claudebot
X-Forwarded-Proto: https
X-Forwarded-Protocol: https

SCRIPT_NAME: /forms/store/ProductFormPublic/search

When: Mar 28, 2024 10:41 am
PID: 18220

 
Error in AttributeError.
Here is a traceback of function calls, starting with the closest to that error.
Python 3.11.0: /home/maxx/lib/matrixmaxx3/bin/uwsgi
Thu Mar 28 10:41:50 2024

AttributeError: 'list' object has no attribute 'split'


      __cause__ = None
      __class__ = <class 'AttributeError'>
      __context__ = None
      __delattr__ = <method-wrapper '__delattr__' of AttributeError object>
      __dict__ = {}
      __dir__ = <built-in method __dir__ of AttributeError object>
      __doc__ = 'Attribute not found.'
      __eq__ = <method-wrapper '__eq__' of AttributeError object>
      __format__ = <built-in method __format__ of AttributeError object>
      __ge__ = <method-wrapper '__ge__' of AttributeError object>
      __getattribute__ = <method-wrapper '__getattribute__' of AttributeError object>
      __getstate__ = <built-in method __getstate__ of AttributeError object>
      __gt__ = <method-wrapper '__gt__' of AttributeError object>
      __hash__ = <method-wrapper '__hash__' of AttributeError object>
      __init__ = <method-wrapper '__init__' of AttributeError object>
      __init_subclass__ = <built-in method __init_subclass__ of type object>
      __le__ = <method-wrapper '__le__' of AttributeError object>
      __lt__ = <method-wrapper '__lt__' of AttributeError object>
      __ne__ = <method-wrapper '__ne__' of AttributeError object>
      __new__ = <built-in method __new__ of type object>
      __reduce__ = <built-in method __reduce__ of AttributeError object>
      __reduce_ex__ = <built-in method __reduce_ex__ of AttributeError object>
      __repr__ = <method-wrapper '__repr__' of AttributeError object>
      __setattr__ = <method-wrapper '__setattr__' of AttributeError object>
      __setstate__ = <built-in method __setstate__ of AttributeError object>
      __sizeof__ = <built-in method __sizeof__ of AttributeError object>
      __str__ = <method-wrapper '__str__' of AttributeError object>
      __subclasshook__ = <built-in method __subclasshook__ of type object>
      __suppress_context__ = False
      __traceback__ = <traceback object>
      add_note = <built-in method add_note of AttributeError object>
      args = ("'list' object has no attribute 'split'",)
      name = 'split'
      obj = ['101AMhttp://www.acsa-arch.org/forms/store/ProductFormPublic/search?action=1', '101AM']
      with_traceback = <built-in method with_traceback of AttributeError object>

 /data/acsa/current/libs/framework/DGEInputOr.py in alterValue(self=<<class 'libs.framework.DGEInputOr.DGEInputOr'> instance id=1 name='productNumber'>, value=['101AMhttp://www.acsa-arch.org/forms/store/ProductFormPublic/search?action=1', '101AM'])
    6 standard_library.install_aliases()
    7 from builtins import *
    8 
    9 from . import DGEAttribute
   10 DGEAttribute = DGEAttribute.DGEAttribute
   11 
   12 class DGEInputOr(DGEAttribute):
   13     error = "Class DGEInputOr"
   14     def alterValue(self, value):
   15         return value.split()
value = ['101AMhttp://www.acsa-arch.org/forms/store/ProductFormPublic/search?action=1', '101AM']
value.split undefined

 /data/acsa/current/libs/framework/DGEAttribute.py in getCriteria(self=<<class 'libs.framework.DGEInputOr.DGEInputOr'> instance id=1 name='productNumber'>, po=<Product id="12EAA500000048", isNew="True", context="default", memId="140146641197456">, fields=OurMultiDict([('action', '1'), ('Product_productNumber', ['101AMhttp://www.acsa-arch.org/forms/store/ProductFormPublic/search?action=1', '101AM'])]), inputPrefix='Product', negate=0, webapp=<ProductFormPublic.ProductFormPublic object at 0x7f766ec3fa10>)
  306     def getCriteria(self, po, fields, inputPrefix="", negate=0, webapp=None):
  307         attribute = self._attribute
  308         fieldName = self.getFieldName(po, inputPrefix=inputPrefix)
  309         fieldValue = None
  310         if fieldName in fields and fields[fieldName]:
  311             fieldValue = self.alterValue(fields[fieldName]) # mk2s added alter
  312 
  313         # If a derived attribute, ask the po to construct criteria
  314         # for us.  Used to just return None here. -jrs 20030122
  315         # mk2s::20030330 addde WithFields to accomodate dependent
fieldValue = None
self = <<class 'libs.framework.DGEInputOr.DGEInputOr'> instance id=1 name='productNumber'>
self.alterValue = <bound method DGEInputOr.alterValue of <<class 'libs.framework.DGEInputOr.DGEInputOr'> instance id=1 name='productNumber'>>
fields = OurMultiDict([('action', '1'), ('Product_productNumber', ['101AMhttp://www.acsa-arch.org/forms/store/ProductFormPublic/search?action=1', '101AM'])])
fieldName = 'Product_productNumber'

 /data/acsa/current/libs/framework/DisplayGroup.py in getAttrCriteria(self=<<class 'libs.framework.DisplayGroup.DisplayGroup'> instance id=80050 name='searchProductPublic_Page1'>, po=<Product id="12EAA500000048", isNew="True", context="default", memId="140146641197456">, element=<<class 'libs.framework.DGEInputOr.DGEInputOr'> instance id=1 name='productNumber'>, fields=OurMultiDict([('action', '1'), ('Product_productNumber', ['101AMhttp://www.acsa-arch.org/forms/store/ProductFormPublic/search?action=1', '101AM'])]), inputPrefix='Product', negate=0, webapp=<ProductFormPublic.ProductFormPublic object at 0x7f766ec3fa10>)
  433     # hope we can refactor this out soon...  mk2s::17/9/02
  434     def getAttrCriteria(self, po, element, fields,
  435                         inputPrefix="",
  436                         negate=0, webapp=None):
  437         """ builds the PersistentCriteria for DB search for attrs. """
  438         return element.getCriteria(po, fields, inputPrefix=inputPrefix,
  439                                    negate=negate, webapp=webapp)
  440 
  441     def getAssocCriteria(self, po, element, fields,
  442                          inputPrefix="", webapp=None,
element = <<class 'libs.framework.DGEInputOr.DGEInputOr'> instance id=1 name='productNumber'>
element.getCriteria = <bound method DGEAttribute.getCriteria of <<class 'libs.framework.DGEInputOr.DGEInputOr'> instance id=1 name='productNumber'>>
po = <Product id="12EAA500000048", isNew="True", context="default", memId="140146641197456">
fields = OurMultiDict([('action', '1'), ('Product_productNumber', ['101AMhttp://www.acsa-arch.org/forms/store/ProductFormPublic/search?action=1', '101AM'])])
inputPrefix = 'Product'
negate = 0
webapp = <ProductFormPublic.ProductFormPublic object at 0x7f766ec3fa10>

 /data/acsa/current/libs/framework/DisplayGroup.py in getCriteria(self=<<class 'libs.framework.DisplayGroup.DisplayGroup'> instance id=80050 name='searchProductPublic_Page1'>, po=<Product id="12EAA500000048", isNew="True", context="default", memId="140146641197456">, fields=OurMultiDict([('action', '1'), ('Product_productNumber', ['101AMhttp://www.acsa-arch.org/forms/store/ProductFormPublic/search?action=1', '101AM'])]), inputPrefix='Product', negate=0, comboType=' AND ', webapp=<ProductFormPublic.ProductFormPublic object at 0x7f766ec3fa10>)
  403             inputPrefix = po.cm.name
  404         pc = None
  405         for element in self._elements:
  406             if hasattr(element, "_attribute"):
  407                 # not a group
  408                 subCriteria = self.getAttrCriteria(po,
  409                                                    element,
  410                                                    fields,
  411                                                    inputPrefix=inputPrefix,
  412                                                    negate=negate,
subCriteria = None
self = <<class 'libs.framework.DisplayGroup.DisplayGroup'> instance id=80050 name='searchProductPublic_Page1'>
self.getAttrCriteria = <bound method DisplayGroup.getAttrCriteria of <<class 'libs.framework.DisplayGroup.DisplayGroup'> instance id=80050 name='searchProductPublic_Page1'>>
po = <Product id="12EAA500000048", isNew="True", context="default", memId="140146641197456">
element = <<class 'libs.framework.DGEInputOr.DGEInputOr'> instance id=1 name='productNumber'>
fields = OurMultiDict([('action', '1'), ('Product_productNumber', ['101AMhttp://www.acsa-arch.org/forms/store/ProductFormPublic/search?action=1', '101AM'])])
inputPrefix = 'Product'
negate = 0
webapp = <ProductFormPublic.ProductFormPublic object at 0x7f766ec3fa10>

 /data/acsa/current/libs/framework/DGEGroup.py in getCriteria(self=<<class 'libs.framework.DGEGroup.DGEGroup'> instance group id=80050 label='None'>, po=<Product id="12EAA500000048", isNew="True", context="default", memId="140146641197456">, fields=OurMultiDict([('action', '1'), ('Product_productNumber', ['101AMhttp://www.acsa-arch.org/forms/store/ProductFormPublic/search?action=1', '101AM'])]), inputPrefix='Product', negate=0, webapp=<ProductFormPublic.ProductFormPublic object at 0x7f766ec3fa10>)
   61             group = self._group
   62         return group.getBBTDictionary(po, dictionary, webapp,
   63                                       inputPrefix, fields=fields)
   64 
   65     def getCriteria(self, po, fields, inputPrefix="", negate=0, webapp=None):
   66         return self._group.getCriteria(po, fields, inputPrefix=inputPrefix,
   67                                        negate=negate, webapp=webapp)
   68 
   69     def getFieldNames(self, inputPrefix=""):
   70         """returns a list of fieldnames"""
self = <<class 'libs.framework.DGEGroup.DGEGroup'> instance group id=80050 label='None'>
self._group = <<class 'libs.framework.DisplayGroup.DisplayGroup'> instance id=80050 name='searchProductPublic_Page1'>
self._group.getCriteria = <bound method DisplayGroup.getCriteria of <<class 'libs.framework.DisplayGroup.DisplayGroup'> instance id=80050 name='searchProductPublic_Page1'>>
po = <Product id="12EAA500000048", isNew="True", context="default", memId="140146641197456">
fields = OurMultiDict([('action', '1'), ('Product_productNumber', ['101AMhttp://www.acsa-arch.org/forms/store/ProductFormPublic/search?action=1', '101AM'])])
inputPrefix = 'Product'
negate = 0
webapp = <ProductFormPublic.ProductFormPublic object at 0x7f766ec3fa10>

 /data/acsa/current/libs/framework/DisplayGroup.py in getCriteria(self=<<class 'libs.framework.DisplayGroup.DisplayGroup'> instance id=80049 name='searchProductPublic'>, po=<Product id="12EAA500000048", isNew="True", context="default", memId="140146641197456">, fields=OurMultiDict([('action', '1'), ('Product_productNumber', ['101AMhttp://www.acsa-arch.org/forms/store/ProductFormPublic/search?action=1', '101AM'])]), inputPrefix='Product', negate=0, comboType=' AND ', webapp=<ProductFormPublic.ProductFormPublic object at 0x7f766ec3fa10>)
  422                 # we'll have to manually build the PC based on
  423                 # what the HTML Blob means
  424                 continue
  425             else:
  426                 # must be a group
  427                 subCriteria = element.getCriteria(po, fields, inputPrefix=inputPrefix, webapp=webapp, negate=negate)
  428             pc = PersistentCriteria.combineCriteria(pc,
  429                                                     comboType,
  430                                                     subCriteria)
  431         return pc
subCriteria undefined
element = <<class 'libs.framework.DGEGroup.DGEGroup'> instance group id=80050 label='None'>
element.getCriteria = <bound method DGEGroup.getCriteria of <<class 'libs.framework.DGEGroup.DGEGroup'> instance group id=80050 label='None'>>
po = <Product id="12EAA500000048", isNew="True", context="default", memId="140146641197456">
fields = OurMultiDict([('action', '1'), ('Product_productNumber', ['101AMhttp://www.acsa-arch.org/forms/store/ProductFormPublic/search?action=1', '101AM'])])
inputPrefix = 'Product'
webapp = <ProductFormPublic.ProductFormPublic object at 0x7f766ec3fa10>
negate = 0

 /data/acsa/current/libs/framework/WebForm.py in getCriteriaForDG(self=<ProductFormPublic.ProductFormPublic object at 0x7f766ec3fa10>, dg=<<class 'libs.framework.DisplayGroup.DisplayGroup'> instance id=80049 name='searchProductPublic'>, po=<Product id="12EAA500000048", isNew="True", context="default", memId="140146641197456">, fields=OurMultiDict([('action', '1'), ('Product_productNumber', ['101AMhttp://www.acsa-arch.org/forms/store/ProductFormPublic/search?action=1', '101AM'])]), inputPrefix='Product')
 2269         param = str.replace(param, "\\", "\\\\")
 2270         param = str.replace(param, "'", "\\\'")
 2271         return param
 2272 
 2273     def getCriteriaForDG(self, dg, po, fields, inputPrefix=""):
 2274         pc = dg.getCriteria(po, fields, inputPrefix, webapp=self)
 2275         return pc
 2276 
 2277     def compareTwoThings(self, thing1, thing2, isDate=0, lower=0):
 2278         if type(thing1) != type(thing2):
pc undefined
dg = <<class 'libs.framework.DisplayGroup.DisplayGroup'> instance id=80049 name='searchProductPublic'>
dg.getCriteria = <bound method DisplayGroup.getCriteria of <<class 'libs.framework.DisplayGroup.DisplayGroup'> instance id=80049 name='searchProductPublic'>>
po = <Product id="12EAA500000048", isNew="True", context="default", memId="140146641197456">
fields = OurMultiDict([('action', '1'), ('Product_productNumber', ['101AMhttp://www.acsa-arch.org/forms/store/ProductFormPublic/search?action=1', '101AM'])])
inputPrefix = 'Product'
webapp undefined
self = <ProductFormPublic.ProductFormPublic object at 0x7f766ec3fa10>

 /data/acsa/current/libs/framework/WebForm.py in getCompleteSearchPC(self=<ProductFormPublic.ProductFormPublic object at 0x7f766ec3fa10>, po=<Product id="12EAA500000048", isNew="True", context="default", memId="140146641197456">, dg=<<class 'libs.framework.DisplayGroup.DisplayGroup'> instance id=80049 name='searchProductPublic'>, showIds=None)
 1303             if not isinstance(showIds, list):
 1304                 showIds = [showIds]
 1305             pc = self.getPCForFakeSearchResults(
 1306                 showIds=showIds)
 1307         else:
 1308             pc = self.getCriteriaForDG(dg, po, fields,
 1309                                        inputPrefix=po.cm.name)
 1310             haveDemos = 0
 1311             try:
 1312                 demos = self.getDemographics(po=po)
pc undefined
self = <ProductFormPublic.ProductFormPublic object at 0x7f766ec3fa10>
self.getCriteriaForDG = <bound method WebForm.getCriteriaForDG of <ProductFormPublic.ProductFormPublic object at 0x7f766ec3fa10>>
dg = <<class 'libs.framework.DisplayGroup.DisplayGroup'> instance id=80049 name='searchProductPublic'>
po = <Product id="12EAA500000048", isNew="True", context="default", memId="140146641197456">
fields = OurMultiDict([('action', '1'), ('Product_productNumber', ['101AMhttp://www.acsa-arch.org/forms/store/ProductFormPublic/search?action=1', '101AM'])])
inputPrefix undefined
po.cm = ClassMap for Product
po.cm.name = 'Product'

 /data/acsa/current/libs/framework/WebForm.py in search(self=<ProductFormPublic.ProductFormPublic object at 0x7f766ec3fa10>, action='1', find=None, type=None, showIds=None)
 1189                 PersistentObject.searchHints = searchHints
 1190                 classForSearch = self._getClassForSearch(po)
 1191                 try:
 1192 
 1193                     try:
 1194                         pc = self.getCompleteSearchPC(po, dg, showIds)
 1195                     except ValidationError as error:
 1196                         dg.setValues(po, fields, inputPrefix=po.cm.name,
 1197                                      webapp=self)
 1198                         html = self.getSearchHTML(po, dg, action, find,
pc undefined
self = <ProductFormPublic.ProductFormPublic object at 0x7f766ec3fa10>
self.getCompleteSearchPC = <bound method WebForm.getCompleteSearchPC of <ProductFormPublic.ProductFormPublic object at 0x7f766ec3fa10>>
po = <Product id="12EAA500000048", isNew="True", context="default", memId="140146641197456">
dg = <<class 'libs.framework.DisplayGroup.DisplayGroup'> instance id=80049 name='searchProductPublic'>
showIds = None

 /data/acsa/current/libs/framework/BaseHandler.py in _safeCall(self=<libs.framework.WebSite.WebSite object at 0x7f76745a4fd0>, method=<bound method WebForm.search of <ProductFormPublic.ProductFormPublic object at 0x7f766ec3fa10>>, fields=OurMultiDict([('action', '1'), ('Product_productNumber', ['101AMhttp://www.acsa-arch.org/forms/store/ProductFormPublic/search?action=1', '101AM'])]))
  287             for name in fields.keys():
  288                 if name in expected:
  289                     args[name] = fields[name]
  290             # now if we have any args to pass call the method
  291             if args:
  292                 return method(**args)
  293         # method has no arguments
  294         return method()
  295 
  296     def cleanForHTML(self, html):
method = <bound method WebForm.search of <ProductFormPublic.ProductFormPublic object at 0x7f766ec3fa10>>
args = {'action': '1'}

 /data/acsa/current/libs/framework/WebSite.py in processRequest(self=<libs.framework.WebSite.WebSite object at 0x7f76745a4fd0>, req=<libs.framework.MaxxRequestWrapper.MaxxRequestWrapper object at 0x7f766ec18b50>)
  430                     # I'm not exactly familiar with when Python allocates on the stack vs.
  431                     # heap, but it appears to solve a bug.
  432                     # https://intranet.matrixgroup.net/webmaster/index.cfm?action=showmessage&messageid=91090
  433                     # print("Are we here?", file=sys.stderr)
  434                     fields = instance._fields
  435                     result = self._safeCall(method, fields)
  436 
  437                 elif req.method.upper() in ['PUT','DELETE'] and (req.uri.split('/')[1] == 'protectedRest' or \
  438                     req.uri.startswith('/forms/maxxapi/')):
  439                     #enable PUT on the protectedRest uri's
result undefined
self = <libs.framework.WebSite.WebSite object at 0x7f76745a4fd0>
self._safeCall = <bound method BaseHandler._safeCall of <libs.framework.WebSite.WebSite object at 0x7f76745a4fd0>>
method = <bound method WebForm.search of <ProductFormPublic.ProductFormPublic object at 0x7f766ec3fa10>>
fields = OurMultiDict([('action', '1'), ('Product_productNumber', ['101AMhttp://www.acsa-arch.org/forms/store/ProductFormPublic/search?action=1', '101AM'])])

 /data/acsa/current/libs/framework/WebManager.py in _newRequest(self=<libs.framework.WebManager.WebManager object at 0x7f7677b950d0>, req=<libs.framework.MaxxRequestWrapper.MaxxRequestWrapper object at 0x7f766ec18b50>)
  250                             self._debugSites[self._sitePath] = debugSite
  251 
  252                         result = self.callWithMiddleware(debugSite, req)
  253 
  254                     else:
  255                         result = site.processRequest(req)
  256                         # at this point result will be returned to apache
  257                         # and becomes the http result
  258 
  259 
result = 0
site = <libs.framework.WebSite.WebSite object at 0x7f76745a4fd0>
site.processRequest = <bound method WebSite.processRequest of <libs.framework.WebSite.WebSite object at 0x7f76745a4fd0>>
req = <libs.framework.MaxxRequestWrapper.MaxxRequestWrapper object at 0x7f766ec18b50>