[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}}">←</a>
+ {% else %}
+ <span class="actionButton disabled">←</span>
+ {% endif %}
+ </td>
+ <td>
+ {% if nextObject %}
+ <a class="actionButton" href="{{root}}/?class={{klass}}&object={{nextObject.id}}">→</a>
+ {% else %}
+ <span class="actionButton disabled">→</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