the beginnings of user-art relations. You can add relations, and it makes sure they...
[zzz-floof.git] / floof / config / routing.py
index c9b4975..32451e9 100644 (file)
@@ -46,29 +46,41 @@ def make_map():
     map.connect('/users', controller='users', action='list')
     map.connect('user_page', '/users/{name}', controller='users', action='view')
 
     map.connect('/users', controller='users', action='list')
     map.connect('user_page', '/users/{name}', controller='users', action='view')
 
+    # Comments
+    with map.submapper(controller='comments') as sub:
+        sub.connect('/*owner_url/comments', action='thread')
+        sub.connect('/*owner_url/comments/reply', action='reply')
+        sub.connect('/*owner_url/comments/reply_done', action='reply_done', **require_POST)
+        sub.connect('/*owner_url/comments/{id}', action='thread')
+        sub.connect('/*owner_url/comments/{id}/reply', action='reply')
+        sub.connect('/*owner_url/comments/{id}/reply_done', action='reply_done', **require_POST)
 
     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="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')
 
     with map.submapper(controller='tag') as sub:
         sub.connect('delete_tag', '/art/{art_id}/tag/{id}')
         sub.connect('create_tag', '/art/{art_id}/tag')
 
+    with map.submapper(controller='relation') as sub:
+        sub.connect('create_relation', '/art/{art_id}/relations/{kind}/create', action="create")
+        # TODO: conditions: kind = by|for|of|character?
+
     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
         # real parent resource instead of mocking it up with a silly dict.  We should file a feature request.
     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
         # real parent resource instead of mocking it up with a silly dict.  We should file a feature request.
-        
+
     # I think resources is the right way to go for most things.  It ensures all of our actions have the right
     # methods on them, at least.  It does require the use of silly _method="delete" post parameters though.
     # I think resources is the right way to go for most things.  It ensures all of our actions have the right
     # methods on them, at least.  It does require the use of silly _method="delete" post parameters though.
-    
+
     # One sticking point though is, it'll happily allow you to add any formatting string you want, like art/1.json
     # I wonder if there's a way to place requirements on that, or disable it until we actually have formats.
     # It just serves the same action as usual but with a format argument in the context.
     # One sticking point though is, it'll happily allow you to add any formatting string you want, like art/1.json
     # I wonder if there's a way to place requirements on that, or disable it until we actually have formats.
     # It just serves the same action as usual but with a format argument in the context.
-            
+
     # map.connect('/art/new', controller='art', action='new')
     # map.connect('/art/upload', controller='art', action='upload')
     # map.connect('show_art', '/art/{id}', controller='art', action='show')
     # map.connect('/art/new', controller='art', action='new')
     # map.connect('/art/upload', controller='art', action='upload')
     # map.connect('show_art', '/art/{id}', controller='art', action='show')