Merge remote-tracking branch 'gsoc2016/Subtitle-1'
[mediagoblin.git] / mediagoblin / user_pages / routing.py
index 255b6f668fe2ad6cadc0e7f301c333270ba0b8d5..73371b6d2e053772c506a25d0a2561f128c6ab30 100644 (file)
@@ -1,5 +1,5 @@
 # GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011, 2012 MediaGoblin contributors.  See AUTHORS.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU Affero General Public License as published by
 # You should have received a copy of the GNU Affero General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-from routes.route import Route
-
-user_routes = [
-    Route('mediagoblin.user_pages.user_home', "/{user}/",
-        controller="mediagoblin.user_pages.views:user_home"),
-    Route('mediagoblin.user_pages.user_gallery', "/{user}/gallery/",
-        controller="mediagoblin.user_pages.views:user_gallery"),
-    Route('mediagoblin.user_pages.media_home', '/{user}/m/{media}/',
-        requirements=dict(m_id="[0-9a-fA-F]{24}"),
-        controller="mediagoblin.user_pages.views:media_home"),
-    Route('mediagoblin.edit.edit_media', "/{user}/m/{media}/edit/",
-        controller="mediagoblin.edit.views:edit_media"),
-    Route('mediagoblin.user_pages.atom_feed', '/{user}/atom/',
-        controller="mediagoblin.user_pages.views:atom_feed"),
-    Route('mediagoblin.user_pages.media_post_comment',
-          '/{user}/m/{media}/comment/add/',
-          controller="mediagoblin.user_pages.views:media_post_comment")]
+from mediagoblin.tools.routing import add_route
+
+add_route('mediagoblin.user_pages.user_home',
+          '/u/<string:user>/', 'mediagoblin.user_pages.views:user_home')
+
+add_route('mediagoblin.user_pages.media_home',
+          '/u/<string:user>/m/<string:media>/',
+          'mediagoblin.user_pages.views:media_home')
+
+add_route('mediagoblin.user_pages.media_home.report_media',
+          '/u/<string:user>/m/<string:media>/report/',
+          'mediagoblin.user_pages.views:file_a_report')
+
+add_route('mediagoblin.user_pages.media_confirm_delete',
+          '/u/<string:user>/m/<int:media_id>/confirm-delete/',
+          'mediagoblin.user_pages.views:media_confirm_delete')
+
+add_route('mediagoblin.user_pages.activity_view',
+          '/<string:username>/activity/<string:id>/',
+          'mediagoblin.user_pages.views:activity_view')
+
+# Submission handling of new comments. TODO: only allow for POST methods
+add_route('mediagoblin.user_pages.media_post_comment',
+          '/u/<string:user>/m/<int:media_id>/comment/add/',
+          'mediagoblin.user_pages.views:media_post_comment')
+
+add_route('mediagoblin.user_pages.media_preview_comment',
+          '/ajax/comment/preview/',
+          'mediagoblin.user_pages.views:media_preview_comment')
+
+add_route('mediagoblin.user_pages.user_gallery',
+          '/u/<string:user>/gallery/',
+          'mediagoblin.user_pages.views:user_gallery')
+
+add_route('mediagoblin.user_pages.media_home.view_comment',
+          '/u/<string:user>/m/<string:media>/c/<int:comment>/',
+          'mediagoblin.user_pages.views:media_home')
+
+add_route('mediagoblin.user_pages.media_home.report_comment',
+          '/u/<string:user>/m/<string:media>/c/<int:comment>/report/',
+          'mediagoblin.user_pages.views:file_a_report')
+
+# User's tags gallery
+add_route('mediagoblin.user_pages.user_tag_gallery',
+          '/u/<string:user>/tag/<string:tag>/',
+          'mediagoblin.user_pages.views:user_gallery')
+
+add_route('mediagoblin.user_pages.atom_feed',
+          '/u/<string:user>/atom/',
+          'mediagoblin.user_pages.views:atom_feed')
+
+add_route('mediagoblin.user_pages.media_collect',
+          '/u/<string:user>/m/<int:media_id>/collect/',
+          'mediagoblin.user_pages.views:media_collect')
+
+add_route('mediagoblin.user_pages.collection_list',
+          '/u/<string:user>/collections/',
+          'mediagoblin.user_pages.views:collection_list')
+
+add_route('mediagoblin.user_pages.user_collection',
+          '/u/<string:user>/collection/<string:collection>/',
+          'mediagoblin.user_pages.views:user_collection')
+
+add_route('mediagoblin.edit.edit_collection',
+          '/u/<string:user>/c/<string:collection>/edit/',
+          'mediagoblin.edit.views:edit_collection')
+
+add_route('mediagoblin.user_pages.collection_confirm_delete',
+          '/u/<string:user>/c/<string:collection>/confirm-delete/',
+          'mediagoblin.user_pages.views:collection_confirm_delete')
+
+add_route('mediagoblin.user_pages.collection_item_confirm_remove',
+          '/u/<string:user>/collection/<string:collection>/<string:collection_item>/confirm_remove/',
+          'mediagoblin.user_pages.views:collection_item_confirm_remove')
+
+add_route('mediagoblin.user_pages.collection_atom_feed',
+          '/u/<string:user>/collection/<string:collection>/atom/',
+          'mediagoblin.user_pages.views:collection_atom_feed')
+
+add_route('mediagoblin.user_pages.processing_panel',
+          '/u/<string:user>/panel/',
+          'mediagoblin.user_pages.views:processing_panel')
+
+add_route('mediagoblin.user_pages.processing_panel',
+          '/u/<string:user>/panel/<any(processed, processing, failed):state>/',
+          'mediagoblin.user_pages.views:processing_panel')
+
+
+# Stray edit routes
+add_route('mediagoblin.edit.edit_media',
+          '/u/<string:user>/m/<int:media_id>/edit/',
+          'mediagoblin.edit.views:edit_media')
+
+add_route('mediagoblin.edit.attachments',
+          '/u/<string:user>/m/<int:media_id>/attachments/',
+          'mediagoblin.edit.views:edit_attachments')
+
+add_route('mediagoblin.edit.metadata',
+          '/u/<string:user>/m/<int:media_id>/metadata/',
+          'mediagoblin.edit.views:edit_metadata')
\ No newline at end of file