[cig-commits] r7778 - in cs/pythia/trunk: cig/web
cig/web/seismo/events cig/web/seismo/stations opal/core opal/sites
leif at geodynamics.org
leif at geodynamics.org
Sun Aug 5 23:03:34 PDT 2007
Author: leif
Date: 2007-08-05 23:03:33 -0700 (Sun, 05 Aug 2007)
New Revision: 7778
Modified:
cs/pythia/trunk/cig/web/forms.py
cs/pythia/trunk/cig/web/managers.py
cs/pythia/trunk/cig/web/middleware.py
cs/pythia/trunk/cig/web/seismo/events/forms.py
cs/pythia/trunk/cig/web/seismo/events/models.py
cs/pythia/trunk/cig/web/seismo/events/urls.py
cs/pythia/trunk/cig/web/seismo/events/views.py
cs/pythia/trunk/cig/web/seismo/stations/models.py
cs/pythia/trunk/cig/web/seismo/stations/urls.py
cs/pythia/trunk/cig/web/seismo/stations/views.py
cs/pythia/trunk/opal/core/urlresolvers.py
cs/pythia/trunk/opal/sites/WebSite.py
Log:
django -> opal for events/stations; resolver tweaks
Modified: cs/pythia/trunk/cig/web/forms.py
===================================================================
--- cs/pythia/trunk/cig/web/forms.py 2007-08-04 03:01:40 UTC (rev 7777)
+++ cs/pythia/trunk/cig/web/forms.py 2007-08-06 06:03:33 UTC (rev 7778)
@@ -42,7 +42,7 @@
#
-from django import forms
+from opal import forms
class TeeManipulator(forms.Manipulator):
Modified: cs/pythia/trunk/cig/web/managers.py
===================================================================
--- cs/pythia/trunk/cig/web/managers.py 2007-08-04 03:01:40 UTC (rev 7777)
+++ cs/pythia/trunk/cig/web/managers.py 2007-08-06 06:03:33 UTC (rev 7778)
@@ -42,8 +42,8 @@
#
-from django.db import models
-from django.db.models.fields import FieldDoesNotExist
+from opal.db import models
+from opal.db.models.fields import FieldDoesNotExist
from models import CurrentUser
Modified: cs/pythia/trunk/cig/web/middleware.py
===================================================================
--- cs/pythia/trunk/cig/web/middleware.py 2007-08-04 03:01:40 UTC (rev 7777)
+++ cs/pythia/trunk/cig/web/middleware.py 2007-08-06 06:03:33 UTC (rev 7778)
@@ -55,7 +55,7 @@
from threading import local
except ImportError:
# ...thankfully, Django includes a substitute.
- from django.utils._threading_local import local
+ from opal.utils._threading_local import local
_thread_locals = local()
Modified: cs/pythia/trunk/cig/web/seismo/events/forms.py
===================================================================
--- cs/pythia/trunk/cig/web/seismo/events/forms.py 2007-08-04 03:01:40 UTC (rev 7777)
+++ cs/pythia/trunk/cig/web/seismo/events/forms.py 2007-08-06 06:03:33 UTC (rev 7778)
@@ -42,7 +42,7 @@
#
-from django import forms
+from opal import forms
from models import Event, DataSource, Region, Source
Modified: cs/pythia/trunk/cig/web/seismo/events/models.py
===================================================================
--- cs/pythia/trunk/cig/web/seismo/events/models.py 2007-08-04 03:01:40 UTC (rev 7777)
+++ cs/pythia/trunk/cig/web/seismo/events/models.py 2007-08-06 06:03:33 UTC (rev 7778)
@@ -42,8 +42,8 @@
#
-from django.db import models
-from django.contrib.auth.models import User
+from opal.db import models
+from opal.contrib.auth.models import User
from cig.web.managers import CurrentUserManager
Modified: cs/pythia/trunk/cig/web/seismo/events/urls.py
===================================================================
--- cs/pythia/trunk/cig/web/seismo/events/urls.py 2007-08-04 03:01:40 UTC (rev 7777)
+++ cs/pythia/trunk/cig/web/seismo/events/urls.py 2007-08-06 06:03:33 UTC (rev 7778)
@@ -42,7 +42,7 @@
#
-from django.conf.urls.defaults import *
+from opal.conf.urls.defaults import *
from models import Event, Source
@@ -82,16 +82,16 @@
urlpatterns = patterns('',
- (r'^$', 'django.views.generic.list_detail.object_list', event_list_detail_args),
+ (r'^$', 'opal.views.generic.list_detail.object_list', event_list_detail_args),
(r'^search/$', 'cig.web.seismo.events.views.search'),
(r'^add/$', 'cig.web.seismo.events.views.add'),
(r'^upload/$', 'cig.web.seismo.events.views.upload'),
- (r'^sources/(?P<object_id>\d+)/$', 'django.views.generic.list_detail.object_detail', source_detail_args),
- (r'^sources/(?P<object_id>\d+)/edit/$', 'django.views.generic.create_update.update_object', source_create_update_args),
- (r'^sources/(?P<object_id>\d+)/delete/$', 'django.views.generic.create_update.delete_object', source_delete_args),
- (r'^(?P<object_id>\d+)/$', 'django.views.generic.list_detail.object_detail', event_detail_args),
- (r'^(?P<object_id>\d+)/edit/$', 'django.views.generic.create_update.update_object', event_create_update_args),
- (r'^(?P<object_id>\d+)/delete/$', 'django.views.generic.create_update.delete_object', event_delete_args),
+ (r'^sources/(?P<object_id>\d+)/$', 'opal.views.generic.list_detail.object_detail', source_detail_args),
+ (r'^sources/(?P<object_id>\d+)/edit/$', 'opal.views.generic.create_update.update_object', source_create_update_args),
+ (r'^sources/(?P<object_id>\d+)/delete/$', 'opal.views.generic.create_update.delete_object', source_delete_args),
+ (r'^(?P<object_id>\d+)/$', 'opal.views.generic.list_detail.object_detail', event_detail_args),
+ (r'^(?P<object_id>\d+)/edit/$', 'opal.views.generic.create_update.update_object', event_create_update_args),
+ (r'^(?P<object_id>\d+)/delete/$', 'opal.views.generic.create_update.delete_object', event_delete_args),
)
Modified: cs/pythia/trunk/cig/web/seismo/events/views.py
===================================================================
--- cs/pythia/trunk/cig/web/seismo/events/views.py 2007-08-04 03:01:40 UTC (rev 7777)
+++ cs/pythia/trunk/cig/web/seismo/events/views.py 2007-08-06 06:03:33 UTC (rev 7778)
@@ -43,10 +43,10 @@
from cig.seismo.events import CMTSolution
-from django import forms
-from django.http import HttpResponseRedirect
-from django.shortcuts import render_to_response
-from django.template.context import RequestContext
+from opal import forms
+from opal.http import HttpResponseRedirect
+from opal.shortcuts import render_to_response
+from opal.template.context import RequestContext
from HTMLParser import HTMLParser
from models import DataSource, Region
Modified: cs/pythia/trunk/cig/web/seismo/stations/models.py
===================================================================
--- cs/pythia/trunk/cig/web/seismo/stations/models.py 2007-08-04 03:01:40 UTC (rev 7777)
+++ cs/pythia/trunk/cig/web/seismo/stations/models.py 2007-08-06 06:03:33 UTC (rev 7778)
@@ -42,8 +42,8 @@
#
-from django.db import models
-from django.contrib.auth.models import User
+from opal.db import models
+from opal.contrib.auth.models import User
from cig.web.managers import CurrentUserManager
Modified: cs/pythia/trunk/cig/web/seismo/stations/urls.py
===================================================================
--- cs/pythia/trunk/cig/web/seismo/stations/urls.py 2007-08-04 03:01:40 UTC (rev 7777)
+++ cs/pythia/trunk/cig/web/seismo/stations/urls.py 2007-08-06 06:03:33 UTC (rev 7778)
@@ -42,7 +42,7 @@
#
-from django.conf.urls.defaults import *
+from opal.conf.urls.defaults import *
from models import Station, StationList, StationNetwork
@@ -64,9 +64,9 @@
(r'^create/$', 'cig.web.seismo.stations.views.create'),
(r'^default/$', 'cig.web.seismo.stations.views.default'),
(r'^upload/$', 'cig.web.seismo.stations.views.upload'),
- (r'^(?P<object_id>\d+)/$', 'django.views.generic.list_detail.object_detail', {'queryset': StationList.objects.all()}),
- (r'^(?P<object_id>\d+)/edit/$', 'django.views.generic.create_update.update_object', stationlist_create_update_args),
- (r'^(?P<object_id>\d+)/delete/$', 'django.views.generic.create_update.delete_object', stationlist_delete_args),
+ (r'^(?P<object_id>\d+)/$', 'opal.views.generic.list_detail.object_detail', {'queryset': StationList.objects.all()}),
+ (r'^(?P<object_id>\d+)/edit/$', 'opal.views.generic.create_update.update_object', stationlist_create_update_args),
+ (r'^(?P<object_id>\d+)/delete/$', 'opal.views.generic.create_update.delete_object', stationlist_delete_args),
(r'^(?P<object_id>\d+)/gearth\.kml$','cig.web.seismo.stations.views.stationlist_detail_gearth'),
)
Modified: cs/pythia/trunk/cig/web/seismo/stations/views.py
===================================================================
--- cs/pythia/trunk/cig/web/seismo/stations/views.py 2007-08-04 03:01:40 UTC (rev 7777)
+++ cs/pythia/trunk/cig/web/seismo/stations/views.py 2007-08-06 06:03:33 UTC (rev 7778)
@@ -42,11 +42,11 @@
#
-from django import forms
-from django.contrib.auth.decorators import login_required
-from django.http import HttpResponseRedirect
-from django.shortcuts import get_object_or_404, render_to_response
-from django.template.context import RequestContext
+from opal import forms
+from opal.contrib.auth.decorators import login_required
+from opal.http import HttpResponseRedirect
+from opal.shortcuts import get_object_or_404, render_to_response
+from opal.template.context import RequestContext
from models import Station, StationList, StationNetwork
@@ -206,7 +206,7 @@
# move to shared location
def gearth_object_list(request, **kwds):
- from django.views.generic.list_detail import object_list
+ from opal.views.generic.list_detail import object_list
return object_list(request,
mimetype='application/vnd.google-earth',
**kwds)
Modified: cs/pythia/trunk/opal/core/urlresolvers.py
===================================================================
--- cs/pythia/trunk/opal/core/urlresolvers.py 2007-08-04 03:01:40 UTC (rev 7777)
+++ cs/pythia/trunk/opal/core/urlresolvers.py 2007-08-06 06:03:33 UTC (rev 7778)
@@ -144,11 +144,13 @@
return reverse_helper(self.regex, *args, **kwargs)
class RegexURLResolver(object):
- def __init__(self, regex, urlconf_name, default_kwargs=None):
+ def __init__(self, regex, urlconf, default_kwargs=None):
# regex is a string representing a regular expression.
- # urlconf_name is a string representing the module containing urlconfs.
+ # urlconf is an object with a 'urlpatterns' attribute
+ # (a list returned by django.conf.urls.defaults.patterns)
+ # and zero or more 'handlerXXX' methods.
self.regex = re.compile(regex)
- self.urlconf_name = urlconf_name
+ self.urlconf = urlconf
self.callback = None
self.default_kwargs = default_kwargs or {}
@@ -157,7 +159,7 @@
match = self.regex.search(path)
if match:
new_path = path[match.end():]
- for pattern in self.urlconf_module.urlpatterns:
+ for pattern in self.urlconf.urlpatterns:
try:
sub_match = pattern.resolve(new_path)
except Resolver404, e:
@@ -169,24 +171,8 @@
tried.append(pattern.regex.pattern)
raise Resolver404, {'tried': tried, 'path': new_path}
- def _get_urlconf_module(self):
- try:
- return self._urlconf_module
- except AttributeError:
- try:
- self._urlconf_module = __import__(self.urlconf_name, {}, {}, [''])
- except ValueError, e:
- # Invalid urlconf_name, such as "foo.bar." (note trailing period)
- raise ImproperlyConfigured, "Error while importing URLconf %r: %s" % (self.urlconf_name, e)
- return self._urlconf_module
- urlconf_module = property(_get_urlconf_module)
-
- def _get_url_patterns(self):
- return self.urlconf_module.urlpatterns
- url_patterns = property(_get_url_patterns)
-
def _resolve_special(self, view_type):
- callback = getattr(self.urlconf_module, 'handler%s' % view_type)
+ callback = getattr(self.urlconf, 'handler%s' % view_type)
mod_name, func_name = get_mod_func(callback)
try:
return getattr(__import__(mod_name, {}, {}, ['']), func_name), {}
@@ -206,7 +192,7 @@
lookup_view = getattr(__import__(mod_name, {}, {}, ['']), func_name)
except (ImportError, AttributeError):
raise NoReverseMatch
- for pattern in self.urlconf_module.urlpatterns:
+ for pattern in self.urlconf.urlpatterns:
if isinstance(pattern, RegexURLResolver):
try:
return pattern.reverse_helper(lookup_view, *args, **kwargs)
Modified: cs/pythia/trunk/opal/sites/WebSite.py
===================================================================
--- cs/pythia/trunk/opal/sites/WebSite.py 2007-08-04 03:01:40 UTC (rev 7777)
+++ cs/pythia/trunk/opal/sites/WebSite.py 2007-08-06 06:03:33 UTC (rev 7778)
@@ -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."""
@@ -351,12 +351,15 @@
#########
SITE_ID = pyre.int("site-id", default=1)
- xROOT_URLCONF = pyre.str("root-urlconf", default="not.yet.implemented")
+ rootUrlconf = pyre.str("root-urlconf", default=None)
def _configure(self):
super(WebSite, self)._configure()
+ if self.rootUrlconf is None:
+ raise ValueError("root-urlconf is not set")
+
# convert to seconds
from pyre.units.time import second
self.SESSION_COOKIE_AGE = self.session_cookie_age / second
@@ -368,24 +371,30 @@
return
- ##########
+ def _init(self):
+ super(WebSite, self)._init()
+ self.ROOT_URLCONF = None
+
+ return
- urlpatterns = None
+ ##########
+
def resolve(self, path):
resolver = self.urlResolver()
return resolver.resolve(path)
def urlResolver(self):
+ from merlin import loadObject
from opal.core import urlresolvers
- if self.urlpatterns is None:
- resolver = urlresolvers.TreeURLResolver(self)
- else:
- resolver = urlresolvers.RegexURLResolver(r'^/', self)
- return resolver
+ if self.ROOT_URLCONF is None:
+ factory = loadObject(self.rootUrlconf)
+ self.ROOT_URLCONF = factory()
+ return urlresolvers.RegexURLResolver(r'^/', self.ROOT_URLCONF)
+
# end of file
More information about the cig-commits
mailing list