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['thread_name'] = forms.CharField(
                                                      max_length=self.request.settings['thread_name_max'],
-                                                     initial=self.threads[0].name,
+                                                     initial=self.threads[-1].name,
                                                      validators=[validate_sluggable(
                                                                                     _("Thread name must contain at least one alpha-numeric character."),
                                                                                     _("Thread name is too long. Try shorter name.")
                                                                                     )])
+
         self.layout = [
                        [
                         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.")}),
                          ],
                         ],
-                       [
-                        _("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):
         new_forum = self.cleaned_data['new_forum']
-        # Assert its forum
         if new_forum.type != 'forum':
             raise forms.ValidationError(_("This is not 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.template import RequestContext
+from django.utils import timezone
 from django.utils.translation import ugettext as _
 from misago.forms import FormLayout
 from misago.messages import Message
 from misago.models import Forum, Thread, Post
 from misago.apps.threadtype.list.forms import MoveThreadsForm, MergeThreadsForm
+from misago.utils.strings import slugify
 
 class ThreadsListModeration(object):
     def action_accept(self, ids):
@@ -137,16 +139,10 @@ class ThreadsListModeration(object):
                                                    start=timezone.now(),
                                                    last=timezone.now()
                                                    )
-                last_merge = 0
-                last_thread = None
                 merged = []
-                for i in range(0, len(threads)):
-                    thread = form.merge_order[i]
+                for thread in reversed(threads):
                     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()
                 new_thread.sync()
                 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.utils import timezone
 from misago.acl.exceptions import ACLError403, ACLError404
 from misago.apps.errors import error403, error404
 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_slug = 'n'
                 new_thread.save(force_insert=True)
-                prev_merge = -1
-                merge = -1
                 for post in self.posts:
                     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.save(force_update=True)
                 new_thread.sync()
@@ -112,14 +106,8 @@ class PostsModeration(object):
             form = MovePostsForm(self.request.POST, request=self.request, thread=self.thread)
             if form.is_valid():
                 thread = form.cleaned_data['thread_url']
-                prev_merge = -1
-                merge = -1
                 for post in self.posts:
                     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.save(force_update=True)
                 if self.thread.post_set.count() == 0: