Add tool numgen

This commit is contained in:
knedlik
2025-12-18 22:22:26 +01:00
parent 9435399096
commit 37d1daa052
8 changed files with 168 additions and 179 deletions

124
app/pages/groups.py Normal file
View File

@@ -0,0 +1,124 @@
import streamlit as st
from auth_runtime import require_login
# from ui.sidebar import build_sidebar
from pathlib import Path
from tools.load_css import load_css
from app_db.app_db import get_list, send_cmd
from tools.numgen import get_num
DASH_NAME = Path(__file__).stem
load_css()
st.set_page_config(page_title="Co-App Benutzer", page_icon=":material/person:", layout="wide", initial_sidebar_state="collapsed")
authenticator = require_login()
st.session_state["authenticator"] = authenticator
def sidebar():
fullname = st.session_state.get("fullname")
role_text = st.session_state.get("role_text")
with st.sidebar:
st.logo("app/images/GMN_Logo_neu_rgb.png", size="small")
st.markdown(f"**{fullname}** ({role_text})")
col1, col2 = st.columns([2,2])
with col1:
authenticator.logout("Logout")
with col2:
if st.button("Home", use_container_width=True, icon=":material/home:"):
st.switch_page("pages/home.py")
groups()
def groups():
if "selected_user_id" not in st.session_state:
st.session_state.selected_user_id = None
if st.button(label="test"):
st.info(get_num("numgen_group", step=10))
#--------------------------------------------------------------------------------------------------
# Rollenverwaltung
#--------------------------------------------------------------------------------------------------
# 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_role, col_create_role, col_modify_role, col_delete_role = st.columns([3,2,2,2], vertical_alignment="bottom")
# with col_find_role:
# 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
# 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 __name__ == "__main__":
sidebar()