search: Use match-case instead of if-else
This commit is contained in:
parent
c31ecb93bb
commit
6e24bcfdab
|
@ -26,13 +26,11 @@ def paginate(data, page, per_page):
|
|||
|
||||
|
||||
def websearch_to_tsquery_multilang(search):
|
||||
return func.websearch_to_tsquery('french', search).op(
|
||||
'||')(func.websearch_to_tsquery('english', search))
|
||||
return func.websearch_to_tsquery('french', search).op('||')(func.websearch_to_tsquery('english', search))
|
||||
|
||||
|
||||
def to_tsvector_multilang(text):
|
||||
return func.to_tsvector('french', text).op(
|
||||
'||')(func.to_tsvector('english', text))
|
||||
return func.to_tsvector('french', text).op('||')(func.to_tsvector('english', text))
|
||||
|
||||
|
||||
@app.route('/rechercher/')
|
||||
|
@ -42,6 +40,7 @@ def search(page=1):
|
|||
results = list()
|
||||
if form.validate():
|
||||
tsquery = websearch_to_tsquery_multilang(form.q.data)
|
||||
|
||||
# Topics are sorted first in results
|
||||
topic_query = db.session.query(Topic).where(
|
||||
to_tsvector_multilang(Topic.title).bool_op('@@')(tsquery)
|
||||
|
@ -63,6 +62,7 @@ def search(page=1):
|
|||
Comment.id,
|
||||
Post.id
|
||||
)
|
||||
|
||||
if (form.date.data):
|
||||
topic_query = topic_query.where(
|
||||
Topic.date_created.cast(Date) == form.date.data
|
||||
|
@ -73,46 +73,48 @@ def search(page=1):
|
|||
comment_query = comment_query.where(
|
||||
Comment.date_created.cast(Date) == form.date.data
|
||||
)
|
||||
if (form.sortBy.data == "Date croissante"):
|
||||
topic_query = topic_query.order_by(
|
||||
Topic.date_created.asc()
|
||||
)
|
||||
program_query = program_query.order_by(
|
||||
Program.date_created.asc()
|
||||
)
|
||||
comment_query = comment_query.order_by(
|
||||
Post.date_created.asc()
|
||||
)
|
||||
elif (form.sortBy.data == "Date décroissante"):
|
||||
topic_query = topic_query.order_by(
|
||||
Topic.date_created.desc()
|
||||
)
|
||||
program_query = program_query.order_by(
|
||||
Program.date_created.desc()
|
||||
)
|
||||
comment_query = comment_query.order_by(
|
||||
Post.date_created.desc()
|
||||
)
|
||||
elif (form.sortBy.data == "Alphabétique croissant"):
|
||||
topic_query = topic_query.order_by(
|
||||
Topic.title.asc()
|
||||
)
|
||||
program_query = program_query.order_by(
|
||||
Program.name.asc()
|
||||
)
|
||||
comment_query = comment_query.order_by(
|
||||
Comment.text.asc()
|
||||
)
|
||||
elif (form.sortBy.data == "Alphabétique décroissant"):
|
||||
topic_query = topic_query.order_by(
|
||||
Topic.title.desc()
|
||||
)
|
||||
program_query = program_query.order_by(
|
||||
Program.name.desc()
|
||||
)
|
||||
comment_query = comment_query.order_by(
|
||||
Comment.text.desc()
|
||||
)
|
||||
|
||||
match form.sortBy.data:
|
||||
case "Date croissante":
|
||||
topic_query = topic_query.order_by(
|
||||
Topic.date_created.asc()
|
||||
)
|
||||
program_query = program_query.order_by(
|
||||
Program.date_created.asc()
|
||||
)
|
||||
comment_query = comment_query.order_by(
|
||||
Post.date_created.asc()
|
||||
)
|
||||
case "Date décroissante":
|
||||
topic_query = topic_query.order_by(
|
||||
Topic.date_created.desc()
|
||||
)
|
||||
program_query = program_query.order_by(
|
||||
Program.date_created.desc()
|
||||
)
|
||||
comment_query = comment_query.order_by(
|
||||
Post.date_created.desc()
|
||||
)
|
||||
case "Alphabétique croissant":
|
||||
topic_query = topic_query.order_by(
|
||||
Topic.title.asc()
|
||||
)
|
||||
program_query = program_query.order_by(
|
||||
Program.name.asc()
|
||||
)
|
||||
comment_query = comment_query.order_by(
|
||||
Comment.text.asc()
|
||||
)
|
||||
case "Alphabétique décroissant":
|
||||
topic_query = topic_query.order_by(
|
||||
Topic.title.desc()
|
||||
)
|
||||
program_query = program_query.order_by(
|
||||
Program.name.desc()
|
||||
)
|
||||
comment_query = comment_query.order_by(
|
||||
Comment.text.desc()
|
||||
)
|
||||
|
||||
results = list(topic_query) + list(program_query) + list(comment_query)
|
||||
|
||||
|
|
Loading…
Reference in New Issue