Crashes for New Message, New Goal, New Status Message in the Student Intervention Center

Bug #716455 reported by Douglas Cerna
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SchoolTool Intervention
Fix Released
Critical
Alan Elkner

Bug Description

Steps:

1. Check out schooltool trunk
2. Add schooltool.intervention to buildout.cfg
3. Create and run instance
4. Log in as manager
5. Create two persons
6. Create school year, term, course, section
7. Add one person as section teacher and one as section student
8. Get to the intervention center page for the student
9. After you hit New Message, New Goal or New Status Message you get:

Exception

  IndexError: string index out of range
Traceback

  File "/home/replaceafill/.sandboxes/schooltool_docs/eggs/zope.publisher-3.12.6-py2.6.egg/zope/publisher/publish.py", line 129, in publish
  obj = request.traverse(obj)
File "/home/replaceafill/.sandboxes/schooltool_docs/eggs/zope.publisher-3.12.6-py2.6.egg/zope/publisher/browser.py", line 540, in traverse
  ob = super(BrowserRequest, self).traverse(obj)
File "/home/replaceafill/.sandboxes/schooltool_docs/eggs/zope.publisher-3.12.6-py2.6.egg/zope/publisher/http.py", line 457, in traverse
  ob = super(HTTPRequest, self).traverse(obj)
File "/home/replaceafill/.sandboxes/schooltool_docs/eggs/zope.publisher-3.12.6-py2.6.egg/zope/publisher/base.py", line 260, in traverse
  obj = publication.traverseName(self, obj, entry_name)
File "/home/replaceafill/.sandboxes/schooltool_docs/eggs/zope.app.publication-3.12.0-py2.6.egg/zope/app/publication/zopepublication.py", line 194, in traverseName
  ob2 = ob.publishTraverse(request, nm)
File "/home/replaceafill/.sandboxes/schooltool_docs/eggs/zope.browserpage-3.12.2-py2.6.egg/zope/browserpage/metaconfigure.py", line 278, in publishTraverse
  view = queryMultiAdapter((self, request), name=name)
File "/home/replaceafill/.sandboxes/schooltool_docs/eggs/zope.component-3.9.5-py2.6.egg/zope/component/_api.py", line 120, in queryMultiAdapter
  return sitemanager.queryMultiAdapter(objects, interface, name, default)
File "/home/replaceafill/.sandboxes/schooltool_docs/eggs/zope.component-3.9.5-py2.6.egg/zope/component/registry.py", line 238, in queryMultiAdapter
  objects, interface, name, default)
File "/home/replaceafill/.sandboxes/schooltool_docs/eggs/zope.interface-3.6.1-py2.6-linux-x86_64.egg/zope/interface/adapter.py", line 532, in queryMultiAdapter
  result = factory(*objects)
File "/home/replaceafill/.sandboxes/schooltool_docs/eggs/schooltool.intervention-0.4.2dev_r265-py2.6.egg/schooltool/intervention/browser/intervention.py", line 596, in __init__
  super(InterventionMessageAddView, self).__init__(context, request)
File "/home/replaceafill/.sandboxes/schooltool_docs/eggs/zope.app.form-4.0.2-py2.6.egg/zope/app/form/browser/editview.py", line 62, in __init__
  self._setUpWidgets()
File "/home/replaceafill/.sandboxes/schooltool_docs/eggs/zope.app.form-4.0.2-py2.6.egg/zope/app/form/browser/add.py", line 48, in _setUpWidgets
  setUpWidgets(self, self.schema, IInputWidget, names=self.fieldNames)
File "/home/replaceafill/.sandboxes/schooltool_docs/eggs/zope.formlib-4.0.5-py2.6.egg/zope/formlib/utility.py", line 139, in setUpWidgets
  context=context)
File "/home/replaceafill/.sandboxes/schooltool_docs/eggs/zope.formlib-4.0.5-py2.6.egg/zope/formlib/utility.py", line 83, in setUpWidget
  widget = _createWidget(context, field, viewType, view.request)
File "/home/replaceafill/.sandboxes/schooltool_docs/eggs/zope.formlib-4.0.5-py2.6.egg/zope/formlib/utility.py", line 51, in _createWidget
  return component.getMultiAdapter((field, request), viewType)
File "/home/replaceafill/.sandboxes/schooltool_docs/eggs/zope.component-3.9.5-py2.6.egg/zope/component/_api.py", line 107, in getMultiAdapter
  adapter = queryMultiAdapter(objects, interface, name, context=context)
File "/home/replaceafill/.sandboxes/schooltool_docs/eggs/zope.component-3.9.5-py2.6.egg/zope/component/_api.py", line 120, in queryMultiAdapter
  return sitemanager.queryMultiAdapter(objects, interface, name, default)
File "/home/replaceafill/.sandboxes/schooltool_docs/eggs/zope.component-3.9.5-py2.6.egg/zope/component/registry.py", line 238, in queryMultiAdapter
  objects, interface, name, default)
File "/home/replaceafill/.sandboxes/schooltool_docs/eggs/zope.interface-3.6.1-py2.6-linux-x86_64.egg/zope/interface/adapter.py", line 532, in queryMultiAdapter
  result = factory(*objects)
File "/home/replaceafill/.sandboxes/schooltool_docs/eggs/zope.component-3.9.5-py2.6.egg/zope/component/zcml.py", line 546, in __call__
  return proxify(self.factory(*objects), self.checker)
File "/home/replaceafill/.sandboxes/schooltool_docs/eggs/schooltool.intervention-0.4.2dev_r265-py2.6.egg/schooltool/intervention/browser/widgets.py", line 149, in __init__
  value = intervention.convertIdToName(choice)
File "/home/replaceafill/.sandboxes/schooltool_docs/eggs/schooltool.intervention-0.4.2dev_r265-py2.6.egg/schooltool/intervention/intervention.py", line 101, in convertIdToName
  sort, name = convertIdToNameWithSort(id)
File "/home/replaceafill/.sandboxes/schooltool_docs/eggs/schooltool.intervention-0.4.2dev_r265-py2.6.egg/schooltool/intervention/intervention.py", line 78, in convertIdToNameWithSort
  if id[-2] == ':':

Related branches

Changed in schooltool.intervention:
assignee: nobody → Alan Elkner (aelkner)
importance: Undecided → Critical
Revision history for this message
Alan Elkner (aelkner) wrote :

If the user id is a single character (something that no non-developer is likely to do), it crashes, so I will fix it.

Changed in schooltool.intervention:
status: New → Confirmed
Alan Elkner (aelkner)
Changed in schooltool.intervention:
status: Confirmed → Fix Committed
Changed in schooltool.intervention:
milestone: none → 0.4.3
Changed in schooltool.intervention:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.