python-hserver/hcore/browser.py

55 lines
1.3 KiB
Python
Raw Normal View History

2018-03-09 11:50:31 +01:00
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)
2018-03-09 16:09:10 +01:00
def findClass(self,classpath):
return hserver.api.findClass(classpath)
2018-03-09 11:50:31 +01:00
def _addObject(self, request, o):
f = request.getForm()
if ("oname" in f) and ("oclass" in f):
2018-03-09 16:09:10 +01:00
oclass = self.findClass(f["oclass"].value().split("."))
#getattr( hserver.api , f["oclass"].value() )
2018-03-09 11:50:31 +01:00
i = oclass()
print(">>>%s" % (o._aq_parent._aq_name,))
2018-03-13 08:06:50 +01:00
self._aq_parent[ f["oname"].value() ] = i
2018-03-09 11:50:31 +01:00
request.redirect( request.pathwalker().walked(-2) + "/_browse" )
add = WebCallable(method=_addObject)
def _delObject(self, request, o):
print(">>>%s" % (o._aq_parent._aq_name,))
2018-03-13 08:06:50 +01:00
del o._aq_parent._aq_parent[o._aq_parent._aq_name]
2018-03-09 11:50:31 +01:00
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