Sorry. That page is not available right now.
 
 

 

 

 

 

 

 

 
Product_categories_Checkboxes: IN(0x35,0x21)
Product_categories_Checkboxes_exists: 1
action: 1

Site Root: /data/fmiam/current/fmiam_org/
username: public
userid: 0
dbname: fmiam
Accept: */*
Host: www.fmi.org
User-Agent: claudebot
X-Forwarded-Proto: https
X-Forwarded-Protocol: https

SCRIPT_NAME: /forms/store/ProductFormPublic/search

When: Mar 29, 2024 8:55 am
PID: 16151

 
Error in ValueError.
Here is a traceback of function calls, starting with the closest to that error.
Python 3.11.0: /home/maxx/lib/matrixmaxx3/bin/uwsgi
Fri Mar 29 08:55:47 2024

ValueError: Illegal characters in ID 'IN(0x35,0x21)'


      __cause__ = None
      __class__ = <class 'ValueError'>
      __context__ = None
      __delattr__ = <method-wrapper '__delattr__' of ValueError object>
      __dict__ = {}
      __dir__ = <built-in method __dir__ of ValueError object>
      __doc__ = 'Inappropriate argument value (of correct type).'
      __eq__ = <method-wrapper '__eq__' of ValueError object>
      __format__ = <built-in method __format__ of ValueError object>
      __ge__ = <method-wrapper '__ge__' of ValueError object>
      __getattribute__ = <method-wrapper '__getattribute__' of ValueError object>
      __getstate__ = <built-in method __getstate__ of ValueError object>
      __gt__ = <method-wrapper '__gt__' of ValueError object>
      __hash__ = <method-wrapper '__hash__' of ValueError object>
      __init__ = <method-wrapper '__init__' of ValueError object>
      __init_subclass__ = <built-in method __init_subclass__ of type object>
      __le__ = <method-wrapper '__le__' of ValueError object>
      __lt__ = <method-wrapper '__lt__' of ValueError object>
      __ne__ = <method-wrapper '__ne__' of ValueError object>
      __new__ = <built-in method __new__ of type object>
      __reduce__ = <built-in method __reduce__ of ValueError object>
      __reduce_ex__ = <built-in method __reduce_ex__ of ValueError object>
      __repr__ = <method-wrapper '__repr__' of ValueError object>
      __setattr__ = <method-wrapper '__setattr__' of ValueError object>
      __setstate__ = <built-in method __setstate__ of ValueError object>
      __sizeof__ = <built-in method __sizeof__ of ValueError object>
      __str__ = <method-wrapper '__str__' of ValueError object>
      __subclasshook__ = <built-in method __subclasshook__ of type object>
      __suppress_context__ = False
      __traceback__ = <traceback object>
      add_note = <built-in method add_note of ValueError object>
      args = ("Illegal characters in ID 'IN(0x35,0x21)'",)
      with_traceback = <built-in method with_traceback of ValueError object>

 /data/fmiam/current/libs/utils/check_ids.py in ensure_secure_id(id_='IN(0x35,0x21)')
   21         return None
   22     id_ = str(id_)
   23     id_ = id_.strip()
   24     chars = set(id_)
   25     if chars - _legal_id_set:
   26         raise ValueError("Illegal characters in ID %r" % id_)
   27     return int(id_, 16)
   28 
   29 _legal_digits = set('0123456789')
   30 _legal_int_set = set('-+') | _legal_digits
builtinValueError = <class 'ValueError'>
id_ = 'IN(0x35,0x21)'

 /data/fmiam/current/libs/framework/DGEObjectMultiSelect.py in getCriteria(self=<<class 'libs.framework.DGEObjectMultiCheckbox.DGEObjectMultiCheckbox'> instance .categories>, po=<Product id="883B850000000C", isNew="True", context="default", memId="140687158893648">, fields=OurMultiDict([('action', '1'), ('Product_categories_Checkboxes_exists', '1'), ('Product_categories_Checkboxes', 'IN(0x35,0x21)')]), inputPrefix='Product', negate=0, webapp=<fmiam_ProductFormPublic.fmiam_ProductFormPublic object at 0x7ff43f706450>)
  224             ids = [ id for id in ids if id ]
  225             if not ids: # no constraint if no valid ids were given
  226                 return None
  227 
  228             for hex_id in ids:
  229                 ensure_secure_id(hex_id)
  230 
  231             tocls = self._assoc.toClass.getClass()
  232             fromcls = self._assoc.fromClass.getClass()
  233 
global ensure_secure_id = <function ensure_secure_id at 0x7ff44a4328e0>
hex_id = 'IN(0x35,0x21)'

 /data/fmiam/current/libs/framework/DisplayGroup.py in getAssocCriteria(self=<<class 'libs.framework.DisplayGroup.DisplayGroup'> instance id=80050 name='searchProductPublic_Page1'>, po=<Product id="883B850000000C", isNew="True", context="default", memId="140687158893648">, element=<<class 'libs.framework.DGEObjectMultiCheckbox.DGEObjectMultiCheckbox'> instance .categories>, fields=OurMultiDict([('action', '1'), ('Product_categories_Checkboxes_exists', '1'), ('Product_categories_Checkboxes', 'IN(0x35,0x21)')]), inputPrefix='Product', webapp=<fmiam_ProductFormPublic.fmiam_ProductFormPublic object at 0x7ff43f706450>, negate=0)
  440 
  441     def getAssocCriteria(self, po, element, fields,
  442                          inputPrefix="", webapp=None,
  443                          negate=0):
  444         """ builds the PersistentCriteria for DB search for assocs. """
  445         return element.getCriteria(po, fields, inputPrefix, webapp=webapp,
  446                                    negate=negate)
  447 
  448     # can't refactor because it's used too many places :-(
  449     def combineCriteria(self, pc1, pc2, op=PersistentCriteria.AND):
element = <<class 'libs.framework.DGEObjectMultiCheckbox.DGEObjectMultiCheckbox'> instance .categories>
element.getCriteria = <bound method DGEObjectMultiSelect.getCriteria of <<class 'libs.framework.DGEObjectMultiCheckbox.DGEObjectMultiCheckbox'> instance .categories>>
po = <Product id="883B850000000C", isNew="True", context="default", memId="140687158893648">
fields = OurMultiDict([('action', '1'), ('Product_categories_Checkboxes_exists', '1'), ('Product_categories_Checkboxes', 'IN(0x35,0x21)')])
inputPrefix = 'Product'
webapp = <fmiam_ProductFormPublic.fmiam_ProductFormPublic object at 0x7ff43f706450>
negate = 0

 /data/fmiam/current/libs/framework/DisplayGroup.py in getCriteria(self=<<class 'libs.framework.DisplayGroup.DisplayGroup'> instance id=80050 name='searchProductPublic_Page1'>, po=<Product id="883B850000000C", isNew="True", context="default", memId="140687158893648">, fields=OurMultiDict([('action', '1'), ('Product_categories_Checkboxes_exists', '1'), ('Product_categories_Checkboxes', 'IN(0x35,0x21)')]), inputPrefix='Product', negate=0, comboType=' AND ', webapp=<fmiam_ProductFormPublic.fmiam_ProductFormPublic object at 0x7ff43f706450>)
  410                                                    fields,
  411                                                    inputPrefix=inputPrefix,
  412                                                    negate=negate,
  413                                                    webapp=webapp)
  414             elif hasattr(element, "_assoc"):
  415                 subCriteria = self.getAssocCriteria(po,
  416                                                     element,
  417                                                     fields,
  418                                                     inputPrefix=inputPrefix,
  419                                                     webapp=webapp,
subCriteria undefined
self = <<class 'libs.framework.DisplayGroup.DisplayGroup'> instance id=80050 name='searchProductPublic_Page1'>
self.getAssocCriteria = <bound method DisplayGroup.getAssocCriteria of <<class 'libs.framework.DisplayGroup.DisplayGroup'> instance id=80050 name='searchProductPublic_Page1'>>
po = <Product id="883B850000000C", isNew="True", context="default", memId="140687158893648">
element = <<class 'libs.framework.DGEObjectMultiCheckbox.DGEObjectMultiCheckbox'> instance .categories>
fields = OurMultiDict([('action', '1'), ('Product_categories_Checkboxes_exists', '1'), ('Product_categories_Checkboxes', 'IN(0x35,0x21)')])
inputPrefix = 'Product'
webapp = <fmiam_ProductFormPublic.fmiam_ProductFormPublic object at 0x7ff43f706450>
negate = 0

 /data/fmiam/current/libs/framework/DGEGroup.py in getCriteria(self=<<class 'libs.framework.DGEGroup.DGEGroup'> instance group id=80050 label='None'>, po=<Product id="883B850000000C", isNew="True", context="default", memId="140687158893648">, fields=OurMultiDict([('action', '1'), ('Product_categories_Checkboxes_exists', '1'), ('Product_categories_Checkboxes', 'IN(0x35,0x21)')]), inputPrefix='Product', negate=0, webapp=<fmiam_ProductFormPublic.fmiam_ProductFormPublic object at 0x7ff43f706450>)
   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="883B850000000C", isNew="True", context="default", memId="140687158893648">
fields = OurMultiDict([('action', '1'), ('Product_categories_Checkboxes_exists', '1'), ('Product_categories_Checkboxes', 'IN(0x35,0x21)')])
inputPrefix = 'Product'
negate = 0
webapp = <fmiam_ProductFormPublic.fmiam_ProductFormPublic object at 0x7ff43f706450>

 /data/fmiam/current/libs/framework/DisplayGroup.py in getCriteria(self=<<class 'libs.framework.DisplayGroup.DisplayGroup'> instance id=80049 name='searchProductPublic'>, po=<Product id="883B850000000C", isNew="True", context="default", memId="140687158893648">, fields=OurMultiDict([('action', '1'), ('Product_categories_Checkboxes_exists', '1'), ('Product_categories_Checkboxes', 'IN(0x35,0x21)')]), inputPrefix='Product', negate=0, comboType=' AND ', webapp=<fmiam_ProductFormPublic.fmiam_ProductFormPublic object at 0x7ff43f706450>)
  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="883B850000000C", isNew="True", context="default", memId="140687158893648">
fields = OurMultiDict([('action', '1'), ('Product_categories_Checkboxes_exists', '1'), ('Product_categories_Checkboxes', 'IN(0x35,0x21)')])
inputPrefix = 'Product'
webapp = <fmiam_ProductFormPublic.fmiam_ProductFormPublic object at 0x7ff43f706450>
negate = 0

 /data/fmiam/current/libs/framework/WebForm.py in getCriteriaForDG(self=<fmiam_ProductFormPublic.fmiam_ProductFormPublic object at 0x7ff43f706450>, dg=<<class 'libs.framework.DisplayGroup.DisplayGroup'> instance id=80049 name='searchProductPublic'>, po=<Product id="883B850000000C", isNew="True", context="default", memId="140687158893648">, fields=OurMultiDict([('action', '1'), ('Product_categories_Checkboxes_exists', '1'), ('Product_categories_Checkboxes', 'IN(0x35,0x21)')]), 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="883B850000000C", isNew="True", context="default", memId="140687158893648">
fields = OurMultiDict([('action', '1'), ('Product_categories_Checkboxes_exists', '1'), ('Product_categories_Checkboxes', 'IN(0x35,0x21)')])
inputPrefix = 'Product'
webapp undefined
self = <fmiam_ProductFormPublic.fmiam_ProductFormPublic object at 0x7ff43f706450>

 /data/fmiam/current/libs/framework/WebForm.py in getCompleteSearchPC(self=<fmiam_ProductFormPublic.fmiam_ProductFormPublic object at 0x7ff43f706450>, po=<Product id="883B850000000C", isNew="True", context="default", memId="140687158893648">, 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 = <fmiam_ProductFormPublic.fmiam_ProductFormPublic object at 0x7ff43f706450>
self.getCriteriaForDG = <bound method WebForm.getCriteriaForDG of <fmiam_ProductFormPublic.fmiam_ProductFormPublic object at 0x7ff43f706450>>
dg = <<class 'libs.framework.DisplayGroup.DisplayGroup'> instance id=80049 name='searchProductPublic'>
po = <Product id="883B850000000C", isNew="True", context="default", memId="140687158893648">
fields = OurMultiDict([('action', '1'), ('Product_categories_Checkboxes_exists', '1'), ('Product_categories_Checkboxes', 'IN(0x35,0x21)')])
inputPrefix undefined
po.cm = ClassMap for Product
po.cm.name = 'Product'

 /data/fmiam/current/libs/framework/WebForm.py in search(self=<fmiam_ProductFormPublic.fmiam_ProductFormPublic object at 0x7ff43f706450>, 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 = <fmiam_ProductFormPublic.fmiam_ProductFormPublic object at 0x7ff43f706450>
self.getCompleteSearchPC = <bound method WebForm.getCompleteSearchPC of <fmiam_ProductFormPublic.fmiam_ProductFormPublic object at 0x7ff43f706450>>
po = <Product id="883B850000000C", isNew="True", context="default", memId="140687158893648">
dg = <<class 'libs.framework.DisplayGroup.DisplayGroup'> instance id=80049 name='searchProductPublic'>
showIds = None

 /data/fmiam/current/libs/framework/BaseHandler.py in _safeCall(self=<libs.framework.WebSite.WebSite object at 0x7ff445f9f490>, method=<bound method WebForm.search of <fmiam_ProductFormPublic.fmiam_ProductFormPublic object at 0x7ff43f706450>>, fields=OurMultiDict([('action', '1'), ('Product_categories_Checkboxes_exists', '1'), ('Product_categories_Checkboxes', 'IN(0x35,0x21)')]))
  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 <fmiam_ProductFormPublic.fmiam_ProductFormPublic object at 0x7ff43f706450>>
args = {'action': '1'}

 /data/fmiam/current/libs/framework/WebSite.py in processRequest(self=<libs.framework.WebSite.WebSite object at 0x7ff445f9f490>, req=<libs.framework.MaxxRequestWrapper.MaxxRequestWrapper object at 0x7ff4401ebd50>)
  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 0x7ff445f9f490>
self._safeCall = <bound method BaseHandler._safeCall of <libs.framework.WebSite.WebSite object at 0x7ff445f9f490>>
method = <bound method WebForm.search of <fmiam_ProductFormPublic.fmiam_ProductFormPublic object at 0x7ff43f706450>>
fields = OurMultiDict([('action', '1'), ('Product_categories_Checkboxes_exists', '1'), ('Product_categories_Checkboxes', 'IN(0x35,0x21)')])

 /data/fmiam/current/libs/framework/WebManager.py in _newRequest(self=<libs.framework.WebManager.WebManager object at 0x7ff441d4ae90>, req=<libs.framework.MaxxRequestWrapper.MaxxRequestWrapper object at 0x7ff4401ebd50>)
  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 0x7ff445f9f490>
site.processRequest = <bound method WebSite.processRequest of <libs.framework.WebSite.WebSite object at 0x7ff445f9f490>>
req = <libs.framework.MaxxRequestWrapper.MaxxRequestWrapper object at 0x7ff4401ebd50>