[cig-commits] r11850 - in cs/portal/trunk/seismo/SeismoWebPortal: . designs/plone static/icons templates/SeismoWebPortal templates/registration
leif at geodynamics.org
leif at geodynamics.org
Tue Apr 22 18:57:49 PDT 2008
Author: leif
Date: 2008-04-22 18:57:48 -0700 (Tue, 22 Apr 2008)
New Revision: 11850
Added:
cs/portal/trunk/seismo/SeismoWebPortal/static/icons/eventupload.gif
cs/portal/trunk/seismo/SeismoWebPortal/static/icons/lightbulb.gif
cs/portal/trunk/seismo/SeismoWebPortal/templates/SeismoWebPortal/welcome.html
Modified:
cs/portal/trunk/seismo/SeismoWebPortal/designs/plone/style.css
cs/portal/trunk/seismo/SeismoWebPortal/designs/plone/style.py
cs/portal/trunk/seismo/SeismoWebPortal/forms.py
cs/portal/trunk/seismo/SeismoWebPortal/gmt.py
cs/portal/trunk/seismo/SeismoWebPortal/management.py
cs/portal/trunk/seismo/SeismoWebPortal/models.py
cs/portal/trunk/seismo/SeismoWebPortal/templates/SeismoWebPortal/mineosparameters_form.html
cs/portal/trunk/seismo/SeismoWebPortal/templates/SeismoWebPortal/seismogram_table.html
cs/portal/trunk/seismo/SeismoWebPortal/templates/SeismoWebPortal/specfem3dglobeparameters_form.html
cs/portal/trunk/seismo/SeismoWebPortal/templates/registration/login.html
cs/portal/trunk/seismo/SeismoWebPortal/views.py
Log:
Preparations for beta release/deployment: Removed hard-coded paths to
GMT. Added code to import user tables from legacy database. Added
welcome page, light bulb, and "new parameter set" links w/loopback.
Modified: cs/portal/trunk/seismo/SeismoWebPortal/designs/plone/style.css
===================================================================
--- cs/portal/trunk/seismo/SeismoWebPortal/designs/plone/style.css 2008-04-22 20:58:44 UTC (rev 11849)
+++ cs/portal/trunk/seismo/SeismoWebPortal/designs/plone/style.css 2008-04-23 01:57:48 UTC (rev 11850)
@@ -361,6 +361,15 @@
background-color: #eef;
}
+table.cool .add {
+ border-top: 1px solid black;
+ background-color: #eee;
+}
+
+table.cool tr:target {
+ background-color: yellow;
+}
+
table.cool tr.title {
color: white;
background-color: #88f;
Modified: cs/portal/trunk/seismo/SeismoWebPortal/designs/plone/style.py
===================================================================
--- cs/portal/trunk/seismo/SeismoWebPortal/designs/plone/style.py 2008-04-22 20:58:44 UTC (rev 11849)
+++ cs/portal/trunk/seismo/SeismoWebPortal/designs/plone/style.py 2008-04-23 01:57:48 UTC (rev 11850)
@@ -33,10 +33,10 @@
currentTime=time.time
__CHEETAH_version__ = '2.0rc7'
__CHEETAH_versionTuple__ = (2, 0, 0, 'candidate', 7)
-__CHEETAH_genTime__ = 1208567245.728482
-__CHEETAH_genTimestamp__ = 'Fri Apr 18 18:07:25 2008'
+__CHEETAH_genTime__ = 1208912201.098881
+__CHEETAH_genTimestamp__ = 'Tue Apr 22 17:56:41 2008'
__CHEETAH_src__ = 'style.css'
-__CHEETAH_srcLastModified__ = 'Fri Apr 18 18:07:07 2008'
+__CHEETAH_srcLastModified__ = 'Tue Apr 22 17:56:36 2008'
__CHEETAH_docstring__ = 'Autogenerated by CHEETAH: The Python-Powered Template Engine'
if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
@@ -446,6 +446,15 @@
background-color: #eef;
}
+table.cool .add {
+ border-top: 1px solid black;
+ background-color: #eee;
+}
+
+table.cool tr:target {
+ background-color: yellow;
+}
+
table.cool tr.title {
color: white;
background-color: #88f;
@@ -490,15 +499,15 @@
span.True:before {
content: url(''')
- _v = VFFSL(SL,"root",True) # '$root' on line 407, col 18
- if _v is not None: write(_filter(_v, rawExpr='$root')) # from line 407, col 18.
+ _v = VFFSL(SL,"root",True) # '$root' on line 416, col 18
+ if _v is not None: write(_filter(_v, rawExpr='$root')) # from line 416, col 18.
write('''/pics/icon-yes.gif) " ";
}
span.False:before {
content: url(''')
- _v = VFFSL(SL,"root",True) # '$root' on line 411, col 18
- if _v is not None: write(_filter(_v, rawExpr='$root')) # from line 411, col 18.
+ _v = VFFSL(SL,"root",True) # '$root' on line 420, col 18
+ if _v is not None: write(_filter(_v, rawExpr='$root')) # from line 420, col 18.
write('''/pics/icon-no.gif) " ";
}
Modified: cs/portal/trunk/seismo/SeismoWebPortal/forms.py
===================================================================
--- cs/portal/trunk/seismo/SeismoWebPortal/forms.py 2008-04-22 20:58:44 UTC (rev 11849)
+++ cs/portal/trunk/seismo/SeismoWebPortal/forms.py 2008-04-23 01:57:48 UTC (rev 11850)
@@ -249,9 +249,9 @@
userInfo = user.userinfo
except UserInfo.DoesNotExist:
userInfo = UserInfo()
+ userInfo.user = user
userInfo.home = Folder.newFolder("Home", user)
userInfo.trash = Folder.newFolder("Trash", user)
- user.userinfo = userInfo
# Save the new user.
user.first_name = new_data['first_name']
user.last_name = new_data['last_name']
Modified: cs/portal/trunk/seismo/SeismoWebPortal/gmt.py
===================================================================
--- cs/portal/trunk/seismo/SeismoWebPortal/gmt.py 2008-04-22 20:58:44 UTC (rev 11849)
+++ cs/portal/trunk/seismo/SeismoWebPortal/gmt.py 2008-04-23 01:57:48 UTC (rev 11850)
@@ -10,7 +10,8 @@
from django.shortcuts import get_object_or_404
-gmt_bin = "/home/leif/opt/gmt/bin"
+gmt_bin = join(os.environ['WEBPORTAL_GMT_ROOT'], "bin")
+netCDF_lib = join(os.environ['WEBPORTAL_NETCDF_ROOT'], "lib")
def psmeca(cmt, filename, args):
@@ -20,7 +21,7 @@
owd = os.getcwd()
workdir = mkdtemp()
os.chdir(workdir)
- os.putenv("LD_LIBRARY_PATH", "/home/leif/opt/netCDF/lib")
+ os.putenv("LD_LIBRARY_PATH", netCDF_lib)
# Spawn 'psmeca' to draw the beachball.
child = Popen3([join(gmt_bin, "psmeca"), '-R0/10/0/10', '-Jx1', '-G255/0/0', '-L2', '-K', '-V', '-P'] + args)
@@ -63,7 +64,7 @@
owd = os.getcwd()
workdir = mkdtemp()
os.chdir(workdir)
- os.putenv("LD_LIBRARY_PATH", "/home/leif/opt/netCDF/lib")
+ os.putenv("LD_LIBRARY_PATH", netCDF_lib)
#==========================================================
@@ -347,7 +348,7 @@
owd = os.getcwd()
workdir = mkdtemp()
os.chdir(workdir)
- os.putenv("LD_LIBRARY_PATH", "/home/leif/opt/netCDF/lib")
+ os.putenv("LD_LIBRARY_PATH", netCDF_lib)
PS_OUT = join(workdir, "map.ps")
Modified: cs/portal/trunk/seismo/SeismoWebPortal/management.py
===================================================================
--- cs/portal/trunk/seismo/SeismoWebPortal/management.py 2008-04-22 20:58:44 UTC (rev 11849)
+++ cs/portal/trunk/seismo/SeismoWebPortal/management.py 2008-04-23 01:57:48 UTC (rev 11850)
@@ -2,6 +2,7 @@
from django.dispatch import dispatcher
from django.db.models import signals
import models
+import os
def createSpecfem3DGlobeModels():
@@ -154,6 +155,78 @@
return
+def importLegacyDatabase(legacyDB):
+ from pysqlite2 import dbapi2 as sqlite
+
+ print "Importing legacy database '%s'" % legacyDB
+
+ con = sqlite.connect(legacyDB)
+ cur = con.cursor()
+
+ # Invite
+ invites = {}
+ invites[None] = None
+ cur.execute("select * from SeismoWebPortal_invite")
+ for (id, code, name, description,
+ created, modified, expires) in cur:
+ invites[id] = models.Invite.objects.create(
+ id = id,
+ code = code,
+ name = name,
+ description = description,
+ created = created,
+ modified = modified,
+ expires = expires,
+ )
+
+ # User
+ from django.contrib.auth.models import User
+ users = {}
+ cur.execute("select * from auth_user")
+ for (id, username,
+ first_name, last_name, email,
+ password,
+ is_staff, is_active, is_superuser,
+ last_login, date_joined) in cur:
+ users[id] = User.objects.create(
+ id = id,
+ username = username,
+ first_name = first_name,
+ last_name = last_name,
+ email = email,
+ password = password,
+ is_staff = is_staff,
+ is_active = is_active,
+ is_superuser = is_superuser,
+ last_login = last_login,
+ date_joined = date_joined,
+ )
+
+ # UserInfo
+ cur.execute("select * from SeismoWebPortal_userinfo")
+ for (user_id,
+ institution,
+ address1, address2, address3, phone,
+ invite_id, approved,
+ help_visible) in cur:
+ user = users[user_id]
+ models.UserInfo.objects.create(
+ user = user,
+ institution = institution,
+ address1 = address1,
+ address2 = address2,
+ address3 = address3,
+ phone = phone,
+ invite = invites[invite_id],
+ approved = approved,
+ help_visible = help_visible,
+ home = models.Folder.newFolder("Home", user),
+ trash = models.Folder.newFolder("Trash", user),
+ )
+
+ return
+
+
def createDefaults(app, created_models):
# Specfem 3D Globe
@@ -183,6 +256,10 @@
models.StationList in created_models):
createStationList()
+ legacyDB = os.environ.get('WEBPORTAL_LEGACY_DB')
+ if legacyDB:
+ importLegacyDatabase(legacyDB)
+
return
Modified: cs/portal/trunk/seismo/SeismoWebPortal/models.py
===================================================================
--- cs/portal/trunk/seismo/SeismoWebPortal/models.py 2008-04-22 20:58:44 UTC (rev 11849)
+++ cs/portal/trunk/seismo/SeismoWebPortal/models.py 2008-04-23 01:57:48 UTC (rev 11850)
@@ -1002,9 +1002,7 @@
except UserInfo.DoesNotExist:
newHome = Folder.newFolder("Home", user)
newTrash = Folder.newFolder("Trash", user)
- userInfo = UserInfo(home = newHome, trash = newTrash)
- user.userinfo = userInfo
- user.save()
+ userInfo = UserInfo(user = user, home = newHome, trash = newTrash)
userInfo.save()
return userInfo
Added: cs/portal/trunk/seismo/SeismoWebPortal/static/icons/eventupload.gif
===================================================================
(Binary files differ)
Property changes on: cs/portal/trunk/seismo/SeismoWebPortal/static/icons/eventupload.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: cs/portal/trunk/seismo/SeismoWebPortal/static/icons/lightbulb.gif
===================================================================
(Binary files differ)
Property changes on: cs/portal/trunk/seismo/SeismoWebPortal/static/icons/lightbulb.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: cs/portal/trunk/seismo/SeismoWebPortal/templates/SeismoWebPortal/mineosparameters_form.html
===================================================================
--- cs/portal/trunk/seismo/SeismoWebPortal/templates/SeismoWebPortal/mineosparameters_form.html 2008-04-22 20:58:44 UTC (rev 11849)
+++ cs/portal/trunk/seismo/SeismoWebPortal/templates/SeismoWebPortal/mineosparameters_form.html 2008-04-23 01:57:48 UTC (rev 11850)
@@ -68,6 +68,10 @@
<div><input class=submit type="submit" name="save" value="Save" />
</div>
+ {% if ws %}
+ <input type="hidden" name="ws" value="{{ws}}" />
+ {% endif %}
+
</div> <!-- tab30ex -->
</form>
Modified: cs/portal/trunk/seismo/SeismoWebPortal/templates/SeismoWebPortal/seismogram_table.html
===================================================================
--- cs/portal/trunk/seismo/SeismoWebPortal/templates/SeismoWebPortal/seismogram_table.html 2008-04-22 20:58:44 UTC (rev 11849)
+++ cs/portal/trunk/seismo/SeismoWebPortal/templates/SeismoWebPortal/seismogram_table.html 2008-04-23 01:57:48 UTC (rev 11850)
@@ -13,6 +13,11 @@
<td align=left><a href="settings/">Edit...</a></td>
</tr></table>
+{% if assist %}
+<p></p>
+<p><img src="{{root}}/icons/lightbulb.gif">To simulate this earthquake using the indicated parameters, click the "Request" button in the far right column.</p>
+{% endif %}
+
<table border=0 cellpadding=8><tr>
{% if mineos_parameter_set_list %}
@@ -41,7 +46,7 @@
<tbody>
{% for ps in mineos_parameter_set_list %}
- <tr class="{% cycle odd,even %}">
+ <tr class="{% cycle odd,even %}" id="ps{{ps.id}}">
<td>{{ ps.model }}</td>
<td>{{ ps.catalog }}</td>
<td><img src="{{ root }}/pics/icon-{% if ps.radial %}yes{% else %}no{% endif %}.gif" alt="{{ ps.radial }}"></td>
@@ -54,6 +59,7 @@
<td>{{ ps.outputStatus }}</td>
</tr>
{% endfor %}
+ <tr class=add><td colspan=10><a href="{{root}}/config/mineos/parameters/new/?ws={{workspace.fsNode.id}}">New Mineos parameter set...</a></td></tr>
</tbody>
</table></td>
{% endif %}
@@ -85,7 +91,7 @@
<tbody>
{% for ps in specfem3dglobe_parameter_set_list %}
- <tr class="{% cycle odd,even %}">
+ <tr class="{% cycle odd,even %}" id="ps{{ps.id}}">
<td>{{ ps.model.get_type_display }}</td>
<td><img src="{{ root }}/pics/icon-{% if ps.model.oceans %}yes{% else %}no{% endif %}.gif" alt="{{ ps.model.oceans }}"></td>
<td><img src="{{ root }}/pics/icon-{% if ps.model.gravity %}yes{% else %}no{% endif %}.gif" alt="{{ ps.model.gravity }}"></td>
@@ -98,6 +104,7 @@
<td>{{ ps.outputStatus }}</td>
</tr>
{% endfor %}
+ <tr class=add><td colspan=10><a href="{{root}}/config/specfem3dglobe/parameters/new/?ws={{workspace.fsNode.id}}">New Specfem 3D Globe parameter set...</a></td></tr>
</tbody>
</table>
</td>
Modified: cs/portal/trunk/seismo/SeismoWebPortal/templates/SeismoWebPortal/specfem3dglobeparameters_form.html
===================================================================
--- cs/portal/trunk/seismo/SeismoWebPortal/templates/SeismoWebPortal/specfem3dglobeparameters_form.html 2008-04-22 20:58:44 UTC (rev 11849)
+++ cs/portal/trunk/seismo/SeismoWebPortal/templates/SeismoWebPortal/specfem3dglobeparameters_form.html 2008-04-23 01:57:48 UTC (rev 11850)
@@ -32,6 +32,10 @@
<div><input class=submit type="submit" name="save" value="Save" />
</div>
+ {% if ws %}
+ <input type="hidden" name="ws" value="{{ws}}" />
+ {% endif %}
+
</div> <!-- tab30ex -->
</form>
Added: cs/portal/trunk/seismo/SeismoWebPortal/templates/SeismoWebPortal/welcome.html
===================================================================
--- cs/portal/trunk/seismo/SeismoWebPortal/templates/SeismoWebPortal/welcome.html (rev 0)
+++ cs/portal/trunk/seismo/SeismoWebPortal/templates/SeismoWebPortal/welcome.html 2008-04-23 01:57:48 UTC (rev 11850)
@@ -0,0 +1,21 @@
+
+<h2>Welcome</h2>
+
+<p>Welcome to the CIG Seismology Web Portal.</p>
+
+<table width="100%" cellspacing=40>
+ <tr>
+ <td>
+ <a href="{{root}}/events/"><img src="{{root}}/icons/eventfinder.gif" float=left>
+ <span style="font-size: x-large;">Search for an event</span></a><br>
+ in the the Global CMT Catalog
+ </td>
+
+ <td>
+ <a href="{{root}}/config/events/upload/"><img src="{{root}}/icons/eventupload.gif" float=left>
+ <span style="font-size: x-large;">Upload an event file</span></a><br>
+ in CMTSOLUTION format
+ </td>
+
+ </tr>
+</table>
Modified: cs/portal/trunk/seismo/SeismoWebPortal/templates/registration/login.html
===================================================================
--- cs/portal/trunk/seismo/SeismoWebPortal/templates/registration/login.html 2008-04-22 20:58:44 UTC (rev 11849)
+++ cs/portal/trunk/seismo/SeismoWebPortal/templates/registration/login.html 2008-04-23 01:57:48 UTC (rev 11850)
@@ -34,8 +34,6 @@
{% if next %}
<input type="hidden" name="next" value="{{ next }}" />
- {% else %}
- <input type="hidden" name="next" value="{{root}}/" />
{% endif %}
</div> <!-- tab30ex -->
Modified: cs/portal/trunk/seismo/SeismoWebPortal/views.py
===================================================================
--- cs/portal/trunk/seismo/SeismoWebPortal/views.py 2008-04-22 20:58:44 UTC (rev 11849)
+++ cs/portal/trunk/seismo/SeismoWebPortal/views.py 2008-04-23 01:57:48 UTC (rev 11850)
@@ -128,6 +128,7 @@
"trash": trashFolder,
"config": configFactory,
"events": event_search,
+ "welcome": welcome,
"profile": profile,
"logout": logout,
"help": help,
@@ -174,11 +175,19 @@
openFileBrowser(request, desktop)
openEventFinder(request, desktop)
openEventViewers(request, desktop)
+ if not desktop.eventViewers:
+ openGreeter(request, desktop)
if request.user.is_staff:
openAdminApp(request, desktop)
return
+def openGreeter(request, desktop):
+ welcome = gui.AppWindow(config.root + "/welcome/", "Welcome", Memento('welcome', request.session))
+ desktop.insertWindow(welcome)
+ desktop.welcome = welcome
+
+
def openFileBrowser(request, desktop):
navtree = gui.Directory("desktop", "Desktop", [
gui.Directory("home", "Home", []),
@@ -285,6 +294,18 @@
return gui.StaticContent(html.getvalue())
+def welcome(request, path, desktop):
+ if path: raise Http404
+ if not hasattr(desktop, 'welcome'):
+ openGreeter(request, desktop)
+ appWindow = desktop.welcome
+ desktop.selectWindow(appWindow)
+ child = gui.ChildWindow(config.root + "/welcome/", "View")
+ child.content = gui.StaticContent(loader.render_to_string('SeismoWebPortal/welcome.html', { 'root': config.root }))
+ desktop.activeWindow.selectWindow(child)
+ return desktop
+
+
def readme(request, path, desktop):
if path: raise Http404
child = gui.ChildWindow(config.root + "/readme/", "View")
@@ -329,7 +350,13 @@
url = config.root + "/config/%s/new/" % url
window = gui.ChildWindow(url, "New")
window.buttons.append(helpButton(request))
- return create(request, desktop, window, ModelClass)
+ kwds = {}
+ ws = request.REQUEST.get('ws', None)
+ if ws:
+ ws = intOr404(ws)
+ kwds = dict(post_save_redirect = "%s/%d/#ps%%(id)d" % (config.root, ws),
+ extra_context = {'ws': ws})
+ return create(request, desktop, window, ModelClass, **kwds)
raise Http404
@@ -453,7 +480,7 @@
gui.MenuItem(url + "specfem3dglobe/meshes/new/1/", "Specfem 3D Globe 1-chunk Regional Mesh"),
gui.MenuItem(url + "specfem3dglobe/meshes/new/2/", "Specfem 3D Globe 2-chunk Regional Mesh"),
gui.MenuItem(url + "specfem3dglobe/meshes/new/3/", "Specfem 3D Globe 3-chunk Regional Mesh"),
- gui.MenuItem(url + "specfem3dglobe/meshes/new/6/", "Specfem 3D Globe Global Mesh"),
+ #gui.MenuItem(url + "specfem3dglobe/meshes/new/6/", "Specfem 3D Globe Global Mesh"),
gui.MenuItem(url + "specfem3dglobe/parameters/new/", "Specfem 3D Globe Parameter Set"),
gui.MenuItem(url + "mineos/modes/new/", "Mineos Mode Catalog"),
gui.MenuItem(url + "mineos/parameters/new/", "Mineos Parameter Set"),
@@ -478,12 +505,18 @@
if name == "new":
window = gui.ChildWindow(config.root + "/config/specfem3dglobe/parameters/new/", "New")
window.buttons.append(helpButton(request))
+ post_save_redirect = config.root + '/home/'
+ ws = request.REQUEST.get('ws', None)
+ if ws:
+ ws = intOr404(ws)
+ post_save_redirect = "%s/%d/#ps%%(id)d" % (config.root, ws)
return create_object(request,
desktop,
window,
Specfem3DGlobeParameters,
- post_save_redirect = config.root + '/home/',
+ post_save_redirect = post_save_redirect,
follow = { 'fsNode': False },
+ extra_context = {'ws': ws},
)
raise Http404
@@ -595,9 +628,6 @@
if request.POST:
errors = manipulator.get_validation_errors(request.POST)
if not errors:
- # Light security check -- make sure redirect_to isn't garbage.
- if not redirect_to or '://' in redirect_to or ' ' in redirect_to:
- redirect_to = '/accounts/profile/'
from django.contrib.auth import login
user = manipulator.get_user()
loginUser(request, user)
@@ -605,6 +635,9 @@
user.save()
request.session.delete_test_cookie()
help_login_hook(request, user)
+ # Light security check -- make sure redirect_to isn't garbage.
+ if not redirect_to or '://' in redirect_to or ' ' in redirect_to:
+ redirect_to = postLoginURL(user)
return HttpResponseRedirect(redirect_to)
else:
errors = {}
@@ -661,6 +694,12 @@
desktop.activeWindow.selectWindow(reset)
return desktop
+def postLoginURL(user):
+ q = EventWorkspace.objects.filter(fsNode__owner = user, fsNode__inTrash = False)
+ if q.count() == 0:
+ return "%s/welcome/" % config.root
+ return "%s/home/" % config.root
+
def event_txt(request):
parameters = Specfem3DGlobeParameters.objectFromSnapshot(request.parameters)
@@ -855,18 +894,14 @@
def notify_user_of_successful_run(run):
from django.core.mail import send_mail
- if True: # NYI
- return
+ user = run.request.requestor
- sim = run.simulation
- user = sim.user
-
- subject = 'The simulation "%s" has finished running.' % sim.name
- message = ['The simulation "%s" has finished running.' % sim.name,
+ subject = 'Your simulation has finished running.'
+ message = ['Your simulation has finished running.',
"",
- "To download the output, visit the following web page:",
+ "To download the output, visit the portal:",
"",
- "https://crust.geodynamics.org%s/simulations/%d/" % (config.root, sim.id),
+ "https://crust.geodynamics.org%s/" % config.root,
"",
"Sincerely,",
"The CIG Seismology Web Portal",
@@ -981,7 +1016,7 @@
help_login_hook(request, user)
notify_managers_of_new_user(request, user)
user.message_set.create(message="Welcome to the CIG Seismology Web Portal!")
- return HttpResponseRedirect(config.root + '/')
+ return HttpResponseRedirect(config.root + "/welcome/")
else:
# Populate new_data with a 'flattened' version of the current data.
new_data = manipulator.flatten_data()
@@ -1226,24 +1261,28 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-def create(request, desktop, window, ModelClass):
+def create(request, desktop, window, ModelClass, **kwds):
+ post_save_redirect = kwds.pop('post_save_redirect', config.root + '/home/')
return create_object(request,
desktop,
window,
ModelClass,
- post_save_redirect = config.root + '/home/',
+ post_save_redirect = post_save_redirect,
follow = { 'fsNode': False },
+ **kwds
)
-def update(request, desktop, window, object_id, ModelClass):
+def update(request, desktop, window, object_id, ModelClass, **kwds):
+ post_save_redirect = kwds.pop('post_save_redirect', config.root + '/home/')
return update_object(request,
desktop,
window,
ModelClass,
object_id,
- post_save_redirect = config.root + '/home/',
+ post_save_redirect = post_save_redirect,
follow = { 'fsNode': False },
+ **kwds
)
@@ -1416,6 +1455,8 @@
record_length__gte = workspace.record_length):
requests[request.code].append(request)
+ assist = True
+
# Pair each parameter set with matching requests, if any.
for ParameterClass in parameterClasses:
for ps in parameterSetList[ParameterClass]:
@@ -1425,9 +1466,11 @@
for request in requests[ParameterClass.code]:
if request.parameters == parameters:
ps.outputStatus = runOutputStatus(request.run)
+ assist = False
t = loader.get_template('SeismoWebPortal/seismogram_table.html')
c = Context({'root': config.root,
+ 'assist': assist,
'workspace': workspace,
'mineos_parameter_set_list': parameterSetList.get(MineosParameters),
'specfem3dglobe_parameter_set_list': parameterSetList.get(Specfem3DGlobeParameters),
More information about the cig-commits
mailing list