from flask import flash, redirect, render_template, url_for from flask_breadcrumbs import register_breadcrumb from flask_login import current_user, login_required, login_user from app.auth.forms import LoginForm from app.models import Corpus, User from sqlalchemy import or_ from . import bp @bp.route('/', methods=['GET', 'POST']) @register_breadcrumb(bp, '.', 'home') def index(): form = LoginForm() if form.validate_on_submit(): user = User.query.filter((User.email == form.user.data.lower()) | (User.username == form.user.data)).first() if user and user.verify_password(form.password.data): login_user(user, form.remember_me.data) flash('You have been logged in') return redirect(url_for('.dashboard')) flash('Invalid email/username or password', category='error') redirect(url_for('.index')) return render_template( 'main/index.html.j2', title='nopaque', form=form ) @bp.route('/faq') @register_breadcrumb(bp, '.faq', 'Frequently Asked Questions') def faq(): return render_template( 'main/faq.html.j2', title='Frequently Asked Questions' ) @bp.route('/dashboard') @register_breadcrumb(bp, '.dashboard', 'dashboardDashboard') @login_required def dashboard(): return render_template( 'main/dashboard.html.j2', title='Dashboard' ) # @bp.route('/user_manual') # @register_breadcrumb(bp, '.user_manual', 'helpUser manual') # def user_manual(): # return render_template('main/user_manual.html.j2', title='User manual') @bp.route('/news') @register_breadcrumb(bp, '.news', 'emailNews') def news(): return render_template( 'main/news.html.j2', title='News' ) @bp.route('/privacy_policy') @register_breadcrumb(bp, '.privacy_policy', 'Private statement (GDPR)') def privacy_policy(): return render_template( 'main/privacy_policy.html.j2', title='Privacy statement (GDPR)' ) @bp.route('/terms_of_use') @register_breadcrumb(bp, '.terms_of_use', 'Terms of Use') def terms_of_use(): return render_template( 'main/terms_of_use.html.j2', title='Terms of Use' ) @bp.route('/social-area') @register_breadcrumb(bp, '.social_area', 'groupSocial Area') @login_required def social_area(): corpora = Corpus.query.filter(Corpus.is_public == True, Corpus.user != current_user).all() users = User.query.filter(User.is_public == True, User.id != current_user.id).all() return render_template( 'main/social_area.html.j2', title='Social Area', corpora=corpora, users=users )