Просмотр исходного кода

Be lazy about username caches sync

Ralfp 12 лет назад
Родитель
Сommit
9a128c5e04
3 измененных файлов с 10 добавлено и 3 удалено
  1. 2 1
      misago/usercp/username/views.py
  2. 4 2
      misago/users/models.py
  3. 4 0
      misago/users/views.py

+ 2 - 1
misago/usercp/username/views.py

@@ -30,7 +30,7 @@ def username(request):
 
     message = request.messages.get_message('usercp_username')
     if request.method == 'POST':
-        if changes_left:
+        if not changes_left:
             message = Message(_("You have exceeded the maximum number of name changes."), 'error')
             form = UsernameChangeForm(request=request)
         else:
@@ -39,6 +39,7 @@ def username(request):
             if form.is_valid():
                 request.user.set_username(form.cleaned_data['username'])
                 request.user.save(force_update=True)
+                request.user.sync_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')
                 # Alert followers of namechange

+ 4 - 2
misago/users/models.py

@@ -313,8 +313,10 @@ class User(models.Model):
     def set_username(self, username):
         self.username = username.strip()
         self.username_slug = slugify(username)
-        if self.pk:
-            rename_user.send(sender=self)
+
+    def sync_username(self):
+        print 'SYNCING NAME CACHES!'
+        rename_user.send(sender=self)
 
     def is_username_valid(self, e):
         try:

+ 4 - 0
misago/users/views.py

@@ -308,6 +308,10 @@ class Edit(FormWidget):
         target.signature_ban_reason_user = form.cleaned_data['signature_ban_reason_user']
         target.signature_ban_reason_admin = form.cleaned_data['signature_ban_reason_admin']
 
+        # Sync username?
+        if target.username != self.original_name:
+            target.sync_username()
+
         # Do signature mumbo-jumbo
         if form.cleaned_data['signature']:
             target.signature = form.cleaned_data['signature']