When logged in as a Teacher and viewing personal details in the Groups tab, this error occurs when Done is clicked. I have repeated the error three times; once after a reboot, and twice after SchoolTool server restarts. I am on a Ubuntu 12.04 LTS release, fully updated. A copy of the error message is below.
Exception
LocationError: (<schooltool.group.group.GroupContainer object at 0xb2f8552c>, 'table')
Traceback
File "/usr/lib/python2.7/dist-packages/zope/publisher/publish.py", line 132, in publish
result = publication.callObject(request, obj)
File "/usr/lib/python2.7/dist-packages/zope/app/publication/zopepublication.py", line 207, in callObject
return mapply(ob, request.getPositionalArguments(), request)
File "/usr/lib/python2.7/dist-packages/zope/publisher/publish.py", line 107, in mapply
return debug_call(obj, args)
Extra information: <schooltool.skin.flourish.zcml_content.FlourishGroupsView_groups object at 0xd8abecc>
File "/usr/lib/python2.7/dist-packages/zope/publisher/publish.py", line 113, in debug_call
return obj(*args)
File "/usr/lib/python2.7/dist-packages/schooltool/skin/flourish/page.py", line 81, in __call__
result = self.render(*args, **kw)
File "/usr/lib/python2.7/dist-packages/schooltool/skin/flourish/page.py", line 74, in render
return self.template(*args, **kw)
File "/usr/lib/python2.7/dist-packages/zope/browserpage/viewpagetemplatefile.py", line 83, in __call__
return self.im_func(im_self, *args, **kw)
File "/usr/lib/python2.7/dist-packages/zope/browserpage/viewpagetemplatefile.py", line 51, in __call__
sourceAnnotations=getattr(debug_flags, 'sourceAnnotations', 0),
File "/usr/lib/python2.7/dist-packages/zope/pagetemplate/pagetemplate.py", line 132, in pt_render
strictinsert=0, sourceAnnotations=sourceAnnotations
Template "/usr/lib/python2.7/dist-packages/schooltool/skin/flourish/templates/main.pt"
File "/usr/lib/python2.7/dist-packages/zope/pagetemplate/pagetemplate.py", line 240, in __call__
interpreter()
File "/usr/lib/python2.7/dist-packages/zope/tal/talinterpreter.py", line 271, in __call__
self.interpret(self.program)
File "/usr/lib/python2.7/dist-packages/zope/tal/talinterpreter.py", line 343, in interpret
handlers[opcode](self, args)
File "/usr/lib/python2.7/dist-packages/zope/tal/talinterpreter.py", line 533, in do_optTag_tal
self.do_optTag(stuff)
File "/usr/lib/python2.7/dist-packages/zope/tal/talinterpreter.py", line 518, in do_optTag
return self.no_tag(start, program)
File "/usr/lib/python2.7/dist-packages/zope/tal/talinterpreter.py", line 513, in no_tag
self.interpret(program)
File "/usr/lib/python2.7/dist-packages/zope/tal/talinterpreter.py", line 343, in interpret
handlers[opcode](self, args)
File "/usr/lib/python2.7/dist-packages/zope/tal/talinterpreter.py", line 742, in do_insertStructure_tal
structure = self.engine.evaluateStructure(expr)
File "/usr/lib/python2.7/dist-packages/zope/tales/tales.py", line 696, in evaluate
return expression(self)
Template "/usr/lib/python2.7/dist-packages/schooltool/skin/flourish/templates/main.pt", line 79, column 8
Expression: <PathExpr standard:u'view/page_template|nothing'>
File "/usr/lib/python2.7/dist-packages/zope/tales/expressions.py", line 217, in __call__
return self._eval(econtext)
File "/usr/lib/python2.7/dist-packages/zope/tales/expressions.py", line 211, in _eval
return ob()
File "/usr/lib/python2.7/dist-packages/zope/browserpage/viewpagetemplatefile.py", line 83, in __call__
return self.im_func(im_self, *args, **kw)
File "/usr/lib/python2.7/dist-packages/zope/browserpage/viewpagetemplatefile.py", line 51, in __call__
sourceAnnotations=getattr(debug_flags, 'sourceAnnotations', 0),
File "/usr/lib/python2.7/dist-packages/zope/pagetemplate/pagetemplate.py", line 132, in pt_render
strictinsert=0, sourceAnnotations=sourceAnnotations
Template "/usr/lib/python2.7/dist-packages/schooltool/skin/flourish/templates/page.pt"
File "/usr/lib/python2.7/dist-packages/zope/pagetemplate/pagetemplate.py", line 240, in __call__
interpreter()
File "/usr/lib/python2.7/dist-packages/zope/tal/talinterpreter.py", line 271, in __call__
self.interpret(self.program)
File "/usr/lib/python2.7/dist-packages/zope/tal/talinterpreter.py", line 343, in interpret
handlers[opcode](self, args)
File "/usr/lib/python2.7/dist-packages/zope/tal/talinterpreter.py", line 583, in do_setLocal_tal
self.engine.setLocal(name, self.engine.evaluateValue(expr))
File "/usr/lib/python2.7/dist-packages/zope/tales/tales.py", line 696, in evaluate
return expression(self)
Template "/usr/lib/python2.7/dist-packages/schooltool/skin/flourish/templates/page.pt", line 14, column 2
Expression: <PathExpr standard:u'view/content_template|nothing'>
File "/usr/lib/python2.7/dist-packages/zope/tales/expressions.py", line 217, in __call__
return self._eval(econtext)
File "/usr/lib/python2.7/dist-packages/zope/tales/expressions.py", line 211, in _eval
return ob()
File "/usr/lib/python2.7/dist-packages/zope/browserpage/viewpagetemplatefile.py", line 83, in __call__
return self.im_func(im_self, *args, **kw)
File "/usr/lib/python2.7/dist-packages/schooltool/common/inlinept.py", line 111, in __call__
showtal=getattr(instance.request.debug, 'showTAL', False),
File "/usr/lib/python2.7/dist-packages/zope/pagetemplate/pagetemplate.py", line 132, in pt_render
strictinsert=0, sourceAnnotations=sourceAnnotations
File "/usr/lib/python2.7/dist-packages/zope/pagetemplate/pagetemplate.py", line 240, in __call__
interpreter()
File "/usr/lib/python2.7/dist-packages/zope/tal/talinterpreter.py", line 271, in __call__
self.interpret(self.program)
File "/usr/lib/python2.7/dist-packages/zope/tal/talinterpreter.py", line 343, in interpret
handlers[opcode](self, args)
File "/usr/lib/python2.7/dist-packages/zope/tal/talinterpreter.py", line 742, in do_insertStructure_tal
structure = self.engine.evaluateStructure(expr)
File "/usr/lib/python2.7/dist-packages/zope/tales/tales.py", line 696, in evaluate
return expression(self)
Template "None", line 2, column 6
Expression: <PathExpr standard:'context/schooltool:content/ajax/view/container/table'>
File "/usr/lib/python2.7/dist-packages/zope/tales/expressions.py", line 217, in __call__
return self._eval(econtext)
File "/usr/lib/python2.7/dist-packages/zope/tales/expressions.py", line 194, in _eval
ob = self._subexprs[-1](econtext)
File "/usr/lib/python2.7/dist-packages/zope/tales/expressions.py", line 124, in _eval
ob = self._traverser(ob, element, econtext)
File "/usr/lib/python2.7/dist-packages/zope/pagetemplate/engine.py", line 66, in __call__
request=request)
File "/usr/lib/python2.7/dist-packages/zope/traversing/adapters.py", line 136, in traversePathElement
return traversable.traverse(nm, further_path)
Extra information: (<schooltool.skin.flourish.ajax.SubContextParts object at 0xb2c235cc>, 'table')
File "/usr/lib/python2.7/dist-packages/schooltool/skin/flourish/ajax.py", line 135, in traverse
next = traverseName(self.parts.context, name)
Extra information: (<schooltool.skin.flourish.ajax.SubContextParts object at 0xb2c235cc>, 'table', [])
File "/usr/lib/python2.7/dist-packages/zope/traversing/api.py", line 109, in traverseName
traversable=traversable, request=request)
File "/usr/lib/python2.7/dist-packages/zope/traversing/adapters.py", line 136, in traversePathElement
return traversable.traverse(nm, further_path)
Extra information: (<schooltool.group.group.GroupContainer object at 0xb2f8552c>, 'table')
File "/usr/lib/python2.7/dist-packages/zope/container/traversal.py", line 111, in traverse
raise TraversalError(container, name)
I get permission errors when viewing personal details or group contents... Even when I took some fixes from a newer version...
But ok, this is a new error. I can reproduce it if I go to http:// localhost: 7080/groups , but am not sure how a teacher could have got there. Could you describe what were you doing in a little more detail? Look at a person, expand the Groups part at the bottom, click on one of the groups, e.g. Teachers, to see it, and click Done link there? I get a "You are not allowed to access" page, but anyway the Groups list is not where I would expect to return.
There is one thing you can do to avoid this error, without us fixing navigation and permissions for teachers. As manager, go to Server tab, click Security in the sidebar, then click Edit icon next to Access Rights heading. Find "List of groups" and select " The list of groups in the system is visible to the general public." and Submit. Then the teacher will be redirected to the list of Groups, if I guessed your actions right. Probably not what you expect, but not an exception either.
Or you can use the browser's back button to go where you were before :)