diff --git a/app/forms/search.py b/app/forms/search.py index 0ef2ce8..576d8ea 100644 --- a/app/forms/search.py +++ b/app/forms/search.py @@ -7,6 +7,8 @@ from app.models.forum import Forum # TODO: compléter le formulaire de recherche avancée class SearchForm(FlaskForm): + class Meta: + csrf = False q = StringField('Rechercher', validators=[InputRequired()]) diff --git a/app/routes/search.py b/app/routes/search.py index 633edb1..0267c81 100644 --- a/app/routes/search.py +++ b/app/routes/search.py @@ -1,9 +1,18 @@ -from app import app -from app.forms.search import AdvancedSearchForm +from app import app, db +from app.forms.search import AdvancedSearchForm, SearchForm +from app.models.post import Post from app.utils.render import render +from sqlalchemy import text +from flask import request @app.route('/rechercher') def search(): - form = AdvancedSearchForm() - return render('search.html', form=form) + form = AdvancedSearchForm(request.args) + results = list() + if form.validate(): + # Search stuff + req = text("""SELECT id, text, thread_id, ts_rank_cd(textsearch, query) AS rank FROM comment, websearch_to_tsquery_multilang(:keywords) query, to_tsvector_multilang(text) textsearch WHERE query @@ textsearch ORDER BY rank DESC;""") + results = list(db.session.execute(req, {'keywords': '%' + form.q.data + '%'})); + + return render('search.html', form=form, results=results) diff --git a/app/templates/search.html b/app/templates/search.html index 0d57329..79eedb8 100644 --- a/app/templates/search.html +++ b/app/templates/search.html @@ -7,6 +7,7 @@