[cig-commits] r7789 - in cs/pythia/trunk: cig/web/seismo/events
cig/web/seismo/events/templates/events
cig/web/seismo/stations opal/components opal/controllers
opal/core/handlers opal/db opal/sites opal/utils/translation
opal/views
leif at geodynamics.org
leif at geodynamics.org
Wed Aug 8 17:36:02 PDT 2007
Author: leif
Date: 2007-08-08 17:36:01 -0700 (Wed, 08 Aug 2007)
New Revision: 7789
Added:
cs/pythia/trunk/cig/web/seismo/events/templates/events/base.html
Modified:
cs/pythia/trunk/cig/web/seismo/events/__init__.py
cs/pythia/trunk/cig/web/seismo/events/components.py
cs/pythia/trunk/cig/web/seismo/events/parsers.py
cs/pythia/trunk/cig/web/seismo/stations/__init__.py
cs/pythia/trunk/opal/components/WebComponent.py
cs/pythia/trunk/opal/controllers/FormController.py
cs/pythia/trunk/opal/core/handlers/base.py
cs/pythia/trunk/opal/db/queries.py
cs/pythia/trunk/opal/sites/WebSite.py
cs/pythia/trunk/opal/utils/translation/trans_real.py
cs/pythia/trunk/opal/views/View.py
Log:
Debugged recent changes. The 'events' applet is now -- once again --
fully functional.
Modified: cs/pythia/trunk/cig/web/seismo/events/__init__.py
===================================================================
--- cs/pythia/trunk/cig/web/seismo/events/__init__.py 2007-08-08 22:55:39 UTC (rev 7788)
+++ cs/pythia/trunk/cig/web/seismo/events/__init__.py 2007-08-09 00:36:01 UTC (rev 7789)
@@ -1,2 +1,2 @@
-from EventBrowser import EventBrowser
+#from components import EventBrowser
Modified: cs/pythia/trunk/cig/web/seismo/events/components.py
===================================================================
--- cs/pythia/trunk/cig/web/seismo/events/components.py 2007-08-08 22:55:39 UTC (rev 7788)
+++ cs/pythia/trunk/cig/web/seismo/events/components.py 2007-08-09 00:36:01 UTC (rev 7789)
@@ -45,9 +45,9 @@
from models import Event, Source, DataSource, Region
from parsers import HarvardCMTSearchResultsParser
-from cig.seismo.events import CMTSolution
from opal import forms
from opal.components import WebComponent
+from opal.db.queries import primaryInquirer
from opal.http import HttpResponseRedirect
from opal.shortcuts import render_to_response
from opal.template.context import RequestContext
@@ -56,11 +56,14 @@
class EventBrowser(WebComponent):
+ name = "events"
+
+
models = [Event, Source, DataSource, Region]
- def __init__(self, home):
- WebComponent.__init__()
+ def __init__(self, home="/"):
+ WebComponent.__init__(self)
self.home = home # '/specfem3dglobe/events/'
@@ -85,7 +88,7 @@
def eventList(self, request):
return self.genericObjectList(
request,
- queryset = Event.user_objects.all(),
+ Event.user_objects.all(),
allow_empty = True,
)
@@ -93,16 +96,16 @@
def eventDetail(self, request, object_id):
return self.genericObjectDetail(
request,
- object_id = object_id,
queryset = Event.user_objects.all(),
+ query = primaryInquirer.newQuery(object_id),
)
+
-
def editEvent(self, request, object_id):
return self.genericUpdateObject(
request,
- object_id = object_id,
model = Event,
+ query = primaryInquirer.newQuery(object_id),
post_save_redirect = self.home,
follow = { 'user': False },
)
@@ -111,8 +114,8 @@
def deleteEvent(self, request, object_id):
return self.genericDeleteObject(
request,
- object_id = object_id,
model = Event,
+ query = primaryInquirer.newQuery(object_id),
post_delete_redirect = self.home,
)
@@ -169,7 +172,8 @@
if not errors:
manipulator.do_html2python(new_data)
new_event = manipulator.save(new_data, request.user)
- url = "%s/%i/" % (dirname(dirname(request.path)), new_event.id)
+ #url = "%s/%i/" % (dirname(dirname(request.path)), new_event.id)
+ url = self.home
return HttpResponseRedirect(url)
else:
errors = new_data = {}
@@ -193,7 +197,8 @@
if not errors:
manipulator.do_html2python(new_data)
new_event = manipulator.save(new_data, request.user)
- url = "%s/%i/" % (dirname(dirname(request.path)), new_event.id)
+ #url = "%s/%i/" % (dirname(dirname(request.path)), new_event.id)
+ url = self.home
return HttpResponseRedirect(url)
else:
errors = new_data = {}
@@ -209,15 +214,16 @@
def sourceDetail(self, request, object_id):
return self.genericObjectDetail(
request,
- queryset = Source.objects.all()
+ queryset = Source.objects.all(),
+ query = primaryInquirer.newQuery(object_id),
)
def editSource(self, request, object_id):
return self.genericUpdateObject(
request,
- object_id = object_id,
model = Source,
+ query = primaryInquirer.newQuery(object_id),
post_save_redirect = self.home,
follow = { 'user': False },
)
@@ -226,8 +232,8 @@
def deleteSource(self, request, object_id):
return self.genericDeleteObject(
request,
- object_id = object_id,
model = Source,
+ query = primaryInquirer.newQuery(object_id),
post_delete_redirect = self.home,
)
Modified: cs/pythia/trunk/cig/web/seismo/events/parsers.py
===================================================================
--- cs/pythia/trunk/cig/web/seismo/events/parsers.py 2007-08-08 22:55:39 UTC (rev 7788)
+++ cs/pythia/trunk/cig/web/seismo/events/parsers.py 2007-08-09 00:36:01 UTC (rev 7789)
@@ -43,6 +43,7 @@
from HTMLParser import HTMLParser
+from cig.seismo.events import CMTSolution
class HarvardCMTSearchResultsParser(HTMLParser):
Added: cs/pythia/trunk/cig/web/seismo/events/templates/events/base.html
===================================================================
--- cs/pythia/trunk/cig/web/seismo/events/templates/events/base.html 2007-08-08 22:55:39 UTC (rev 7788)
+++ cs/pythia/trunk/cig/web/seismo/events/templates/events/base.html 2007-08-09 00:36:01 UTC (rev 7789)
@@ -0,0 +1,9 @@
+<html>
+ <head>
+ <title>Events</title>
+ </head>
+ <body>
+ {% block content %}
+ {% endblock %}
+ </body>
+</html>
Modified: cs/pythia/trunk/cig/web/seismo/stations/__init__.py
===================================================================
--- cs/pythia/trunk/cig/web/seismo/stations/__init__.py 2007-08-08 22:55:39 UTC (rev 7788)
+++ cs/pythia/trunk/cig/web/seismo/stations/__init__.py 2007-08-09 00:36:01 UTC (rev 7789)
@@ -1,2 +1,2 @@
-from StationBrowser import StationBrowser
+#from components import StationBrowser
Modified: cs/pythia/trunk/opal/components/WebComponent.py
===================================================================
--- cs/pythia/trunk/opal/components/WebComponent.py 2007-08-08 22:55:39 UTC (rev 7788)
+++ cs/pythia/trunk/opal/components/WebComponent.py 2007-08-09 00:36:01 UTC (rev 7789)
@@ -18,6 +18,7 @@
from opal.template import Context, RequestContext, loader
from opal import http
+
class WebComponent(Component):
@@ -46,47 +47,56 @@
# generic views
- def genericObjectList(request, **kwds):
- view = views.ListView(**kwds)
+ def genericObjectList(self, request, queryset, **kwds):
+ view = views.ListView(queryset = queryset, **kwds)
return view.response(request)
- def genericObjectDetail(request, **kwds):
- view = views.DetailView(**kwds)
+ def genericObjectDetail(self, request, queryset, query, **kwds):
+ # NYI: Unlike Django's object_detail() function, this discards
+ # 'queryset'. This may not be appropriate, even though this
+ # is a view of a single object: e.g., if the queryset is a
+ # per-user query, then perhaps 'Http404' should be raised.
+ # OTOH, in Django's create_update functions (replicated in the
+ # CRUD stuff below), 'model' seems to be good enough; which
+ # begs the question as to why this method doesn't take a
+ # 'model' instead of a 'queryset'.
+ model = queryset.model
+ view = views.DetailView(model, query, **kwds)
return view.response(request)
# generic views -- CRUD
- def genericCreateObject(request, post_save_redirect=None, follow=None, **kwds):
+ def genericCreateObject(self, request, model, query, post_save_redirect=None, follow=None, **kwds):
controller = controllers.CreationController(
post_redirect = post_save_redirect,
follow = follow,
)
- view = views.DetailView(controller = controller, **kwds)
+ view = views.DetailView(model, query, controller = controller, **kwds)
return view.response(request)
- def genericUpdateObject(request, post_save_redirect=None, follow=None, **kwds):
+ def genericUpdateObject(self, request, model, query, post_save_redirect=None, follow=None, **kwds):
controller = controllers.UpdateController(
post_redirect = post_save_redirect,
follow = follow,
)
- view = views.DetailView(controller = controller, **kwds)
+ view = views.DetailView(model, query, controller = controller, **kwds)
return view.response(request)
- def genericDeleteObject(request, post_delete_redirect, **kwds):
+ def genericDeleteObject(self, request, model, query, post_delete_redirect, **kwds):
controller = controllers.DeletionController(
post_redirect = post_delete_redirect,
)
- view = views.DetailView(controller = controller, **kwds)
+ view = views.DetailView(model, query, controller = controller, **kwds)
return view.response(request)
# errors
- def handler404(request, template_name='404.html'):
+ def handler404(self, request, template_name='404.html'):
"""
Default 404 handler, which looks for the requested URL in the redirects
table, redirects if found, and displays 404 page if not redirected.
@@ -100,7 +110,7 @@
return http.HttpResponseNotFound(t.render(RequestContext(request, {'request_path': request.path})))
- def handler500(request, template_name='500.html'):
+ def handler500(self, request, template_name='500.html'):
"""
500 error handler.
Modified: cs/pythia/trunk/opal/controllers/FormController.py
===================================================================
--- cs/pythia/trunk/opal/controllers/FormController.py 2007-08-08 22:55:39 UTC (rev 7788)
+++ cs/pythia/trunk/opal/controllers/FormController.py 2007-08-09 00:36:01 UTC (rev 7789)
@@ -31,7 +31,7 @@
self.errors = {}
- def createGlobalContext(self):
+ def globalContext(self):
context = dict()
form = self.newFormWrapper()
context['form'] = form
Modified: cs/pythia/trunk/opal/core/handlers/base.py
===================================================================
--- cs/pythia/trunk/opal/core/handlers/base.py 2007-08-08 22:55:39 UTC (rev 7788)
+++ cs/pythia/trunk/opal/core/handlers/base.py 2007-08-09 00:36:01 UTC (rev 7789)
@@ -61,9 +61,9 @@
return response
site = settings
- resolver = site.resolve
+ resolver = site.urlResolver()
try:
- callback, callback_args, callback_kwargs = resolver.resolve(path)
+ callback, callback_args, callback_kwargs = resolver.resolve(request.path)
# Apply view middleware
for middleware_method in self._view_middleware:
Modified: cs/pythia/trunk/opal/db/queries.py
===================================================================
--- cs/pythia/trunk/opal/db/queries.py 2007-08-08 22:55:39 UTC (rev 7788)
+++ cs/pythia/trunk/opal/db/queries.py 2007-08-09 00:36:01 UTC (rev 7789)
@@ -30,9 +30,11 @@
class Inquirer(object):
+
+ Query = Query
def newQuery(self, key):
- return self.Query(fieldName, key)
+ return self.Query(self.fieldName, key)
def __init__(self, fieldName):
self.fieldName = fieldName
Modified: cs/pythia/trunk/opal/sites/WebSite.py
===================================================================
--- cs/pythia/trunk/opal/sites/WebSite.py 2007-08-08 22:55:39 UTC (rev 7788)
+++ cs/pythia/trunk/opal/sites/WebSite.py 2007-08-09 00:36:01 UTC (rev 7789)
@@ -149,7 +149,7 @@
TEMPLATE_LOADERS = pyre.list("template-loaders", default=[
'opal.template.loaders.filesystem.load_template_source',
'opal.template.loaders.app_directories.load_template_source',
- 'opal.template.loaders.eggs.load_template_source',
+ #'opal.template.loaders.eggs.load_template_source',
])
TEMPLATE_LOADERS.meta['tip'] = """List of callables that know how to import templates from various sources. See the comments in opal/core/template/loader.py for interface documentation."""
@@ -382,11 +382,6 @@
##########
- def resolve(self, path):
- resolver = self.urlResolver()
- return resolver.resolve(path)
-
-
def urlResolver(self):
from merlin import loadObject
from opal.core import urlresolvers
Modified: cs/pythia/trunk/opal/utils/translation/trans_real.py
===================================================================
--- cs/pythia/trunk/opal/utils/translation/trans_real.py 2007-08-08 22:55:39 UTC (rev 7788)
+++ cs/pythia/trunk/opal/utils/translation/trans_real.py 2007-08-09 00:36:01 UTC (rev 7789)
@@ -162,11 +162,7 @@
res = _merge(projectpath)
for appname in settings.INSTALLED_APPS:
- p = appname.rfind('.')
- if p >= 0:
- app = getattr(__import__(appname[:p], {}, {}, [appname[p+1:]]), appname[p+1:])
- else:
- app = __import__(appname, {}, {}, [])
+ app = __import__(appname, {}, {}, ['__name__'])
apppath = os.path.join(os.path.dirname(app.__file__), 'locale')
Modified: cs/pythia/trunk/opal/views/View.py
===================================================================
--- cs/pythia/trunk/opal/views/View.py 2007-08-08 22:55:39 UTC (rev 7788)
+++ cs/pythia/trunk/opal/views/View.py 2007-08-09 00:36:01 UTC (rev 7789)
@@ -22,16 +22,16 @@
self.model = model
if controller is None:
from opal.controllers import NoController
- self.controller = NoController
+ self.controller = NoController()
else:
self.controller = controller
self.controller.view = self
if template_name:
self.template_name = template_name
else:
- template_name = "%s/%s_%s.html" % (self.model._meta.app_label,
- self.model._meta.object_name.lower(),
- self.templateNameTag)
+ self.template_name = "%s/%s_%s.html" % (self.model._meta.app_label,
+ self.model._meta.object_name.lower(),
+ self.templateNameTag)
if template_loader is None:
from opal.template import loader
self.template_loader = loader
More information about the cig-commits
mailing list