diff options
Diffstat (limited to 'mediagoblin/moderation')
-rw-r--r-- | mediagoblin/moderation/forms.py | 5 | ||||
-rw-r--r-- | mediagoblin/moderation/tools.py | 39 | ||||
-rw-r--r-- | mediagoblin/moderation/views.py | 30 |
3 files changed, 42 insertions, 32 deletions
diff --git a/mediagoblin/moderation/forms.py b/mediagoblin/moderation/forms.py index 72305b29..e46cfd36 100644 --- a/mediagoblin/moderation/forms.py +++ b/mediagoblin/moderation/forms.py @@ -119,10 +119,13 @@ class ReportResolutionForm(wtforms.Form): format='%Y-%m-%d', validators=[wtforms.validators.optional()]) why_user_was_banned = wtforms.TextAreaField( + _(u'Why user was banned:'), validators=[wtforms.validators.optional()]) message_to_user = wtforms.TextAreaField( + _(u'Message to user:'), validators=[wtforms.validators.optional()]) - resolution_content = wtforms.TextAreaField() + resolution_content = wtforms.TextAreaField( + _(u'Resolution content:')) # ======== Forms for mediagoblin.moderation.report_panel page ============== # diff --git a/mediagoblin/moderation/tools.py b/mediagoblin/moderation/tools.py index e0337536..36d89d71 100644 --- a/mediagoblin/moderation/tools.py +++ b/mediagoblin/moderation/tools.py @@ -14,16 +14,19 @@ # 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/>. +import six + from mediagoblin import mg_globals -from mediagoblin.db.models import User, Privilege, UserBan +from mediagoblin.db.models import User, Privilege, UserBan, LocalUser from mediagoblin.db.base import Session from mediagoblin.tools.mail import send_email from mediagoblin.tools.response import redirect from datetime import datetime from mediagoblin.tools.translate import lazy_pass_to_ugettext as _ + def take_punitive_actions(request, form, report, user): - message_body ='' + message_body = '' # The bulk of this action is running through all of the different # punitive actions that a moderator could take. @@ -31,7 +34,7 @@ def take_punitive_actions(request, form, report, user): for privilege_name in form.take_away_privileges.data: take_away_privileges(user.username, privilege_name) form.resolution_content.data += \ - u"\n{mod} took away {user}\'s {privilege} privileges.".format( + _(u"\n{mod} took away {user}\'s {privilege} privileges.").format( mod=request.user.username, user=user.username, privilege=privilege_name) @@ -44,13 +47,13 @@ def take_punitive_actions(request, form, report, user): reason=form.why_user_was_banned.data) Session.add(user_ban) form.resolution_content.data += \ - u"\n{mod} banned user {user} {expiration_date}.".format( + _(u"\n{mod} banned user {user} {expiration_date}.").format( mod=request.user.username, user=user.username, expiration_date = ( - "until {date}".format(date=form.user_banned_until.data) + _("until {date}").format(date=form.user_banned_until.data) if form.user_banned_until.data - else "indefinitely" + else _("indefinitely") ) ) @@ -59,23 +62,23 @@ def take_punitive_actions(request, form, report, user): if u'sendmessage' in form.action_to_resolve.data: message_body = form.message_to_user.data form.resolution_content.data += \ - u"\n{mod} sent a warning email to the {user}.".format( + _(u"\n{mod} sent a warning email to the {user}.").format( mod=request.user.username, user=user.username) if u'delete' in form.action_to_resolve.data and \ report.is_comment_report(): - deleted_comment = report.comment - Session.delete(deleted_comment) + deleted_comment = report.obj() + deleted_comment.delete() form.resolution_content.data += \ - u"\n{mod} deleted the comment.".format( + _(u"\n{mod} deleted the comment.").format( mod=request.user.username) elif u'delete' in form.action_to_resolve.data and \ report.is_media_entry_report(): - deleted_media = report.media_entry + deleted_media = report.obj() deleted_media.delete() form.resolution_content.data += \ - u"\n{mod} deleted the media entry.".format( + _(u"\n{mod} deleted the media entry.").format( mod=request.user.username) report.archive( resolver_id=request.user.id, @@ -119,8 +122,9 @@ def take_away_privileges(user,*privileges): if len(privileges) == 1: privilege = Privilege.query.filter( Privilege.privilege_name==privileges[0]).first() - user = User.query.filter( - User.username==user).first() + user = LocalUser.query.filter( + LocalUser.username==user + ).first() if privilege in user.all_privileges: user.all_privileges.remove(privilege) return True @@ -151,8 +155,9 @@ def give_privileges(user,*privileges): if len(privileges) == 1: privilege = Privilege.query.filter( Privilege.privilege_name==privileges[0]).first() - user = User.query.filter( - User.username==user).first() + user = LocalUser.query.filter( + LocalUser.username==user + ).first() if privilege not in user.all_privileges: user.all_privileges.append(privilege) return True @@ -212,6 +217,6 @@ def parse_report_panel_settings(form): filters['reporter_id'] = form.reporter.data filters = dict((k, v) - for k, v in filters.iteritems() if v) + for k, v in six.iteritems(filters) if v) return filters diff --git a/mediagoblin/moderation/views.py b/mediagoblin/moderation/views.py index f4de11ad..ca0e6533 100644 --- a/mediagoblin/moderation/views.py +++ b/mediagoblin/moderation/views.py @@ -15,8 +15,8 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. -from mediagoblin.db.models import (MediaEntry, User,ReportBase, Privilege, - UserBan) +from mediagoblin.db.models import (MediaEntry, User, Report, Privilege, + UserBan, LocalUser) from mediagoblin.decorators import (require_admin_or_moderator_login, active_user_from_url, user_has_privilege, allow_reporting) @@ -79,11 +79,13 @@ def moderation_users_detail(request): ''' Shows details about a particular user. ''' - user = User.query.filter_by(username=request.matchdict['user']).first() + user = LocalUser.query.filter( + LocalUser.username==request.matchdict['user'] + ).first() active_reports = user.reports_filed_on.filter( - ReportBase.resolved==None).limit(5) + Report.resolved==None).limit(5) closed_reports = user.reports_filed_on.filter( - ReportBase.resolved!=None).all() + Report.resolved!=None).all() privileges = Privilege.query user_banned = UserBan.query.get(user.id) ban_form = moderation_forms.BanForm() @@ -114,23 +116,23 @@ def moderation_reports_panel(request): active_settings['current_page'] = form.active_p.data or 1 closed_settings['current_page'] = form.closed_p.data or 1 filters = [ - getattr(ReportBase,key)==val - for key,val in filters.viewitems()] + getattr(Report,key)==val + for key,val in filters.items()] - all_active = ReportBase.query.filter( - ReportBase.resolved==None).filter( + all_active = Report.query.filter( + Report.resolved==None).filter( *filters) - all_closed = ReportBase.query.filter( - ReportBase.resolved!=None).filter( + all_closed = Report.query.filter( + Report.resolved!=None).filter( *filters) # report_list and closed_report_list are the two lists of up to 10 # items which are actually passed to the user in this request report_list = all_active.order_by( - ReportBase.created.desc()).offset( + Report.created.desc()).offset( (active_settings['current_page']-1)*10).limit(10) closed_report_list = all_closed.order_by( - ReportBase.created.desc()).offset( + Report.created.desc()).offset( (closed_settings['current_page']-1)*10).limit(10) active_settings['last_page'] = int(ceil(all_active.count()/10.)) @@ -153,7 +155,7 @@ def moderation_reports_detail(request): erator would go to to take an action to resolve a report. """ form = moderation_forms.ReportResolutionForm(request.form) - report = ReportBase.query.get(request.matchdict['report_id']) + report = Report.query.get(request.matchdict['report_id']) form.take_away_privileges.choices = [ (s.privilege_name,s.privilege_name.title()) \ |