
that most of my functions do indeed have effective docstrings. I also changed the decorators so that they imply eachother in a logical way. I also modified the one decorator get_media_comment_by_id to be more usable with the variable urls of mediagoblin.user_pages.views:file_a_report. I also noticed a few tests had broken, so I went through them and fixed them up, finding that mostly there were problems in my actual writing of the tests. I also did a few other small tasks such as creating a new User method to check whether or not a User is ban- -ned. =============================================================================== Added in documentation =============================================================================== --\ mediagoblin/db/models.py --\ mediagoblin/decorators.py --\ mediagoblin/moderation/forms.py --\ mediagoblin/moderation/tools.py --\ mediagoblin/moderation/views.py --\ mediagoblin/user_pages/lib.py =============================================================================== Rearranged decorators to be more efficient =============================================================================== --\ mediagoblin/decorators.py --| Made it so that user_not_banned is encapsulated in require_active_login --| Made it so that require_active_login is encapsulated in user_has_privilege --| Changed get_media_comment_by_id into get_optional_media_comment_by_id. It | now returns valid code if the MediaComment id is absent. This makes it pos- | -sible to use this decorator for the function: | mediagoblin.user_pages.views:file_a_report --\ mediagoblin/user_pages/views.py --| Replaced the mediagoblin.user_pages.views:file_a_comment_report with the | decorator mentioned above --\ mediagoblin/user_pages/routing.py ----------------------------------------------------------- | took out unnecessary @user_not_banned decorators | ----------------------------------------------------------- --\ mediagoblin/submit/views.py --\ mediagoblin/user_pages/views.py =============================================================================== Fixed broken tests =============================================================================== --\ mediagoblin/tests/test_auth.py --\ mediagoblin/tests/test_privileges.py --\ mediagoblin/tests/test_submission.py =============================================================================== Fixed broken code =============================================================================== --\ mediagoblin/tools/response.py =============================================================================== Other Tasks =============================================================================== --\ mediagoblin/db/models.py --| Added in User.is_banned() method --\ mediagoblin/decorators.py --| Utitilized User.is_banned() method in the user_not_banned decorator --\ mediagoblin/moderation/views.py --| Made it impossible for an admin to ban themself. --| Got rid of a vestigial print statement --\ mediagoblin/templates/mediagoblin/base.html --| Made it so the top panel does not show up for users that are banned. --\ mediagoblin/templates/mediagoblin/moderation/user.html --| Rearranged the javascript slightly ===============================================================================
104 lines
4.3 KiB
Python
104 lines
4.3 KiB
Python
# GNU MediaGoblin -- federated, autonomous media hosting
|
|
# 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
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU Affero General Public License for more details.
|
|
#
|
|
# 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 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')
|
|
|
|
# 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')
|
|
|
|
# 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')
|