sh4nks 10 лет назад
Родитель
Сommit
e12b26123b
4 измененных файлов с 45 добавлено и 18 удалено
  1. 13 7
      flaskbb/forum/views.py
  2. 1 1
      flaskbb/static/js/topic.js
  3. 18 7
      flaskbb/utils/helpers.py
  4. 13 3
      flaskbb/utils/populate.py

+ 13 - 7
flaskbb/forum/views.py

@@ -17,7 +17,8 @@ from flask.ext.login import login_required, current_user
 
 from flaskbb.extensions import db
 from flaskbb.utils.settings import flaskbb_config
-from flaskbb.utils.helpers import get_online_users, time_diff, render_template, format_quote
+from flaskbb.utils.helpers import (get_online_users, time_diff, render_template,
+                                   format_quote)
 from flaskbb.utils.permissions import (can_post_reply, can_post_topic,
                                        can_delete_topic, can_delete_post,
                                        can_edit_post, can_moderate)
@@ -160,7 +161,8 @@ def new_topic(forum_id, slug=None):
     form = NewTopicForm()
     if form.validate_on_submit():
         if request.form['button'] == 'preview':
-            return render_template("forum/new_topic.html", forum=forum, form=form, preview=form.content.data)
+            return render_template("forum/new_topic.html", forum=forum,
+                                   form=form, preview=form.content.data)
         else:
             topic = form.save(current_user, forum)
 
@@ -252,7 +254,7 @@ def merge_topic(old_id, new_id, old_slug=None, new_slug=None):
 
     # TODO: Bulk merge
 
-    if not can_moderate(user=current_user, forum=topic.forum):
+    if not can_moderate(user=current_user, forum=old_topic.forum):
         flash("Yo do not have the permissions to merge this topic", "danger")
         return redirect(old_topic.url)
 
@@ -286,7 +288,8 @@ def new_post(topic_id, slug=None):
     form = ReplyForm()
     if form.validate_on_submit():
         if request.form['button'] == 'preview':
-            return render_template("forum/new_post.html", topic=topic, form=form, preview=form.content.data)
+            return render_template("forum/new_post.html", topic=topic,
+                                   form=form, preview=form.content.data)
         else:
             post = form.save(current_user, topic)
             return view_post(post.id)
@@ -316,7 +319,9 @@ def reply_post(topic_id, post_id):
     form = ReplyForm()
     if form.validate_on_submit():
         if request.form['button'] == 'preview':
-            return render_template("forum/new_post.html", topic=topic, form=form, preview=form.content.data)
+            print form.content.data
+            return render_template("forum/new_post.html", topic=topic,
+                                   form=form, preview=form.content.data)
         else:
             form.save(current_user, topic)
             return redirect(post.topic.url)
@@ -348,7 +353,8 @@ def edit_post(post_id):
     form = ReplyForm()
     if form.validate_on_submit():
         if request.form['button'] == 'preview':
-            return render_template("forum/new_post.html", topic=post.topic, form=form, preview=form.content.data)
+            return render_template("forum/new_post.html", topic=post.topic,
+                                   form=form, preview=form.content.data)
         else:
             form.populate_obj(post)
             post.date_modified = datetime.datetime.utcnow()
@@ -394,7 +400,7 @@ def report_post(post_id):
     return render_template("forum/report_post.html", form=form)
 
 
-@forum.route("/post/<int:post_id>/format_quote", methods=["POST", "GET"])
+@forum.route("/post/<int:post_id>/raw", methods=["POST", "GET"])
 @login_required
 def raw_post(post_id):
     post = Post.query.filter_by(id=post_id).first_or_404()

+ 1 - 1
flaskbb/static/js/topic.js

@@ -7,7 +7,7 @@ $(document).ready(function () {
         event.preventDefault();
         var post_id = $(this).attr('data-post-id');
 
-        $.get('/post/' + post_id + '/format_quote', function(text) {
+        $.get('/post/' + post_id + '/raw', function(text) {
             var $contents = $('.reply-content textarea#content');
             $contents.val(($contents.val() + '\n' + text).trim() + '\n');
             $contents.selectionStart = $contents.selectionEnd = $contents.val().length;

+ 18 - 7
flaskbb/utils/helpers.py

@@ -259,9 +259,9 @@ def get_online_users(guest=False):
     minutes = range_method(flaskbb_config['ONLINE_LAST_MINUTES'])
     if guest:
         return redis_store.sunion(['online-guests/%d' % (current - x)
-                             for x in minutes])
+                                   for x in minutes])
     return redis_store.sunion(['online-users/%d' % (current - x)
-                         for x in minutes])
+                               for x in minutes])
 
 
 def crop_title(title):
@@ -281,6 +281,7 @@ def render_markup(text):
     :param text: The text that should be rendered as bbcode
     """
     if flaskbb_config['MARKUP_TYPE'] == 'bbcode':
+        print render_bbcode(text)
         return render_bbcode(text)
     elif flaskbb_config['MARKUP_TYPE'] == 'markdown':
         return render_markdown(text, extras=['tables'])
@@ -357,11 +358,21 @@ def time_delta_format(dt, default=None):
 
 
 def format_quote(post):
+    """Returns a formatted quote depending on the markup language.
+
+    :param post: The quoted post."""
+
     if flaskbb_config['MARKUP_TYPE'] == 'markdown':
         profile_url = url_for('user.profile', username=post.username)
-        content = '\n> '.join(post.content.strip().split('\n'))
-        return 'Quote from [{post.username}]({profile_url}):\n> {content}\n'.format(**locals())
+        content = "\n> ".join(post.content.strip().split('\n'))
+        quote = "**[{post.username}]({profile_url}) wrote:**\n> {content}\n".\
+                format(post=post, profile_url=profile_url, content=content)
+
+        return quote
     else:
-        profile_url = url_for('user.profile', username=post.username, _external=True)
-        return 'Quote from [url={profile_url}]{post.username}[/url]:\n[quote]{post.content}[/quote]\n'.\
-            format(**locals())
+        profile_url = url_for('user.profile', username=post.username,
+                              _external=True)
+        quote = '[b][url={profile_url}]{post.username}[/url] wrote:[/b][quote]{post.content}[/quote]\n'.\
+                format(post=post, profile_url=profile_url)
+
+        return quote

+ 13 - 3
flaskbb/utils/populate.py

@@ -8,14 +8,15 @@
     :copyright: (c) 2014 by the FlaskBB Team.
     :license: BSD, see LICENSE for more details.
 """
-from datetime import datetime
-
 from flaskbb.management.models import Setting, SettingsGroup
 from flaskbb.user.models import User, Group
 from flaskbb.forum.models import Post, Topic, Forum, Category
 
 
 def delete_settings_from_fixture(fixture):
+    """
+    Deletes the settings from a fixture from the database.
+    """
     for settingsgroup in fixture:
         group = SettingsGroup.query.filter_by(key=settingsgroup[0]).first()
 
@@ -26,6 +27,9 @@ def delete_settings_from_fixture(fixture):
 
 
 def create_settings_from_fixture(fixture):
+    """
+    Inserts the settings from a fixture into the database.
+    """
     for settingsgroup in fixture:
         group = SettingsGroup(
             key=settingsgroup[0],
@@ -50,6 +54,9 @@ def create_settings_from_fixture(fixture):
 
 
 def create_default_settings():
+    """
+    Creates the default settings
+    """
     from flaskbb.fixtures.settings import fixture
     create_settings_from_fixture(fixture)
 
@@ -111,7 +118,10 @@ def create_welcome_forum():
 
 
 def create_test_data():
-
+    """
+    Creates 5 users, 2 categories and 2 forums in each category. It also opens
+    a new topic topic in each forum with a post.
+    """
     create_default_groups()
     create_default_settings()