little things
[zzz-floof.git] / floof / config / routing.py
index 7f46a2c..c9b4975 100644 (file)
@@ -31,32 +31,32 @@ def make_map():
     map.connect('/error/{action}', controller='error')
     map.connect('/error/{action}/{id}', controller='error')
 
-    map.connect('/', controller='main', action='index')
-
-    # User stuff
-    map.connect('/account/login', controller='account', action='login')
-    map.connect('/account/login_begin', controller='account', action='login_begin', **require_POST)
-    map.connect('/account/login_finish', controller='account', action='login_finish')
-    map.connect('/account/logout', controller='account', action='logout', **require_POST)
-    map.connect('/account/register', controller='account', action='register')
-    map.connect('/account/register_finish', controller='account', action='register_finish', **require_POST)
-
+    map.connect('home', '/', controller='main', action='index')
+
+    # Account stuff
+    with map.submapper(controller="account") as sub:
+        sub.connect('login',            '/account/login',           action='login')
+        sub.connect('login_begin',      '/account/login_begin',     action='login_begin', **require_POST)
+        sub.connect('login_finish',     '/account/login_finish',    action='login_finish')
+        sub.connect('logout',           '/account/logout',          action='logout', **require_POST)
+        sub.connect('register',         '/account/register',        action='register')
+        sub.connect('register_finish',  '/account/register_finish', action='register_finish', **require_POST)
+
+    # with map.submapper()
     map.connect('/users', controller='users', action='list')
     map.connect('user_page', '/users/{name}', controller='users', action='view')
 
-    # Art stuff
-    art = map.resource('art','art', controller="art", member={'rate':'PUT'})
-    # wow, it even works if you name the plural and singular the same thing.
-    # Resources documented here: http://routes.groovie.org/manual.html#restful-services
-    # It seems the first parameter (singular) is only ever used in route names, e.g. url('kitten', id=5).
-    # The second parameter, plural, is used everywhere else by default: in the url, controller name, 
-    # and the route name for the collection.  e.g. url('kittens') -> '/kittens' -> kittens.index().
-    # Since our controllers have singular names, we'll have to override this every time with the 'controller' parameter.
-    # Even singular routes use the plural in urls.  url('kitten', id=5) -> '/kittens/5'.
-    # And it appears that if the singular and plural are the same, either will match, so no harm done.
-    # It does mean, however, that if you have a None id accidentally, url('art', id=None) you'll get the same thing    
-    # as url('art').  I mean, you might have wanted a singular but you got a plural route instead.
-    
+
+    with map.submapper(controller="art") as sub:
+        sub.connect('new_art',      '/art/new',         action="new")
+        sub.connect('create_art',   '/art/create',      action="create")
+        sub.connect('rate_art',     '/art/{id}/rate',   action="rate")
+        sub.connect('show_art',     '/art/{id}',        action="show")
+        
+    with map.submapper(controller='tag') as sub:
+        sub.connect('delete_tag', '/art/{art_id}/tag/{id}')
+        sub.connect('create_tag', '/art/{art_id}/tag')
+
     map.resource('tag','tags', controller="tag",
         parent_resource=dict(member_name='art', collection_name='art'))
         # Yeah, parent resources are specified kinda dumb-ly.  Would be better if you could pass in the