Linked Columns crash Gradebook with sample_data.xls imported data

Bug #599828 reported by pedro.e.gordo@gmail.com
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SchoolTool Gradebook
Fix Released
Critical
Alan Elkner

Bug Description

If you try to create a linked column between two sheets using data from the sample_data.xls file, this will lead to a Exception.
---
Excepção

  AttributeError: 'NoneType' object has no attribute 'split'
Traceback

  File "/usr/local/lib/python2.6/dist-packages/zope.publisher-3.12.0-py2.6.egg/zope/publisher/publish.py", line 134, in publish
  result = publication.callObject(request, obj)
File "/usr/local/lib/python2.6/dist-packages/zope.app.publication-3.10.2-py2.6.egg/zope/app/publication/zopepublication.py", line 205, in callObject
  return mapply(ob, request.getPositionalArguments(), request)
File "/usr/local/lib/python2.6/dist-packages/zope.publisher-3.12.0-py2.6.egg/zope/publisher/publish.py", line 109, in mapply
  return debug_call(obj, args)
Extra information: <zope.browserpage.simpleviewclass.SimpleViewClass from /usr/lib/python2.6/dist-packages/schooltool/gradebook/browser/add_edit_linked_column.pt object at 0x1176b10c>
File "/usr/local/lib/python2.6/dist-packages/zope.publisher-3.12.0-py2.6.egg/zope/publisher/publish.py", line 115, in debug_call
  return obj(*args)
File "/usr/local/lib/python2.6/dist-packages/zope.browserpage-3.11.0-py2.6.egg/zope/browserpage/simpleviewclass.py", line 44, in __call__
  return self.index(*args, **kw)
File "/usr/local/lib/python2.6/dist-packages/zope.browserpage-3.11.0-py2.6.egg/zope/browserpage/viewpagetemplatefile.py", line 83, in __call__
  return self.im_func(im_self, *args, **kw)
File "/usr/local/lib/python2.6/dist-packages/zope.browserpage-3.11.0-py2.6.egg/zope/browserpage/viewpagetemplatefile.py", line 51, in __call__
  sourceAnnotations=getattr(debug_flags, 'sourceAnnotations', 0),
File "/usr/local/lib/python2.6/dist-packages/zope.pagetemplate-3.5.0-py2.6.egg/zope/pagetemplate/pagetemplate.py", line 115, in pt_render
  strictinsert=0, sourceAnnotations=sourceAnnotations)()
Template "/usr/lib/python2.6/dist-packages/schooltool/gradebook/browser/add_edit_linked_column.pt"
File "/usr/local/lib/python2.6/dist-packages/zope.tal-3.5.2-py2.6.egg/zope/tal/talinterpreter.py", line 271, in __call__
  self.interpret(self.program)
File "/usr/local/lib/python2.6/dist-packages/zope.tal-3.5.2-py2.6.egg/zope/tal/talinterpreter.py", line 343, in interpret
  handlers[opcode](self, args)
File "/usr/local/lib/python2.6/dist-packages/zope.tal-3.5.2-py2.6.egg/zope/tal/talinterpreter.py", line 888, in do_useMacro
  self.interpret(macro)
File "/usr/local/lib/python2.6/dist-packages/zope.tal-3.5.2-py2.6.egg/zope/tal/talinterpreter.py", line 343, in interpret
  handlers[opcode](self, args)
File "/usr/local/lib/python2.6/dist-packages/zope.tal-3.5.2-py2.6.egg/zope/tal/talinterpreter.py", line 533, in do_optTag_tal
  self.do_optTag(stuff)
File "/usr/local/lib/python2.6/dist-packages/zope.tal-3.5.2-py2.6.egg/zope/tal/talinterpreter.py", line 518, in do_optTag
  return self.no_tag(start, program)
File "/usr/local/lib/python2.6/dist-packages/zope.tal-3.5.2-py2.6.egg/zope/tal/talinterpreter.py", line 513, in no_tag
  self.interpret(program)
File "/usr/local/lib/python2.6/dist-packages/zope.tal-3.5.2-py2.6.egg/zope/tal/talinterpreter.py", line 343, in interpret
  handlers[opcode](self, args)
File "/usr/local/lib/python2.6/dist-packages/zope.tal-3.5.2-py2.6.egg/zope/tal/talinterpreter.py", line 954, in do_defineSlot
  self.interpret(block)
File "/usr/local/lib/python2.6/dist-packages/zope.tal-3.5.2-py2.6.egg/zope/tal/talinterpreter.py", line 343, in interpret
  handlers[opcode](self, args)
File "/usr/local/lib/python2.6/dist-packages/zope.tal-3.5.2-py2.6.egg/zope/tal/talinterpreter.py", line 533, in do_optTag_tal
  self.do_optTag(stuff)
File "/usr/local/lib/python2.6/dist-packages/zope.tal-3.5.2-py2.6.egg/zope/tal/talinterpreter.py", line 518, in do_optTag
  return self.no_tag(start, program)
File "/usr/local/lib/python2.6/dist-packages/zope.tal-3.5.2-py2.6.egg/zope/tal/talinterpreter.py", line 513, in no_tag
  self.interpret(program)
File "/usr/local/lib/python2.6/dist-packages/zope.tal-3.5.2-py2.6.egg/zope/tal/talinterpreter.py", line 343, in interpret
  handlers[opcode](self, args)
File "/usr/local/lib/python2.6/dist-packages/zope.tal-3.5.2-py2.6.egg/zope/tal/talinterpreter.py", line 946, in do_defineSlot
  self.interpret(slot)
File "/usr/local/lib/python2.6/dist-packages/zope.tal-3.5.2-py2.6.egg/zope/tal/talinterpreter.py", line 343, in interpret
  handlers[opcode](self, args)
File "/usr/local/lib/python2.6/dist-packages/zope.tal-3.5.2-py2.6.egg/zope/tal/talinterpreter.py", line 533, in do_optTag_tal
  self.do_optTag(stuff)
File "/usr/local/lib/python2.6/dist-packages/zope.tal-3.5.2-py2.6.egg/zope/tal/talinterpreter.py", line 518, in do_optTag
  return self.no_tag(start, program)
File "/usr/local/lib/python2.6/dist-packages/zope.tal-3.5.2-py2.6.egg/zope/tal/talinterpreter.py", line 513, in no_tag
  self.interpret(program)
File "/usr/local/lib/python2.6/dist-packages/zope.tal-3.5.2-py2.6.egg/zope/tal/talinterpreter.py", line 343, in interpret
  handlers[opcode](self, args)
File "/usr/local/lib/python2.6/dist-packages/zope.tal-3.5.2-py2.6.egg/zope/tal/talinterpreter.py", line 819, in do_loop_tal
  iterator = self.engine.setRepeat(name, expr)
File "/usr/local/lib/python2.6/dist-packages/zope.tales-3.5.0-py2.6.egg/zope/tales/tales.py", line 682, in setRepeat
  expr = self.evaluate(expr)
File "/usr/local/lib/python2.6/dist-packages/zope.tales-3.5.0-py2.6.egg/zope/tales/tales.py", line 696, in evaluate
  return expression(self)
Template "/usr/lib/python2.6/dist-packages/schooltool/gradebook/browser/add_edit_linked_column.pt", line 36, column 6
  Expression: <PathExpr standard:u'view/getRows'>
File "/usr/local/lib/python2.6/dist-packages/zope.tales-3.5.0-py2.6.egg/zope/tales/expressions.py", line 217, in __call__
  return self._eval(econtext)
File "/usr/local/lib/python2.6/dist-packages/zope.tales-3.5.0-py2.6.egg/zope/tales/expressions.py", line 211, in _eval
  return ob()
File "/usr/lib/python2.6/dist-packages/schooltool/gradebook/browser/activity.py", line 532, in getRows
  and len(worksheet.values())
File "/usr/lib/python2.6/dist-packages/schooltool/gradebook/activity.py", line 171, in values
  if isHiddenSource(activity.source):
File "/usr/lib/python2.6/dist-packages/schooltool/gradebook/activity.py", line 97, in isHiddenSource
  obj = getSourceObj(source)
File "/usr/lib/python2.6/dist-packages/schooltool/gradebook/activity.py", line 71, in getSourceObj
  scid, sid, ws_hash, act_hash = source.split('_')

----

This was spotted in version 1.4.1

affects: schooltool → schooltool.gradebook
Changed in schooltool.gradebook:
assignee: nobody → Alan Elkner (aelkner)
Changed in schooltool.gradebook:
importance: Undecided → Critical
status: New → Triaged
Alan Elkner (aelkner)
Changed in schooltool.gradebook:
status: Triaged → Fix Committed
Changed in schooltool.gradebook:
milestone: none → 1.9.0
Changed in schooltool.gradebook:
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.