[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>
+	  &nbsp;&nbsp;
+	</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>
-	  &nbsp;&nbsp;
-	</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