|
@@ -11,43 +11,19 @@
|
|
|
"""
|
|
|
from flask import Blueprint, flash, request
|
|
|
from flask.views import MethodView
|
|
|
-from flask_login import login_required, current_user
|
|
|
from flask_babelplus import gettext as _
|
|
|
+from flask_login import current_user, login_required
|
|
|
|
|
|
+from flaskbb.user.forms import (ChangeEmailForm, ChangePasswordForm,
|
|
|
+ ChangeUserDetailsForm, GeneralSettingsForm)
|
|
|
+from flaskbb.user.models import User
|
|
|
from flaskbb.utils.helpers import (get_available_languages,
|
|
|
get_available_themes, register_view,
|
|
|
render_template)
|
|
|
-from flaskbb.user.models import User
|
|
|
-from flaskbb.user.forms import (ChangePasswordForm, ChangeEmailForm,
|
|
|
- ChangeUserDetailsForm, GeneralSettingsForm)
|
|
|
-
|
|
|
|
|
|
user = Blueprint("user", __name__)
|
|
|
|
|
|
|
|
|
-@user.route("/<username>")
|
|
|
-def profile(username):
|
|
|
- user = User.query.filter_by(username=username).first_or_404()
|
|
|
-
|
|
|
- return render_template("user/profile.html", user=user)
|
|
|
-
|
|
|
-
|
|
|
-@user.route("/<username>/topics")
|
|
|
-def view_all_topics(username):
|
|
|
- page = request.args.get("page", 1, type=int)
|
|
|
- user = User.query.filter_by(username=username).first_or_404()
|
|
|
- topics = user.all_topics(page, current_user)
|
|
|
- return render_template("user/all_topics.html", user=user, topics=topics)
|
|
|
-
|
|
|
-
|
|
|
-@user.route("/<username>/posts")
|
|
|
-def view_all_posts(username):
|
|
|
- page = request.args.get("page", 1, type=int)
|
|
|
- user = User.query.filter_by(username=username).first_or_404()
|
|
|
- posts = user.all_posts(page, current_user)
|
|
|
- return render_template("user/all_posts.html", user=user, posts=posts)
|
|
|
-
|
|
|
-
|
|
|
class UserSettings(MethodView):
|
|
|
decorators = [login_required]
|
|
|
form = GeneralSettingsForm
|
|
@@ -134,13 +110,43 @@ class ChangeUserDetails(MethodView):
|
|
|
return render_template("user/change_user_details.html", form=form)
|
|
|
|
|
|
|
|
|
+class AllUserTopics(MethodView):
|
|
|
+
|
|
|
+ def get(self, username):
|
|
|
+ page = request.args.get("page", 1, type=int)
|
|
|
+ user = User.query.filter_by(username=username).first_or_404()
|
|
|
+ topics = user.all_topics(page, current_user)
|
|
|
+ return render_template("user/all_topics.html", user=user, topics=topics)
|
|
|
+
|
|
|
+
|
|
|
+class AllUserPosts(MethodView):
|
|
|
+
|
|
|
+ def get(self, username):
|
|
|
+ page = request.args.get("page", 1, type=int)
|
|
|
+ user = User.query.filter_by(username=username).first_or_404()
|
|
|
+ posts = user.all_posts(page, current_user)
|
|
|
+ return render_template("user/all_posts.html", user=user, posts=posts)
|
|
|
+
|
|
|
+
|
|
|
+class UserProfile(MethodView):
|
|
|
+
|
|
|
+ def get(self, username):
|
|
|
+ user = User.query.filter_by(username=username).first_or_404()
|
|
|
+ return render_template("user/profile.html", user=user)
|
|
|
+
|
|
|
+
|
|
|
+register_view(user, routes=['/settings/email'], view_func=ChangeEmail.as_view('change_email'))
|
|
|
register_view(user, routes=['/settings/general'], view_func=UserSettings.as_view('settings'))
|
|
|
register_view(
|
|
|
user, routes=['/settings/password'], view_func=ChangePassword.as_view('change_password')
|
|
|
)
|
|
|
-register_view(user, routes=['/settings/email'], view_func=ChangeEmail.as_view('change_email'))
|
|
|
register_view(
|
|
|
user,
|
|
|
routes=["/settings/user-details"],
|
|
|
view_func=ChangeUserDetails.as_view('change_user_details')
|
|
|
)
|
|
|
+register_view(user, routes=['/<username>/posts'], view_func=AllUserPosts.as_view('view_all_posts'))
|
|
|
+register_view(
|
|
|
+ user, routes=['/<username>/topics'], view_func=AllUserTopics.as_view('view_all_topics')
|
|
|
+)
|
|
|
+register_view(user, routes=['/<username>'], view_func=UserProfile.as_view('profile'))
|