123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- from django.core.urlresolvers import NoReverseMatch
- from django.shortcuts import redirect
- from django.utils.translation import ugettext as _
- from misago.authn.decorators import block_guest
- from misago.csrf.decorators import check_csrf
- from misago.messages import Message
- from misago.users.models import User
- from misago.profiles.decorators import user_view
- from misago.views import error404
- from misago.utils import ugettext_lazy
- def fallback(request):
- try:
- return redirect(request.POST.get('fallback', '/'))
- except NoReverseMatch:
- return redirect('index')
- @block_guest
- @check_csrf
- @user_view
- def follow(request, user):
- if request.user.pk == user.pk:
- return error404(request)
- if not request.user.is_following(user):
- request.messages.set_flash(Message(_("You are now following %(username)s") % {'username': user.username}), 'success')
- request.user.follows.add(user)
- request.user.following += 1
- request.user.save(force_update=True)
- user.followers += 1
- if not user.is_ignoring(request.user):
- alert = user.alert(ugettext_lazy("%(username)s is now following you").message)
- alert.profile('username', request.user)
- alert.save_all()
- else:
- user.save(force_update=True)
- return fallback(request)
- @block_guest
- @check_csrf
- @user_view
- def unfollow(request, user):
- if request.user.pk == user.pk:
- return error404(request)
- if request.user.is_following(user):
- request.messages.set_flash(Message(_("You have stopped following %(username)s") % {'username': user.username}))
- request.user.follows.remove(user)
- request.user.following -= 1
- request.user.save(force_update=True)
- user.followers -= 1
- user.save(force_update=True)
- return fallback(request)
- @block_guest
- @check_csrf
- @user_view
- def ignore(request, user):
- if request.user.pk == user.pk:
- return error404(request)
- if not request.user.is_ignoring(user):
- request.messages.set_flash(Message(_("You are now ignoring %(username)s") % {'username': user.username}), 'success')
- request.user.ignores.add(user)
- return fallback(request)
- @block_guest
- @check_csrf
- def unignore(request, user):
- if request.user.pk == user.pk:
- return error404(request)
- if request.user.is_ignoring(user):
- request.messages.set_flash(Message(_("You have stopped ignoring %(username)s") % {'username': user.username}))
- request.user.ignores.remove(user)
- return fallback(request)
|