[cig-commits] r11994 - in cs/portal/trunk/northridge/SeismoWebPortal: . templates/SeismoWebPortal

leif at geodynamics.org leif at geodynamics.org
Wed May 21 19:09:59 PDT 2008


Author: leif
Date: 2008-05-21 19:09:59 -0700 (Wed, 21 May 2008)
New Revision: 11994

Modified:
   cs/portal/trunk/northridge/SeismoWebPortal/mezzanine.py
   cs/portal/trunk/northridge/SeismoWebPortal/models.py
   cs/portal/trunk/northridge/SeismoWebPortal/templates/SeismoWebPortal/pluggable.html
   cs/portal/trunk/northridge/SeismoWebPortal/templates/SeismoWebPortal/style.css
   cs/portal/trunk/northridge/SeismoWebPortal/views.py
Log:
Added prev & next buttons.  Behold:  the navigation bar.


Modified: cs/portal/trunk/northridge/SeismoWebPortal/mezzanine.py
===================================================================
--- cs/portal/trunk/northridge/SeismoWebPortal/mezzanine.py	2008-05-21 16:44:44 UTC (rev 11993)
+++ cs/portal/trunk/northridge/SeismoWebPortal/mezzanine.py	2008-05-22 02:09:59 UTC (rev 11994)
@@ -400,7 +400,33 @@
         return t.render(c)
 
     id = property(lambda self: self.obj.id)
+    prevObject = property(lambda self: self._getPrevObject())
+    nextObject = property(lambda self: self._getNextObject())
 
+    def _getPrevObject(self):
+        if not hasattr(self, '_prevObject'):
+            self._prevObject = None
+            prevObjQ = self._prevObjectQuery()
+            for o in prevObjQ:
+                self._prevObject = o
+                break
+        return self._prevObject
+
+    def _prevObjectQuery(self):
+        return self.Model.objects.filter(id__lt = self.obj.id).order_by('-id')
+    
+    def _getNextObject(self):
+        if not hasattr(self, '_nextObject'):
+            self._nextObject = None
+            nextObjQ = self._nextObjectQuery()
+            for o in nextObjQ:
+                self._nextObject = o
+                break
+        return self._nextObject
+
+    def _nextObjectQuery(self):
+        return self.Model.objects.filter(id__gt = self.obj.id).order_by('id')
+
     @classmethod
     def urlForObject(cls, obj, root, action=None):
         if action:
@@ -577,7 +603,13 @@
                        )
         return response
 
+    def _prevObjectQuery(self):
+        return self.obj.event.source_set.filter(timeShift__lte = self.obj.timeShift, id__lt = self.obj.id).order_by('-timeShift', '-id')
+    
+    def _nextObjectQuery(self):
+        return self.obj.event.source_set.filter(timeShift__gte = self.obj.timeShift, id__gt = self.obj.id).order_by('timeShift', 'id')
 
+
 # support code
 
 class HarvardCMTSearchResultsParser(HTMLParser):

Modified: cs/portal/trunk/northridge/SeismoWebPortal/models.py
===================================================================
--- cs/portal/trunk/northridge/SeismoWebPortal/models.py	2008-05-21 16:44:44 UTC (rev 11993)
+++ cs/portal/trunk/northridge/SeismoWebPortal/models.py	2008-05-22 02:09:59 UTC (rev 11994)
@@ -65,7 +65,7 @@
     region = models.ForeignKey(Region)
     
     eventName = models.CharField(maxlength=100)
-    timeShift = models.FloatField(max_digits=19, decimal_places=10)
+    timeShift = models.FloatField(max_digits=19, decimal_places=10, db_index=True)
     halfDuration = models.FloatField(max_digits=19, decimal_places=10)
     latitude = models.FloatField(max_digits=19, decimal_places=10)
     longitude = models.FloatField(max_digits=19, decimal_places=10)

Modified: cs/portal/trunk/northridge/SeismoWebPortal/templates/SeismoWebPortal/pluggable.html
===================================================================
--- cs/portal/trunk/northridge/SeismoWebPortal/templates/SeismoWebPortal/pluggable.html	2008-05-21 16:44:44 UTC (rev 11993)
+++ cs/portal/trunk/northridge/SeismoWebPortal/templates/SeismoWebPortal/pluggable.html	2008-05-22 02:09:59 UTC (rev 11994)
@@ -12,7 +12,7 @@
                 CIG Seismology Web Portal
             </h1>
         </td>
-        <td id=login align=right>
+        <td id=login align=right colspan=2>
             {% if user.is_authenticated %}
             <img src="{{root}}/images/user.gif"> {{ user.first_name }} ({{ user.username }}) ~
             {% endif %}
@@ -20,7 +20,7 @@
         </td>
     </tr>
     <tr>
-        <td colspan=2>
+        <td colspan=3>
             <table id=buttonbar>
                 <tr>
                     <td align=center>
@@ -168,7 +168,7 @@
                 </tr>
             </table>
         </td>
-        <td id=viewbar align=right>
+        <td id=navbar>
             <table>
                 <tr>
                     <td>
@@ -183,6 +183,26 @@
                         {% endif %}
                     </td>
                     <td>
+                        {% if prevObject %}
+                            <a class="actionButton" href="{{root}}/?class={{klass}}&object={{prevObject.id}}">&larr;</a>
+                        {% else %}
+                            <span class="actionButton disabled">&larr;</span>
+                        {% endif %}
+                    </td>
+                    <td>
+                        {% if nextObject %}
+                            <a class="actionButton" href="{{root}}/?class={{klass}}&object={{nextObject.id}}">&rarr;</a>
+                        {% else %}
+                            <span class="actionButton disabled">&rarr;</span>
+                        {% endif %}
+                    </td>
+                </tr>
+            </table>
+        </td>
+        <td id=viewbar align=right>
+            <table>
+                <tr>
+                    <td>
                         {% if views %}
                         <dl class="actionMenu alignRight" id="showMenu">
                             <dt class="actionMenuHeader">

Modified: cs/portal/trunk/northridge/SeismoWebPortal/templates/SeismoWebPortal/style.css
===================================================================
--- cs/portal/trunk/northridge/SeismoWebPortal/templates/SeismoWebPortal/style.css	2008-05-21 16:44:44 UTC (rev 11993)
+++ cs/portal/trunk/northridge/SeismoWebPortal/templates/SeismoWebPortal/style.css	2008-05-22 02:09:59 UTC (rev 11994)
@@ -85,6 +85,11 @@
     font-size: small;
 }
 
+#navbar {
+    border-bottom: 1px solid #8cacbb;
+    font-size: small;
+}
+
 #viewbar {
     border-bottom: 1px solid #8cacbb;
     font-size: small;

Modified: cs/portal/trunk/northridge/SeismoWebPortal/views.py
===================================================================
--- cs/portal/trunk/northridge/SeismoWebPortal/views.py	2008-05-21 16:44:44 UTC (rev 11993)
+++ cs/portal/trunk/northridge/SeismoWebPortal/views.py	2008-05-22 02:09:59 UTC (rev 11994)
@@ -44,6 +44,8 @@
     duplicatable = False
     views = []
     activeView = None
+    prevObject = None
+    nextObject = None
     klass = None
     
     if className is None:
@@ -82,6 +84,8 @@
             downloadable = downloadableAsText or downloadableAsKML
             duplicatable = obj.duplicatable
             views = obj.views
+            prevObject = obj.prevObject
+            nextObject = obj.nextObject
 
             if action is None:
                 activeView = request.REQUEST.get('view', obj.defaultView)
@@ -121,6 +125,8 @@
         duplicatable = duplicatable,
         views = views,
         activeView = activeView,
+        prevObject = prevObject,
+        nextObject = nextObject,
         root = root,
         ))
     response.write(t.render(c))



More information about the cig-commits mailing list