def warnings(request, profile, page=0): warnings_qs = profile.warnings.order_by('-id') warnings = paginate(warnings_qs, page, 5, 2) items_left = warnings.paginator.count - warnings.end_index() add_acl(request.user, warnings.object_list) warning_level = get_user_warning_level(profile) warning_level_obj = get_user_warning_obj(profile) active_warnings = warning_level - warnings.start_index() + 1 for warning in warnings.object_list: if warning.is_canceled: warning.is_active = False else: warning.is_active = active_warnings > 0 active_warnings -= 1 levels_total = len(get_warning_levels()) - 1 if levels_total and warning_level: warning_progress = 100 - warning_level * 100 / levels_total else: warning_progress = 100 if warning_level: warning_level_obj.level = warning_level return render(request, 'misago/profile/warnings.html', { 'profile': profile, 'warnings': warnings, 'warning_level': warning_level_obj, 'warning_progress': warning_progress, 'page_number': warnings.number, 'items_left': items_left })
def warn(request, user, reason=None): return_path = moderation_return_path(request, user) if warnings.is_user_warning_level_max(user): message = _("%(user)s has maximum warning " "level and can't be warned.") message = message % {'user': user.username} messages.info(request, message) return redirect(return_path) form = WarnUserForm(initial={'reason': reason}) if request.method == 'POST': form = WarnUserForm(request.POST) if form.is_valid(): warnings.warn_user(request.user, user, form.cleaned_data['reason']) notify_user(user, _("%(user)s has given you an warning."), reverse('misago:user_warnings', kwargs={ 'user_slug': user.slug, 'user_id': user.pk }), "warnings_%s" % user.pk, formats={'user': request.user.username}, sender=request.user) message = _("%(user)s has been warned.") message = message % {'user': user.username} messages.success(request, message) return redirect(return_path) warning_levels = warnings.get_warning_levels() current_level = warning_levels[user.warning_level] next_level = warning_levels[user.warning_level + 1] return render( request, 'misago/modusers/warn.html', { 'profile': user, 'form': form, 'return_path': return_path, 'current_level': current_level, 'next_level': next_level })
def warn(request, user, reason=None): return_path = moderation_return_path(request, user) if warnings.is_user_warning_level_max(user): message = _("%(user)s has maximum warning " "level and can't be warned.") message = message % {'user': user.username} messages.info(request, message) return redirect(return_path) form = WarnUserForm(initial={'reason': reason}) if request.method == 'POST': form = WarnUserForm(request.POST) if form.is_valid(): warnings.warn_user(request.user, user, form.cleaned_data['reason']) notify_user(user, _("%(user)s has given you an warning."), reverse('misago:user_warnings', kwargs={ 'user_slug': user.slug, 'user_id': user.pk }), "warnings_%s" % user.pk, formats={'user': request.user.username}, sender=request.user) message = _("%(user)s has been warned.") message = message % {'user': user.username} messages.success(request, message) return redirect(return_path) warning_levels = warnings.get_warning_levels() current_level = warning_levels[user.warning_level] next_level = warning_levels[user.warning_level + 1] return render(request, 'misago/modusers/warn.html', { 'profile': user, 'form': form, 'return_path': return_path, 'current_level': current_level, 'next_level': next_level })
def warnings(request, profile, page=0): warnings_qs = profile.warnings.order_by('-id') warnings = paginate(warnings_qs, page, 5, 2) items_left = warnings.paginator.count - warnings.end_index() add_acl(request.user, warnings.object_list) warning_level = get_user_warning_level(profile) warning_level_obj = get_user_warning_obj(profile) active_warnings = warning_level - warnings.start_index() + 1 for warning in warnings.object_list: if warning.is_canceled: warning.is_active = False else: warning.is_active = active_warnings > 0 active_warnings -= 1 levels_total = len(get_warning_levels()) - 1 if levels_total and warning_level: warning_progress = 100 - warning_level * 100 / levels_total else: warning_progress = 100 if warning_level: warning_level_obj.level = warning_level return render( request, 'misago/profile/warnings.html', { 'profile': profile, 'warnings': warnings, 'warning_level': warning_level_obj, 'warning_progress': warning_progress, 'page_number': warnings.number, 'items_left': items_left })