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

fix moderation forms for posts

Rafał Pitoń 9 лет назад
Родитель
Сommit
467276cc3a

+ 20 - 11
misago/apps/threadtype/thread/moderation/forms.py

@@ -10,13 +10,16 @@ from misago.apps.threadtype.mixins import ValidateThreadNameMixin
 
 class SplitThreadForm(Form, ValidateThreadNameMixin):
     def finalize_form(self):
-        self.fields['thread_name'] = forms.CharField(label=_("New Thread Name"),
-                                                     max_length=settings.thread_name_max,
-                                                     validators=[validate_sluggable(_("Thread name must contain at least one alpha-numeric character."),
-                                                                                    _("Thread name is too long. Try shorter name.")
-                                                                                    )])
-        self.fields['thread_forum'] = ForumChoiceField(label=_("New Thread Forum"),
-                                                       queryset=Forum.objects.get(special='root').get_descendants().filter(pk__in=self.request.acl.forums.acl['can_browse']))
+        self.fields['thread_name'] = forms.CharField(
+            label=_("New Thread Name"),
+            max_length=settings.thread_name_max,
+            validators=[validate_sluggable(
+                _("Thread name must contain at least one alpha-numeric character."),
+                _("Thread name is too long. Try shorter name.")
+            )])
+        self.fields['thread_forum'] = ForumChoiceField(
+            label=_("New Thread Forum"),
+            queryset=Forum.objects.get(special='root').get_descendants().filter(pk__in=self.request.acl.forums.acl['can_browse']))
 
     def clean_thread_forum(self):
         new_forum = self.cleaned_data['thread_forum']
@@ -31,11 +34,16 @@ def get_thread_from_url(request, thread_url):
         from django.http import Http404
 
         try:
-            thread_url = thread_url[len(settings.BOARD_ADDRESS):]
+            if thread_url.startswith(settings.BOARD_ADDRESS):
+                thread_url = thread_url[len(settings.BOARD_ADDRESS):]
+
+            if '#' in thread_url:
+                thread_url = thread_url.split('#')[0]
 
             match = resolve(thread_url)
             if not match.url_name.startswith('thread'):
                 raise forms.ValidationError(_("This is not a correct thread URL."))
+
             thread = Thread.objects.get(pk=match.kwargs['thread'])
             request.acl.threads.allow_thread_view(request.user, thread)
             return thread
@@ -45,7 +53,7 @@ def get_thread_from_url(request, thread_url):
             raise forms.ValidationError(_("Thread could not be found."))
 
 
-class MovePostsForm(Form, ValidateThreadNameMixin):
+class MovePostsForm(Form):
     error_source = 'thread_url'
 
     def __init__(self, data=None, request=None, thread=None, *args, **kwargs):
@@ -53,8 +61,9 @@ class MovePostsForm(Form, ValidateThreadNameMixin):
         super(MovePostsForm, self).__init__(data, request=request, *args, **kwargs)
 
     def finalize_form(self):
-        self.fields['thread_url'] = forms.CharField(label=_("New Thread Link"),
-                                                    help_text=_("To select new thread, simply copy and paste here its link."))
+        self.fields['thread_url'] = forms.CharField(
+            label=_("New Thread Link"),
+            help_text=_("To select new thread, simply copy and paste here its link."))
 
     def clean_thread_url(self):
         thread = get_thread_from_url(self.request, self.cleaned_data['thread_url'])

+ 1 - 1
templates/cranefly/threads/changelog.html

@@ -1,7 +1,7 @@
 {% extends "cranefly/layout.html" %}
 {% import "cranefly/macros.html" as macros with context %}
 
-{% block title %}{{ macros.page_title(title=(_("Post #%(post)s Changelog" % {'post': post.pk})),parent=thread.name) }}{% endblock %}
+{% block title %}{{ macros.page_title(title=(_("Post #%(post)s Changelog") % {'post': post.pk}),parent=thread.name) }}{% endblock %}
 
 {% block breadcrumb %}{{ super() }} <span class="divider"><i class="icon-chevron-right"></i></span></li>
 {{ macros.parents_list(parents) }}

+ 1 - 1
templates/cranefly/threads/changelog_diff.html

@@ -1,7 +1,7 @@
 {% extends "cranefly/layout.html" %}
 {% import "cranefly/macros.html" as macros with context %}
 
-{% block title %}{{ macros.page_title(title=(_("Post #%(post)s Changelog" % {'post': post.pk})),parent=thread.name) }}{% endblock %}
+{% block title %}{{ macros.page_title(title=(_("Post #%(post)s Changelog") % {'post': post.pk}),parent=thread.name) }}{% endblock %}
 
 {% block breadcrumb %}{{ super() }} <span class="divider"><i class="icon-chevron-right"></i></span></li>
 {{ macros.parents_list(parents) }}

+ 1 - 1
templates/cranefly/threads/merge.html

@@ -41,7 +41,7 @@
         </div>
         {% endif %}
 
-        <form action="{{ url('forum', forum=forum.pk, slug=forum.slug) }}" method="post">
+        <form method="post">
           {{ form_theme.hidden_fields(form) }}
           <input type="hidden" name="origin" value="merge_form">
           <input type="hidden" name="list_action" value="merge">

+ 1 - 1
templates/cranefly/threads/move_posts.html

@@ -36,7 +36,7 @@
         </div>
         {% endif %}
 
-        <form action="{{ url('thread', thread=thread.pk, slug=thread.slug) }}" method="post">
+        <form method="post">
           {{ form_theme.hidden_fields(form) }}
           <input type="hidden" name="origin" value="posts_form">
           <input type="hidden" name="list_action" value="move">

+ 1 - 1
templates/cranefly/threads/move_thread.html

@@ -36,7 +36,7 @@
         </div>
         {% endif %}
 
-        <form action="{{ url('thread', thread=thread.pk, slug=thread.slug) }}" method="post">
+        <form method="post">
           {{ form_theme.hidden_fields(form) }}
           <input type="hidden" name="origin" value="thread_form">
           <input type="hidden" name="thread_action" value="move">

+ 1 - 1
templates/cranefly/threads/move_threads.html

@@ -36,7 +36,7 @@
         </div>
         {% endif %}
 
-        <form action="{{ url('forum', forum=forum.pk, slug=forum.slug) }}" method="post">
+        <form method="post">
           {{ form_theme.hidden_fields(form) }}
           <input type="hidden" name="origin" value="move_form">
           <input type="hidden" name="list_action" value="move">

+ 1 - 1
templates/cranefly/threads/split.html

@@ -36,7 +36,7 @@
         </div>
         {% endif %}
 
-        <form action="{{ url('thread', thread=thread.pk, slug=thread.slug) }}" method="post">
+        <form method="post">
           {{ form_theme.hidden_fields(form) }}
           <input type="hidden" name="origin" value="posts_form">
           <input type="hidden" name="list_action" value="split">