[Checkins] SVN: Sandbox/ulif/grok-adminui/src/grok/admin/view Moved
'appsindex' to 'applications'. Some more inspet stuff.
Uli Fouquet
uli at gnufix.de
Fri Jul 13 07:01:01 EDT 2007
Log message for revision 77844:
Moved 'appsindex' to 'applications'. Some more inspet stuff.
Changed:
U Sandbox/ulif/grok-adminui/src/grok/admin/view.py
A Sandbox/ulif/grok-adminui/src/grok/admin/view_templates/applications.pt
D Sandbox/ulif/grok-adminui/src/grok/admin/view_templates/appsindex.pt
U Sandbox/ulif/grok-adminui/src/grok/admin/view_templates/index.pt
U Sandbox/ulif/grok-adminui/src/grok/admin/view_templates/inspect.pt
U Sandbox/ulif/grok-adminui/src/grok/admin/view_templates/macros.pt
-=-
Modified: Sandbox/ulif/grok-adminui/src/grok/admin/view.py
===================================================================
--- Sandbox/ulif/grok-adminui/src/grok/admin/view.py 2007-07-13 10:58:33 UTC (rev 77843)
+++ Sandbox/ulif/grok-adminui/src/grok/admin/view.py 2007-07-13 11:01:00 UTC (rev 77844)
@@ -23,6 +23,7 @@
from zope.app.apidoc.codemodule.text import TextFile
from zope.app.apidoc.codemodule.zcml import ZCMLFile
+
from zope.proxy import removeAllProxies
import z3c.flashmessage.interfaces
@@ -89,11 +90,43 @@
return '/docgrok/' in self.url()
+def getDottedPathDict(dotted_path):
+ """Get a dict containing parts of a dotted path as links.
+ """
+ if dotted_path is None:
+ return {}
+
+ result = []
+ part_path = ""
+ for part in dotted_path.split( '.' ):
+ name = part
+ if part_path != "":
+ name = "." + part
+ part_path += part
+ result.append( {
+ 'name':name,
+ 'url':"/docgrok/%s" % (part_path,)
+ })
+ part_path += "/"
+ return result
+
+
+
class Inspect(GAIAView):
"""Basic object browser.
"""
grok.context(Interface)
+ def __init__(self, context, request):
+ # Leave out the Introspector init, because it requires
+ # ++apidoc++ to be enabled and setups skin-related stuff we
+ # don't want.
+ super(GAIAView, self).__init__(context,request)
+
+
+ def getPathParts(self,dotted_path):
+ return getDottedPathDict(dotted_path)
+
def getId(self):
if hasattr( self.context, '__name__'):
return self.context.__name__
@@ -106,9 +139,12 @@
return
def getDottedPath(self):
- # XXX To be implemented.
+ if hasattr(self.context, '__class__'):
+ klassname = str(self.context.__class__)
+ return klassname.rsplit("'", 2)[1]
return
+
def getSize(self):
# XXX To be implemented.
return
@@ -125,16 +161,13 @@
# XXX To be implemented.
return
- def getOwner(self):
- # XXX To be implemented.
- return
-
def getSecurityInfo(self):
# XXX To be implemented.
return
def getParent(self):
- # XXX To be implemented.
+ if hasattr( self.context, '__parent__'):
+ return self.context.__parent__
return
def getChildren(self):
@@ -142,7 +175,9 @@
return
def getType(self):
- # XXX To be implemented really.
+ if hasattr(self.context, '__class__'):
+ klassname = str(self.context.__class__)
+ return klassname.rsplit("'", 2)[1]
return str(self.context)
@@ -158,13 +193,13 @@
self.applications = ("%s.%s" % (x.__module__, x.__name__)
for x in apps)
# Go to the first page immediately.
- self.redirect(self.url('appsindex'))
+ self.redirect(self.url('applications'))
-class AppsIndex(GAIAView):
+class Applications(GAIAView):
"""View for application management."""
- grok.name('appsindex')
+ grok.name('applications')
grok.require('grok.ManageApplications')
def getDocOfApp(self, apppath, headonly = True):
@@ -306,6 +341,7 @@
path = self.context.path
if path is None:
return None
+ return getDottedPathDict(path)
result = []
part_path = ""
for part in path.split( '.' ):
Copied: Sandbox/ulif/grok-adminui/src/grok/admin/view_templates/applications.pt (from rev 77798, Sandbox/ulif/grok-adminui/src/grok/admin/view_templates/appsindex.pt)
===================================================================
--- Sandbox/ulif/grok-adminui/src/grok/admin/view_templates/applications.pt (rev 0)
+++ Sandbox/ulif/grok-adminui/src/grok/admin/view_templates/applications.pt 2007-07-13 11:01:00 UTC (rev 77844)
@@ -0,0 +1,56 @@
+<html metal:use-macro="context/@@macros/gaia-page">
+ <div metal:fill-slot="content">
+
+ <form tal:define="apps context/values"
+ tal:attributes="action string:${context/@@absolute_url}/delete"
+ tal:condition="apps|nothing">
+ <fieldset
+ tal:condition="python: len(view.installed_applications)">
+ <legend>Installed applications</legend>
+ <div tal:repeat="app view/installed_applications">
+ <input type="checkbox"
+ class="checkbox"
+ tal:attributes="value app/__name__;
+ name string:items" />
+ <a tal:attributes="href string:${context/@@absolute_url}/${app/__name__}">
+ <span tal:replace="app/__name__"/>
+ (<span tal:replace="app/__class__/__name__"/>)
+ </a>
+
+ </div>
+
+ <p>
+ <input class="button" type="submit" value="Delete Selected"/></p>
+ </fieldset>
+ </form>
+ <fieldset>
+ <legend>Add application</legend>
+
+ <div class="menu-box1"
+ tal:repeat="app view/applications">
+ <form action="" tal:attributes="action string:${context/@@absolute_url}/add;
+ name python: app['name'].split('.')[-1]">
+ <div class="menu-box2">
+ <div class="menu-head1"><a href=""
+ tal:attributes="href string:${context/@@absolute_url}/docgrok/${app/docurl}"
+ tal:content="app/name">Application Name</a></div>
+ <div class="menu-description1">
+ <span tal:replace="structure python: view.getDocOfApp(app['name']) or ''">
+ Application description here.
+ </span>
+ </div>
+ <div class="menu-box3">
+ <label>Name your new app: <input type="text" name="name"/></label>
+ <input type="hidden" name="application" value=""
+ tal:attributes="value app/name" />
+ <input class="button" type="submit" name="Add" value="Create"/>
+ </div>
+ </div>
+ </form>
+ </div>
+
+ </fieldset>
+
+ </div>
+
+</html>
Deleted: Sandbox/ulif/grok-adminui/src/grok/admin/view_templates/appsindex.pt
===================================================================
--- Sandbox/ulif/grok-adminui/src/grok/admin/view_templates/appsindex.pt 2007-07-13 10:58:33 UTC (rev 77843)
+++ Sandbox/ulif/grok-adminui/src/grok/admin/view_templates/appsindex.pt 2007-07-13 11:01:00 UTC (rev 77844)
@@ -1,56 +0,0 @@
-<html metal:use-macro="context/@@macros/gaia-page">
- <div metal:fill-slot="content">
-
- <form tal:define="apps context/values"
- tal:attributes="action string:${context/@@absolute_url}/delete"
- tal:condition="apps|nothing">
- <fieldset
- tal:condition="python: len(view.installed_applications)">
- <legend>Installed applications</legend>
- <div tal:repeat="app view/installed_applications">
- <input type="checkbox"
- class="checkbox"
- tal:attributes="value app/__name__;
- name string:items" />
- <a tal:attributes="href string:${context/@@absolute_url}/${app/__name__}">
- <span tal:replace="app/__name__"/>
- (<span tal:replace="app/__class__/__name__"/>)
- </a>
-
- </div>
-
- <p>
- <input class="button" type="submit" value="Delete Selected"/></p>
- </fieldset>
- </form>
- <fieldset>
- <legend>Add application</legend>
-
- <div class="menu-box1"
- tal:repeat="app view/applications">
- <form action="" tal:attributes="action string:${context/@@absolute_url}/add;
- name python: app['name'].split('.')[-1]">
- <div class="menu-box2">
- <div class="menu-head1"><a href=""
- tal:attributes="href string:${context/@@absolute_url}/docgrok/${app/docurl}"
- tal:content="app/name">Application Name</a></div>
- <div class="menu-description1">
- <span tal:replace="structure python: view.getDocOfApp(app['name']) or ''">
- Application description here.
- </span>
- </div>
- <div class="menu-box3">
- <label>Name your new app: <input type="text" name="name"/></label>
- <input type="hidden" name="application" value=""
- tal:attributes="value app/name" />
- <input class="button" type="submit" name="Add" value="Create"/>
- </div>
- </div>
- </form>
- </div>
-
- </fieldset>
-
- </div>
-
-</html>
Modified: Sandbox/ulif/grok-adminui/src/grok/admin/view_templates/index.pt
===================================================================
--- Sandbox/ulif/grok-adminui/src/grok/admin/view_templates/index.pt 2007-07-13 10:58:33 UTC (rev 77843)
+++ Sandbox/ulif/grok-adminui/src/grok/admin/view_templates/index.pt 2007-07-13 11:01:00 UTC (rev 77844)
@@ -3,7 +3,7 @@
<h1></h1>
<div class="logo">
<a href="context/@@appsindex"
- tal:attributes="href string:${context/@@absolute_url}/appsindex">
+ tal:attributes="href string:${context/@@absolute_url}/applications">
<img alt="Image of Grok relaxing..."
src="grok-relax.jpg"
tal:attributes="src view/static/grok-relax.png" />
Modified: Sandbox/ulif/grok-adminui/src/grok/admin/view_templates/inspect.pt
===================================================================
--- Sandbox/ulif/grok-adminui/src/grok/admin/view_templates/inspect.pt 2007-07-13 10:58:33 UTC (rev 77843)
+++ Sandbox/ulif/grok-adminui/src/grok/admin/view_templates/inspect.pt 2007-07-13 11:01:00 UTC (rev 77844)
@@ -7,9 +7,17 @@
<h1>
'<span tal:content="view/getId"
tal:on-error="default">Unnamed Object</span>'
- (<span tal:content="view/getType"
- tal:on-error="default">unknown type</span>)
+ (object of type
+ <span tal:repeat="urlpart python: view.getPathParts(view.getDottedPath())">
+ <a href=""
+ tal:attributes="href urlpart/url"
+ tal:content="urlpart/name">dotted_path_part here...</a>
+ </span>)
</h1>
+ <h2>Parent</h2>
+ <div tal:content="view/getParent">
+ My Parent
+ </div>
</div>
</body>
</html>
\ No newline at end of file
Modified: Sandbox/ulif/grok-adminui/src/grok/admin/view_templates/macros.pt
===================================================================
--- Sandbox/ulif/grok-adminui/src/grok/admin/view_templates/macros.pt 2007-07-13 10:58:33 UTC (rev 77843)
+++ Sandbox/ulif/grok-adminui/src/grok/admin/view_templates/macros.pt 2007-07-13 11:01:00 UTC (rev 77844)
@@ -30,8 +30,8 @@
</div>
<center tal:define="currview python:view.url()">
<span class="menu_link_inactive"
- tal:define="target string:${view/root_url}/appsindex">
- <a href="appsindex"
+ tal:define="target string:${view/root_url}/applications">
+ <a href="applications"
tal:condition="python: target != currview"
tal:attributes="href target"
>Applications</a>
More information about the Checkins
mailing list