[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