hserver-fahrradboerse/hServer/packages/hcore/browser.py

49 lines
1.1 KiB
Python

from hserver.api import WebObject,NoPersistence,WebCallable
import Templates
import hserver
class TreeBrowser(WebObject,NoPersistence):
def __init__(self):
WebObject.__init__(self)
self.setDefault("browse")
_browse = Templates.browse_html;
def __call__(self,request,o=None):
return self._browse(request,o)
def _addObject(self, request, o):
f = request.getForm()
if ("oname" in f) and ("oclass" in f):
oclass = getattr( hserver.api , f["oclass"].value() )
i = oclass()
print(">>>%s" % (o._aq_parent._aq_name,))
setattr( self._aq_parent, f["oname"].value(), i )
request.redirect( request.pathwalker().walked(-2) + "/_browse" )
add = WebCallable(method=_addObject)
def _delObject(self, request, o):
print(">>>%s" % (o._aq_parent._aq_name,))
delattr(o._aq_parent._aq_parent, o._aq_parent._aq_name)
request.redirect( request.pathwalker().walked(-3) + "/_browse" )
remove = WebCallable(method=_delObject)
def wo_types(self):
r = []
exp = hserver.api.__dict__
for t in exp.values():
try:
if (issubclass(t,hserver.api.WebObject)):
r.append(t. __name__)
except:
pass
r.sort()
return r