55 lines
1.3 KiB
Python
55 lines
1.3 KiB
Python
|
from hserver.api import WebObject,WebCallable
|
||
|
from objectbroker import NoPersistence
|
||
|
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 findClass(self,classpath):
|
||
|
return hserver.api.findClass(classpath)
|
||
|
|
||
|
|
||
|
def _addObject(self, request, o):
|
||
|
f = request.getForm()
|
||
|
|
||
|
if ("oname" in f) and ("oclass" in f):
|
||
|
oclass = self.findClass(f["oclass"].value().split("."))
|
||
|
#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
|