Skip to content
Snippets Groups Projects
Commit 15d4acd8 authored by Jiří Kalvoda's avatar Jiří Kalvoda
Browse files

Zvýraznění rolí nalezených pomocí hledání orgů dle rolí

Closes #225
parent 1b5ce60d
No related branches found
No related tags found
1 merge request!88Přdáno filtrování orgů podle rolí
......@@ -4,6 +4,7 @@ from flask_wtf import FlaskForm
import werkzeug.exceptions
import wtforms
from sqlalchemy import or_
import flask_sqlalchemy
from sqlalchemy.orm import joinedload, subqueryload
from wtforms import validators
......@@ -249,8 +250,7 @@ def org_orgs():
db.User.last_name.ilike(filter.f_search_name)
))
if filter.is_role_filter.data:
qr = sess.query(db.UserRole.user_id)
def query_filter_role(qr: flask_sqlalchemy.BaseQuery) -> flask_sqlalchemy.BaseQuery:
if filter.f_search_role is not None:
qr = qr.filter(db.UserRole.role.in_(filter.f_search_role))
if filter.f_search_category is not None:
......@@ -268,6 +268,11 @@ def org_orgs():
qr = qr.filter(db.UserRole.place_id.in_(
sess.query(db.Place.place_id).filter(db.Place.level.in_(filter.f_search_place_level))
))
return qr
if filter.is_role_filter.data:
qr = sess.query(db.UserRole.user_id)
qr = query_filter_role(qr)
q = q.filter(db.User.user_id.in_(qr))
q = q.order_by(db.User.user_id)
......@@ -275,9 +280,17 @@ def org_orgs():
(count, q) = filter.apply_limits(q, pagesize=50)
users = q.all()
marked_roles_id: Set[int] = set()
if filter.is_role_filter.data:
qmr = sess.query(db.UserRole.user_role_id).filter(db.UserRole.user_id.in_([i.user_id for i in users]))
qmr = query_filter_role(qmr)
marked_roles_id = set([i[0] for i in qmr.all()])
return render_template(
'org_orgs.html', users=users, count=count,
filter=filter,
marked_roles_id=marked_roles_id,
can_edit=rr.have_right(Right.edit_orgs),
can_add=rr.have_right(Right.add_orgs),
)
......
......@@ -85,7 +85,11 @@
{% if user.roles|count > 0 %}
<ul>
{% for role in user.roles %}
{% if role.user_role_id in marked_roles_id %}
<li><b>{{ role }}</b></li>
{% else %}
<li>{{ role }}</li>
{% endif %}
{%- endfor %}
</ul>
{% endif %}</td>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment