[cig-commits] r11754 - in cs/portal/trunk/seismo/SeismoWebPortal: . templates/SeismoWebPortal
leif at geodynamics.org
leif at geodynamics.org
Sat Apr 5 19:24:40 PDT 2008
Author: leif
Date: 2008-04-05 19:24:40 -0700 (Sat, 05 Apr 2008)
New Revision: 11754
Modified:
cs/portal/trunk/seismo/SeismoWebPortal/forms.py
cs/portal/trunk/seismo/SeismoWebPortal/templates/SeismoWebPortal/event_search_results.html
cs/portal/trunk/seismo/SeismoWebPortal/views.py
Log:
Fixed retrieval of events from catalog.
Modified: cs/portal/trunk/seismo/SeismoWebPortal/forms.py
===================================================================
--- cs/portal/trunk/seismo/SeismoWebPortal/forms.py 2008-04-05 03:27:54 UTC (rev 11753)
+++ cs/portal/trunk/seismo/SeismoWebPortal/forms.py 2008-04-06 02:24:40 UTC (rev 11754)
@@ -293,20 +293,40 @@
return
def save(self, new_data, user):
- from datetime import datetime
-
+
# Get/create the location.
location = Location.getLocation(new_data['latitude'], new_data['longitude'])
- del new_data['latitude']
- del new_data['longitude']
# Get/create the CMTSolution.
- kwds = {}
- for k in new_data.iterkeys():
- kwds[k] = new_data[k] # convert from MultiValueDict to dict
- kwds['location'] = location
- cmtSolution = CMTSolution.getCMTSolution(**kwds)
+ cmtSolution = CMTSolution.getCMTSolution(
+ halfDuration = new_data['halfDuration'],
+ location = location,
+ depth = new_data['depth'],
+ Mrr = new_data['Mrr'],
+ Mtt = new_data['Mtt'],
+ Mpp = new_data['Mpp'],
+ Mrt = new_data['Mrt'],
+ Mrp = new_data['Mrp'],
+ Mtp = new_data['Mtp'],
+ )
+
+ # Create the new Event.
+ event = self.createEvent(new_data, location)
+
+ # Add the Source.
+ source = self.createSource(new_data, event, cmtSolution)
+
+ # Create a new workspace for this event.
+ workspace = EventWorkspace(event = event,
+ stations = StationList.favorite(),
+ )
+ workspace.save()
+ return workspace
+
+ def createEvent(self, new_data, location):
+ from datetime import datetime
+
# Create the DataSource and Region.
dataSource, created = DataSource.objects.get_or_create(name = "ZZZ")
region, created = Region.objects.get_or_create(name = "ZZZZ")
@@ -322,21 +342,77 @@
sourceMs = 0.0,
region = region,
)
+
+ return event
- # Add the Source.
+ def createSource(self, new_data, event, cmtSolution):
source = Source.objects.create(
event = event,
eventName = "000000Z",
timeShift = 0.0,
cmtSolution = cmtSolution,
)
+ return source
- # Create a new workspace for this event.
- workspace = EventWorkspace(event = event,
- stations = StationList.favorite(),
- )
- workspace.save()
+
+class PDEEventAddManipulator(SingleSourceEventAddManipulator):
+
+ def __init__(self):
+ super(PDEEventAddManipulator, self).__init__()
+ # add fields for PDE info
+ self.fields.extend([forms.TextField('dataSource', maxlength=100, is_required=True),
+ forms.DateField('when_date', is_required=True),
+ forms.TimeField('when_time', is_required=True),
+ forms.IntegerField('microsecond', is_required=True),
+ forms.FloatField('sourceLatitude', max_digits=19, decimal_places=10, is_required=True),
+ forms.FloatField('sourceLongitude', max_digits=19, decimal_places=10, is_required=True),
+ forms.FloatField('sourceDepth', max_digits=19, decimal_places=10, is_required=True),
+ forms.FloatField('sourceMB', max_digits=19, decimal_places=10, is_required=True),
+ forms.FloatField('sourceMs', max_digits=19, decimal_places=10, is_required=True),
+ forms.TextField('region', maxlength=100, is_required=True),
+ forms.TextField('eventName', maxlength=100, is_required=True),
+ forms.FloatField('timeShift', max_digits=19, decimal_places=10, is_required=True),
+ ])
+ return
+
+ def createEvent(self, new_data, location):
+ from datetime import datetime
+
+ # Create the DataSource and Region.
+ dataSource, created = DataSource.objects.get_or_create(name = new_data['dataSource'])
+ region, created = Region.objects.get_or_create(name = new_data['region'])
+
+ # get/create the location
+ sourceLocation = Location.getLocation(new_data['sourceLatitude'], new_data['sourceLongitude'])
+
+ # Create the new Event.
+ event = Event.objects.create(
+ dataSource = dataSource,
+ when = datetime.combine(new_data['when_date'], new_data['when_time']),
+ microsecond = new_data['microsecond'],
+ sourceLocation = sourceLocation,
+ sourceDepth = new_data['sourceDepth'],
+ sourceMB = new_data['sourceMB'],
+ sourceMs = new_data['sourceMs'],
+ region = region,
+ )
+
+ return event
+
+ def createSource(self, new_data, event, cmtSolution):
+ source = Source.objects.create(
+ event = event,
+ eventName = new_data['eventName'],
+ timeShift = new_data['timeShift'],
+ cmtSolution = cmtSolution,
+ )
+ return source
+
+ def save(self, new_data, user):
+ workspace = super(PDEEventAddManipulator, self).save(new_data, user)
+ workspace.fsNode.name = new_data['eventName']
+ workspace.fsNode.save()
return workspace
@@ -369,7 +445,7 @@
location = Location.getLocation(new_data['latitude'], new_data['longitude'])
del new_data['latitude']
del new_data['longitude']
-
+
# Get/create the CMTSolution.
kwds = {}
for k in new_data.iterkeys():
Modified: cs/portal/trunk/seismo/SeismoWebPortal/templates/SeismoWebPortal/event_search_results.html
===================================================================
--- cs/portal/trunk/seismo/SeismoWebPortal/templates/SeismoWebPortal/event_search_results.html 2008-04-05 03:27:54 UTC (rev 11753)
+++ cs/portal/trunk/seismo/SeismoWebPortal/templates/SeismoWebPortal/event_search_results.html 2008-04-06 02:24:40 UTC (rev 11754)
@@ -23,7 +23,6 @@
<td>
<!-- an inline events/add form, already filled-out -->
<form method="post" action="{{root}}/config/events/new/">
- <input type="hidden" name="name" value="{{ event.eventName }}"/>
<input type="hidden" name="dataSource" value="{{ event.dataSource }}"/>
<input type="hidden" name="when_date" value="{{ event.year }}-{{ event.month }}-{{ event.day }}"/>
<input type="hidden" name="when_time" value="{{ event.hour }}:{{ event.minuteStr }}:{{ event.secondStr }}"/>
@@ -46,7 +45,7 @@
<input type="hidden" name="Mrt" value="{{ event.Mrt }}"/>
<input type="hidden" name="Mrp" value="{{ event.Mrp }}"/>
<input type="hidden" name="Mtp" value="{{ event.Mtp }}"/>
- <input type="submit" value="Add" />
+ <input type="submit" value="Open" />
</form>
</td>
<td>{{ event.beachball }}</td>
Modified: cs/portal/trunk/seismo/SeismoWebPortal/views.py
===================================================================
--- cs/portal/trunk/seismo/SeismoWebPortal/views.py 2008-04-05 03:27:54 UTC (rev 11753)
+++ cs/portal/trunk/seismo/SeismoWebPortal/views.py 2008-04-06 02:24:40 UTC (rev 11754)
@@ -1496,12 +1496,16 @@
def manipulate_event(request, path, desktop, action=None, workspace=None, window=None):
- from forms import SingleSourceEventAddManipulator, SingleSourceEventChangeManipulator
+ from forms import SingleSourceEventAddManipulator, SingleSourceEventChangeManipulator, PDEEventAddManipulator
if path: raise Http404
if action == "new":
- manipulator = SingleSourceEventAddManipulator()
+ if request.method == 'POST' and request.POST.has_key('dataSource'):
+ # These POST forms are hidden in the globalcmt.org search results.
+ manipulator = PDEEventAddManipulator()
+ else:
+ manipulator = SingleSourceEventAddManipulator()
event = None
window = gui.ChildWindow(config.root + "/config/events/new/", "New")
desktop.activeWindow.insertWindow(window)
More information about the cig-commits
mailing list