|
@@ -1,15 +1,19 @@
|
|
from datetime import timedelta
|
|
from datetime import timedelta
|
|
from django.core.urlresolvers import reverse
|
|
from django.core.urlresolvers import reverse
|
|
|
|
+from django.db.models import F
|
|
from django.shortcuts import redirect
|
|
from django.shortcuts import redirect
|
|
from django.utils import timezone
|
|
from django.utils import timezone
|
|
from django.utils.translation import ugettext as _
|
|
from django.utils.translation import ugettext as _
|
|
|
|
+from misago.alerts.models import Alert
|
|
from misago.authn.decorators import block_guest
|
|
from misago.authn.decorators import block_guest
|
|
from misago.forms import FormLayout
|
|
from misago.forms import FormLayout
|
|
from misago.messages import Message
|
|
from misago.messages import Message
|
|
|
|
+from misago.users.models import User
|
|
from misago.usercp.template import RequestContext
|
|
from misago.usercp.template import RequestContext
|
|
from misago.usercp.models import UsernameChange
|
|
from misago.usercp.models import UsernameChange
|
|
from misago.usercp.username.forms import UsernameChangeForm
|
|
from misago.usercp.username.forms import UsernameChangeForm
|
|
from misago.views import error404
|
|
from misago.views import error404
|
|
|
|
+from misago.utils import ugettext_lazy
|
|
|
|
|
|
@block_guest
|
|
@block_guest
|
|
def username(request):
|
|
def username(request):
|
|
@@ -33,8 +37,22 @@ def username(request):
|
|
request.user.set_username(form.cleaned_data['username'])
|
|
request.user.set_username(form.cleaned_data['username'])
|
|
request.user.save(force_update=True)
|
|
request.user.save(force_update=True)
|
|
request.user.namechanges.create(date=timezone.now(), old_username=org_username)
|
|
request.user.namechanges.create(date=timezone.now(), old_username=org_username)
|
|
-
|
|
|
|
request.messages.set_flash(Message(_("Your username has been changed.")), 'success', 'usercp_username')
|
|
request.messages.set_flash(Message(_("Your username has been changed.")), 'success', 'usercp_username')
|
|
|
|
+ # Alert followers of namechange
|
|
|
|
+ alert_time = timezone.now()
|
|
|
|
+ bulk_alerts = []
|
|
|
|
+ alerted_users = []
|
|
|
|
+ for follower in request.user.follows_set.iterator():
|
|
|
|
+ alerted_users.append(follower.pk)
|
|
|
|
+ alert = Alert(user=follower, message=ugettext_lazy("User that you are following, %(username)s, has changed his name to %(newname)s").message, date=alert_time)
|
|
|
|
+ alert.strong('username', org_username)
|
|
|
|
+ alert.profile('newname', request.user)
|
|
|
|
+ alert.hydrate()
|
|
|
|
+ bulk_alerts.append(alert)
|
|
|
|
+ if bulk_alerts:
|
|
|
|
+ Alert.objects.bulk_create(bulk_alerts)
|
|
|
|
+ User.objects.filter(id__in=alerted_users).update(alerts=F('alerts') + 1)
|
|
|
|
+ # Hop back
|
|
return redirect(reverse('usercp_username'))
|
|
return redirect(reverse('usercp_username'))
|
|
message = Message(form.non_field_errors()[0], 'error')
|
|
message = Message(form.non_field_errors()[0], 'error')
|
|
else:
|
|
else:
|