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

Lock forum/thread rows on submit, not on post

Rafał Pitoń 10 лет назад
Родитель
Сommit
b7edbed913
1 измененных файлов с 5 добавлено и 4 удалено
  1. 5 4
      misago/threads/views/generic/posting.py

+ 5 - 4
misago/threads/views/generic/posting.py

@@ -29,16 +29,18 @@ class EditorView(ViewBase):
         """
         First step: guess from request what kind of view we are
         """
-        is_post = request.method == 'POST'
+        is_submit = request.method == 'POST' and 'submit' in request.POST
+        if is_submit:
+            request.user.lock()
 
-        forum = self.get_forum(request, lock=is_post, **kwargs)
+        forum = self.get_forum(request, lock=is_submit, **kwargs)
 
         thread = None
         post = None
 
         if 'thread_id' in kwargs:
             thread = self.get_thread(
-                request, lock=is_post, queryset=forum.thread_set, **kwargs)
+                request, lock=is_submit, queryset=forum.thread_set, **kwargs)
 
         if thread:
             mode = REPLY
@@ -74,7 +76,6 @@ class EditorView(ViewBase):
     def dispatch(self, request, *args, **kwargs):
         if request.method == 'POST':
             with atomic():
-                request.user.lock()
                 return self.real_dispatch(request, *args, **kwargs)
         else:
             return self.real_dispatch(request, *args, **kwargs)