Browse Source

Removed merge order from merging action. #142

Ralfp 12 years ago
parent
commit
c3acbb969a

+ 2 - 26
misago/apps/threadtype/list/forms.py

@@ -42,11 +42,12 @@ class MergeThreadsForm(Form, ValidateThreadNameMixin):
         self.fields['new_forum'] = ForumChoiceField(queryset=Forum.objects.get(special='root').get_descendants().filter(pk__in=self.request.acl.forums.acl['can_browse']), initial=self.threads[0].forum)
         self.fields['new_forum'] = ForumChoiceField(queryset=Forum.objects.get(special='root').get_descendants().filter(pk__in=self.request.acl.forums.acl['can_browse']), initial=self.threads[0].forum)
         self.fields['thread_name'] = forms.CharField(
         self.fields['thread_name'] = forms.CharField(
                                                      max_length=self.request.settings['thread_name_max'],
                                                      max_length=self.request.settings['thread_name_max'],
-                                                     initial=self.threads[0].name,
+                                                     initial=self.threads[-1].name,
                                                      validators=[validate_sluggable(
                                                      validators=[validate_sluggable(
                                                                                     _("Thread name must contain at least one alpha-numeric character."),
                                                                                     _("Thread name must contain at least one alpha-numeric character."),
                                                                                     _("Thread name is too long. Try shorter name.")
                                                                                     _("Thread name is too long. Try shorter name.")
                                                                                     )])
                                                                                     )])
+
         self.layout = [
         self.layout = [
                        [
                        [
                         None,
                         None,
@@ -55,35 +56,10 @@ class MergeThreadsForm(Form, ValidateThreadNameMixin):
                          ('new_forum', {'label': _("Thread Forum"), 'help_text': _("Select forum you want to put new thread in.")}),
                          ('new_forum', {'label': _("Thread Forum"), 'help_text': _("Select forum you want to put new thread in.")}),
                          ],
                          ],
                         ],
                         ],
-                       [
-                        _("Merge Order"),
-                        [
-                         ],
-                        ],
                        ]
                        ]
 
 
-        choices = []
-        for i, thread in enumerate(self.threads):
-            choices.append((str(i), i + 1))
-        for i, thread in enumerate(self.threads):
-            self.fields['thread_%s' % thread.pk] = forms.ChoiceField(choices=choices, initial=str(i))
-            self.layout[1][1].append(('thread_%s' % thread.pk, {'label': thread.name}))
-
     def clean_new_forum(self):
     def clean_new_forum(self):
         new_forum = self.cleaned_data['new_forum']
         new_forum = self.cleaned_data['new_forum']
-        # Assert its forum
         if new_forum.type != 'forum':
         if new_forum.type != 'forum':
             raise forms.ValidationError(_("This is not forum."))
             raise forms.ValidationError(_("This is not forum."))
         return new_forum
         return new_forum
-
-    def clean(self):
-        cleaned_data = super(MergeThreadsForm, self).clean()
-        self.merge_order = {}
-        lookback = []
-        for thread in self.threads:
-            order = int(cleaned_data['thread_%s' % thread.pk])
-            if order in lookback:
-                raise forms.ValidationError(_("One or more threads have same position in merge order."))
-            lookback.append(order)
-            self.merge_order[order] = thread
-        return cleaned_data

+ 4 - 8
misago/apps/threadtype/list/moderation.py

@@ -1,10 +1,12 @@
 from django.forms import ValidationError
 from django.forms import ValidationError
 from django.template import RequestContext
 from django.template import RequestContext
+from django.utils import timezone
 from django.utils.translation import ugettext as _
 from django.utils.translation import ugettext as _
 from misago.forms import FormLayout
 from misago.forms import FormLayout
 from misago.messages import Message
 from misago.messages import Message
 from misago.models import Forum, Thread, Post
 from misago.models import Forum, Thread, Post
 from misago.apps.threadtype.list.forms import MoveThreadsForm, MergeThreadsForm
 from misago.apps.threadtype.list.forms import MoveThreadsForm, MergeThreadsForm
+from misago.utils.strings import slugify
 
 
 class ThreadsListModeration(object):
 class ThreadsListModeration(object):
     def action_accept(self, ids):
     def action_accept(self, ids):
@@ -137,16 +139,10 @@ class ThreadsListModeration(object):
                                                    start=timezone.now(),
                                                    start=timezone.now(),
                                                    last=timezone.now()
                                                    last=timezone.now()
                                                    )
                                                    )
-                last_merge = 0
-                last_thread = None
                 merged = []
                 merged = []
-                for i in range(0, len(threads)):
-                    thread = form.merge_order[i]
+                for thread in reversed(threads):
                     merged.append(thread.pk)
                     merged.append(thread.pk)
-                    if last_thread and last_thread.last > thread.start:
-                        last_merge += thread.merges + 1
-                    thread.merge_with(new_thread, last_merge=last_merge)
-                    last_thread = thread
+                    thread.merge_with(new_thread)
                 Thread.objects.filter(id__in=merged).delete()
                 Thread.objects.filter(id__in=merged).delete()
                 new_thread.sync()
                 new_thread.sync()
                 new_thread.save(force_update=True)
                 new_thread.save(force_update=True)

+ 1 - 0
misago/apps/threadtype/posting/base.py

@@ -1,4 +1,5 @@
 from django.template import RequestContext
 from django.template import RequestContext
+from django.utils import timezone
 from misago.acl.exceptions import ACLError403, ACLError404
 from misago.acl.exceptions import ACLError403, ACLError404
 from misago.apps.errors import error403, error404
 from misago.apps.errors import error403, error404
 from misago.forms import FormLayout
 from misago.forms import FormLayout

+ 0 - 12
misago/apps/threadtype/thread/moderation/posts.py

@@ -67,14 +67,8 @@ class PostsModeration(object):
                 new_thread.last_poster_name = 'n'
                 new_thread.last_poster_name = 'n'
                 new_thread.last_poster_slug = 'n'
                 new_thread.last_poster_slug = 'n'
                 new_thread.save(force_insert=True)
                 new_thread.save(force_insert=True)
-                prev_merge = -1
-                merge = -1
                 for post in self.posts:
                 for post in self.posts:
                     if post.pk in ids:
                     if post.pk in ids:
-                        if prev_merge != post.merge:
-                            prev_merge = post.merge
-                            merge += 1
-                        post.merge = merge
                         post.move_to(new_thread)
                         post.move_to(new_thread)
                         post.save(force_update=True)
                         post.save(force_update=True)
                 new_thread.sync()
                 new_thread.sync()
@@ -112,14 +106,8 @@ class PostsModeration(object):
             form = MovePostsForm(self.request.POST, request=self.request, thread=self.thread)
             form = MovePostsForm(self.request.POST, request=self.request, thread=self.thread)
             if form.is_valid():
             if form.is_valid():
                 thread = form.cleaned_data['thread_url']
                 thread = form.cleaned_data['thread_url']
-                prev_merge = -1
-                merge = -1
                 for post in self.posts:
                 for post in self.posts:
                     if post.pk in ids:
                     if post.pk in ids:
-                        if prev_merge != post.merge:
-                            prev_merge = post.merge
-                            merge += 1
-                        post.merge = merge + thread.merges
                         post.move_to(thread)
                         post.move_to(thread)
                         post.save(force_update=True)
                         post.save(force_update=True)
                 if self.thread.post_set.count() == 0:
                 if self.thread.post_set.count() == 0: