Modify the order of the sidebar, remove tabs from users
This commit is contained in:
0
app/pages/roles.py
Normal file
0
app/pages/roles.py
Normal file
@@ -350,86 +350,86 @@ def user():
|
||||
if "selected_user_id" not in st.session_state:
|
||||
st.session_state.selected_user_id = None
|
||||
|
||||
tab_user, tab_role, tab_permission = st.tabs(["Benutzer", "Rollen", "Berechtigungen"])
|
||||
# tab_user, tab_role, tab_permission = st.tabs(["Benutzer", "Rollen", "Berechtigungen"])
|
||||
|
||||
#--------------------------------------------------------------------------------------------------
|
||||
# Benutzerverwaltung
|
||||
#--------------------------------------------------------------------------------------------------
|
||||
|
||||
with tab_user:
|
||||
# with tab_user:
|
||||
|
||||
|
||||
|
||||
df = get_list("""
|
||||
select
|
||||
u.id,
|
||||
u.username,
|
||||
u.firstname,
|
||||
u.lastname,
|
||||
u.role_id || ' | ' || r.role_text as role,
|
||||
u.new_pwd,
|
||||
u.active
|
||||
from
|
||||
users u
|
||||
left join roles r
|
||||
on u.role_id = r.role_id
|
||||
""")
|
||||
df = get_list("""
|
||||
select
|
||||
u.id,
|
||||
u.username,
|
||||
u.firstname,
|
||||
u.lastname,
|
||||
u.role_id || ' | ' || r.role_text as role,
|
||||
u.new_pwd,
|
||||
u.active
|
||||
from
|
||||
users u
|
||||
left join roles r
|
||||
on u.role_id = r.role_id
|
||||
""")
|
||||
|
||||
|
||||
|
||||
col_find_user, col_create_user, col_modify_user, col_delete_user = st.columns([3,2,2,2], vertical_alignment="bottom")
|
||||
col_find_user, col_create_user, col_modify_user, col_delete_user = st.columns([3,2,2,2], vertical_alignment="bottom")
|
||||
|
||||
with col_find_user:
|
||||
txt_search = st.text_input(label="Suche", label_visibility="hidden", placeholder="Benutzer, Vorname, ...", icon=":material/search:")
|
||||
|
||||
with col_create_user:
|
||||
if st.button(label="Benutzer anlegen", use_container_width=True, icon=":material/person_add:"):
|
||||
dialog_create_user()
|
||||
if "save_msg" in st.session_state:
|
||||
st.toast(st.session_state.save_msg)
|
||||
del st.session_state.save_msg
|
||||
|
||||
with col_modify_user:
|
||||
if st.button(label="Benutzer bearbeiten", use_container_width=True, icon=":material/person:"):
|
||||
if not st.session_state.selected_user_id is None:
|
||||
dialog_modify_user(st.session_state.selected_user_id)
|
||||
else:
|
||||
st.toast("❌ Bitte erst eine Zeile auswählen")
|
||||
if "save_msg" in st.session_state:
|
||||
st.toast(st.session_state.save_msg)
|
||||
del st.session_state.save_msg
|
||||
with col_find_user:
|
||||
txt_search = st.text_input(label="Suche", label_visibility="hidden", placeholder="Benutzer, Vorname, ...", icon=":material/search:")
|
||||
|
||||
with col_create_user:
|
||||
if st.button(label="Benutzer anlegen", use_container_width=True, icon=":material/person_add:"):
|
||||
dialog_create_user()
|
||||
if "save_msg" in st.session_state:
|
||||
st.toast(st.session_state.save_msg)
|
||||
del st.session_state.save_msg
|
||||
|
||||
with col_modify_user:
|
||||
if st.button(label="Benutzer bearbeiten", use_container_width=True, icon=":material/person:"):
|
||||
if not st.session_state.selected_user_id is None:
|
||||
dialog_modify_user(st.session_state.selected_user_id)
|
||||
else:
|
||||
st.toast("❌ Bitte erst eine Zeile auswählen")
|
||||
if "save_msg" in st.session_state:
|
||||
st.toast(st.session_state.save_msg)
|
||||
del st.session_state.save_msg
|
||||
|
||||
with col_delete_user:
|
||||
if st.button(label="Benutzer löschen", use_container_width=True, icon=":material/person_remove:"):
|
||||
if not st.session_state.selected_user_id is None:
|
||||
dialog_delete_user(st.session_state.selected_user_id)
|
||||
else:
|
||||
st.toast("❌ Bitte erst eine Zeile auswählen")
|
||||
if "delete_msg" in st.session_state:
|
||||
st.toast(st.session_state.delete_msg)
|
||||
del st.session_state.delete_msg
|
||||
with col_delete_user:
|
||||
if st.button(label="Benutzer löschen", use_container_width=True, icon=":material/person_remove:"):
|
||||
if not st.session_state.selected_user_id is None:
|
||||
dialog_delete_user(st.session_state.selected_user_id)
|
||||
else:
|
||||
st.toast("❌ Bitte erst eine Zeile auswählen")
|
||||
if "delete_msg" in st.session_state:
|
||||
st.toast(st.session_state.delete_msg)
|
||||
del st.session_state.delete_msg
|
||||
|
||||
|
||||
|
||||
|
||||
if txt_search.strip():
|
||||
txt_search_norm = txt_search.strip().lower()
|
||||
mask = (
|
||||
df["username"].fillna("").str.lower().str.contains(txt_search_norm)
|
||||
| df["firstname"].fillna("").str.lower().str.contains(txt_search_norm)
|
||||
| df["lastname"].fillna("").str.lower().str.contains(txt_search_norm)
|
||||
)
|
||||
df_view = df.loc[mask].copy()
|
||||
else:
|
||||
df_view = df.copy()
|
||||
|
||||
event = st.dataframe(df_view,key="data", on_select="rerun", selection_mode="single-row")
|
||||
rows = event.selection.rows
|
||||
if rows:
|
||||
row_idx = rows[0]
|
||||
st.session_state.selected_user_id = int(df_view.iloc[row_idx]["id"])
|
||||
else:
|
||||
st.session_state.selected_user_id = None
|
||||
if txt_search.strip():
|
||||
txt_search_norm = txt_search.strip().lower()
|
||||
mask = (
|
||||
df["username"].fillna("").str.lower().str.contains(txt_search_norm)
|
||||
| df["firstname"].fillna("").str.lower().str.contains(txt_search_norm)
|
||||
| df["lastname"].fillna("").str.lower().str.contains(txt_search_norm)
|
||||
)
|
||||
df_view = df.loc[mask].copy()
|
||||
else:
|
||||
df_view = df.copy()
|
||||
|
||||
event = st.dataframe(df_view,key="data", on_select="rerun", selection_mode="single-row")
|
||||
rows = event.selection.rows
|
||||
if rows:
|
||||
row_idx = rows[0]
|
||||
st.session_state.selected_user_id = int(df_view.iloc[row_idx]["id"])
|
||||
else:
|
||||
st.session_state.selected_user_id = None
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user