[cig-commits] r11866 - in cs/portal/trunk/seismo/SeismoWebPortal: . templates/SeismoWebPortal

leif at geodynamics.org leif at geodynamics.org
Fri Apr 25 13:44:32 PDT 2008


Author: leif
Date: 2008-04-25 13:44:32 -0700 (Fri, 25 Apr 2008)
New Revision: 11866

Modified:
   cs/portal/trunk/seismo/SeismoWebPortal/templates/SeismoWebPortal/seismogram_table.html
   cs/portal/trunk/seismo/SeismoWebPortal/views.py
Log:
Partition objects according to type.


Modified: cs/portal/trunk/seismo/SeismoWebPortal/templates/SeismoWebPortal/seismogram_table.html
===================================================================
--- cs/portal/trunk/seismo/SeismoWebPortal/templates/SeismoWebPortal/seismogram_table.html	2008-04-25 17:08:53 UTC (rev 11865)
+++ cs/portal/trunk/seismo/SeismoWebPortal/templates/SeismoWebPortal/seismogram_table.html	2008-04-25 20:44:32 UTC (rev 11866)
@@ -10,7 +10,7 @@
         zero half duration
     </td>
 
-    <td align=left><a href="settings/">Edit...</a></td>
+    <td align=left><a href="../settings/">Edit...</a></td>
 </tr></table>
 
 {% if assist %}

Modified: cs/portal/trunk/seismo/SeismoWebPortal/views.py
===================================================================
--- cs/portal/trunk/seismo/SeismoWebPortal/views.py	2008-04-25 17:08:53 UTC (rev 11865)
+++ cs/portal/trunk/seismo/SeismoWebPortal/views.py	2008-04-25 20:44:32 UTC (rev 11866)
@@ -244,24 +244,29 @@
     return folderView(Folder.sharedFolder(), "shared", workspace, url + "shared/", request, path, appWindow, desktop)
 
 
-def folderView(folder, slug, workspace, url, request, path, appWindow, desktop):
+def folderView(folder, slug, workspace, url, request, path, appWindow, desktop, ModelClass=None):
     if path:
         name = path.pop(0)
-        return configObject(name, workspace, url, request, path, appWindow, desktop)
+        return configObject(name, workspace, url, request, path, appWindow, desktop, slug)
 
     folderIcon = appWindow.root.index[slug]
     appWindow.root.setAnchor(slug)
     appWindow.path.append(folderIcon)
     child = gui.ChildWindow(url, "View")
-    child.content = folderIconView(folder, workspace, url, request, path, appWindow, desktop)
+    child.content = folderIconView(folder, workspace, url, request, path, appWindow, desktop, ModelClass)
     desktop.activeWindow.selectWindow(child)
     return desktop
 
 
-def folderIconView(folder, workspace, url, request, path, appWindow, desktop):
+def folderIconView(folder, workspace, url, request, path, appWindow, desktop, ModelClass = None):
 
     name = folder.fsNode.name
-    items = FSNode.objects.filter(parent=folder.fsNode)
+    if ModelClass is None:
+        items = FSNode.objects.filter(parent=folder.fsNode)
+    else:
+        from django.contrib.contenttypes.models import ContentType
+        ctype = ContentType.objects.get_for_model(ModelClass)
+        items = FSNode.objects.filter(parent=folder.fsNode, kind=ctype)
     
     html = StringIO()
     
@@ -355,19 +360,13 @@
     raise Http404
 
 
-def configObject(name, workspace, url, request, path, appWindow, desktop):
+def configObject(name, workspace, url, request, path, appWindow, desktop, folderName):
     objId = intOr404(name)
     parentURL = url
     url += "%d/" % objId
     
     fsNode = get_object_or_404(FSNode, id=objId)
     
-    if fsNode.inTrash:
-        folderName = "trash"
-    elif fsNode.owner:
-        folderName = "home"
-    else:
-        folderName = "shared"
     folder = appWindow.root.index[folderName]
     appWindow.root.setAnchor(folderName)
     appWindow.path.append(folder)
@@ -452,7 +451,7 @@
         name = path.pop(0)
         if name == "config":
             return configFactory(url, request, path, desktop)
-        return configObject(name, workspace, url, request, path, appWindow, desktop)
+        return configObject(name, workspace, url, request, path, appWindow, desktop, "home")
     
     appWindow.root.setAnchor("home")
     homeFolder = appWindow.root.index["home"]
@@ -1350,16 +1349,24 @@
 
     appWindow = desktop.eventViewers[workspace.id]
     appWindow.root.appendNodes([
-        gui.Directory("events", "Events", [
-        gui.Search("search", "Search", url = url + "events/"),
-        ]),
+        gui.Directory("events", "Events", [gui.Search("search", "Search", url = url + "events/"),
+                                           ]),
+        ###
+        gui.Directory("home", "Home", []),
+        gui.Directory("shared", "Shared", []),
+        ####
+        gui.Directory("stations", "Stations", []),
+        gui.Directory("1dmodels", "1D Models", []),
+        gui.Directory("1dparameters", "1D Parameters", []),
+        gui.Directory("3dmeshes", "3D Meshes", []),
+        gui.Directory("3dmodels", "3D Models", []),
+        gui.Directory("3dparameters", "3D Parameters", []),
+        gui.Directory("trash", "Trash", []),
+        ####
         gui.File("seismograms", "Seismograms"),
         sources,
         gui.Directory("maps", "Maps", [], url = url + "maps/"),
         gui.File("settings", "Settings", url = url + "settings/"),
-        gui.Directory("home", "Home", []),
-        gui.Directory("shared", "Shared", []),
-        gui.Directory("trash", "Trash", []),
         ])
     desktop.selectWindow(appWindow)
 
@@ -1416,6 +1423,19 @@
                              post_save_redirect = url,
                              follow = FSNode.follow,
                              )
+ 
+    index = Index({
+        "stations": StationList,
+        "1dmodels": MineosModel,
+        "1dparameters": MineosParameters,
+        "3dmeshes": Specfem3DGlobeMesh,
+        "3dmodels": Specfem3DGlobeModel,
+        "3dparameters": Specfem3DGlobeParameters,
+        })
+    ModelClass = index.get(name)
+    if ModelClass:
+        return folderView(Folder.sharedFolder(), name, workspace, url + name + "/", request, path, appWindow, desktop,
+                          ModelClass)
 
     if name == "home":
         return homeFolder(workspace, url, request, path, appWindow, desktop)



More information about the cig-commits mailing list