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