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

Closes #244: Rename topics is not possible
Add the condition to choose proper form class in forum/views.py
Render title field in template if it is necessary.
Very small improvement of template to show proper title in breadcrumbs and form header.

Bohdan Khorolets 8 лет назад
Родитель
Сommit
4512968c9d
2 измененных файлов с 36 добавлено и 6 удалено
  1. 19 3
      flaskbb/forum/views.py
  2. 17 3
      flaskbb/templates/forum/new_post.html

+ 19 - 3
flaskbb/forum/views.py

@@ -438,23 +438,39 @@ def edit_post(post_id):
               "danger")
         return redirect(post.topic.url)
 
-    form = ReplyForm()
+    if post.first_post:
+        form = NewTopicForm()
+    else:
+        form = ReplyForm()
+
     if form.validate_on_submit():
         if "preview" in request.form:
             return render_template(
                 "forum/new_post.html", topic=post.topic,
-                form=form, preview=form.content.data
+                form=form, preview=form.content.data, edit_mode=True
             )
         else:
             form.populate_obj(post)
             post.date_modified = time_utcnow()
             post.modified_by = current_user.username
             post.save()
+
+            if post.first_post:
+                post.topic.title = form.title.data
+                post.topic.save()
             return redirect(post.topic.url)
     else:
+        if post.first_post:
+            form.title.data = post.topic.title
+
         form.content.data = post.content
 
-    return render_template("forum/new_post.html", topic=post.topic, form=form)
+    return render_template(
+        "forum/new_post.html",
+        topic=post.topic,
+        form=form,
+        edit_mode=True
+    )
 
 
 @forum.route("/post/<int:post_id>/delete", methods=["POST"])

+ 17 - 3
flaskbb/templates/forum/new_post.html

@@ -4,26 +4,40 @@
 {% extends theme("layout.html") %}
 
 {% block content %}
-{% from theme("macros.html") import render_quickreply, render_submit_field %}
+{% from theme("macros.html") import render_quickreply, render_submit_field, render_field %}
 
 <div class="page-view">
     <ol class="breadcrumb flaskbb-breadcrumb">
         <li><a href="{{ url_for('forum.index') }}">{% trans %}Forum{% endtrans %}</a></li>
         <li><a href="{{ topic.forum.url }}">{{ topic.forum.title }}</a></li>
         <li><a href="{{ topic.url }}">{{ topic.title }}</a></li>
-        <li class="active">{% trans %}New Post{% endtrans %}</li>
+        <li class="active">
+            {% if edit_mode %}
+                {% trans %}Edit Post{% endtrans %}
+            {% else %}
+                {% trans %}New Post{% endtrans %}
+            {% endif %}
+        </li>
     </ol>
 
     <form class="form-horizontal" role="form" method="post">
         {{ form.hidden_tag() }}
         <div class="panel page-panel">
             <div class="panel-heading page-head">
-                {% trans %}New Post{% endtrans %}
+                {% if edit_mode %}
+                    {% trans %}Edit Post{% endtrans %}
+                {% else %}
+                    {% trans %}New Post{% endtrans %}
+                {% endif %}
             </div>
 
             <div class="panel-body page-body">
                 <div class="col-md-12 col-sm-12 col-xs-12">
 
+                    {% if form.title %}
+                        {{ render_field(form.title, div_class="col-md-12 col-sm-12 col-xs-12") }}
+                    {% endif %}
+
                     <div class="form-group">
                         <div class="col-md-12 col-sm-12 col-xs-12">
                             <div class="editor-box">