Přdáno filtrování orgů podle rolí
Merge request reports
Activity
243 244 if filter.is_role_filter.data: 245 qr = sess.query(db.UserRole.user_id) 246 if filter.f_search_role is not None: 247 qr = qr.filter(db.UserRole.role.in_(filter.f_search_role)) 248 if filter.f_search_category is not None: 249 qr = qr.filter(or_(db.UserRole.category.in_(filter.f_search_category), db.UserRole.category == None)) 250 if filter.f_search_seq is not None: 251 qr = qr.filter(or_(db.UserRole.seq.in_(filter.f_search_seq), db.UserRole.seq == None)) 252 if filter.f_search_year is not None: 253 qr = qr.filter(or_(db.UserRole.year.in_(filter.f_search_year), db.UserRole.year == None)) 254 if filter.f_search_place is not None: 255 qr = qr.filter(or_( 256 db.UserRole.place_id.in_(db.place_descendant_cte(filter.f_search_place)), 257 db.UserRole.place_id.in_([x.place_id for x in db.get_place_parents(filter.f_search_place)]) 258 # Po n>3 hodinách v mo.db jsem dospěl k závěru, že to hezčeji neumím (neumím vyrobit place_parents_cte) added 1 commit
- c84ea734 - Zvýraznění rolí nalezených pomocí hledání orgů dle rolí
Přemýšlím, jaký smysl má hledat jak nadřazená, tak podřízená místa k tomu zadanému.
Jedno má sémantiku "najdi role, které pokrývají dané místo", druhé "najdi role, které jsou přiděleny v tomto podstromu míst".
To první je už vidět v hierarchii míst, tak přemýšlím, jestli tady nestačí umět to druhé.
Každopádně mi nedává smysl míchat obojí.
Z mého pohledu to smysl dává. Prostě se ptám na to, kdo má právo něco dělat s alespoň jedním místem v podstromu. To, jestli má právo na celý podstrom a nebo dokonce i něco navíc moc nehraje roli.
Navíc si to můžeš vyfiltrovat podle levelu přidělení a pak se to bude chovat jak libovolný z návrhů.
Souhlasím, že je to elegantní formalismus, kterým se dá popsat všechno, co potřebujeme. Ale nepřijde mi, že by to bylo dobré UI: jednak je v typických případech potřeba ručně naklikat množinu úrovní, jednak bych od toho jako uživatel vůbec nečekal, že se to chová zrovna takhle. Takže mi minimálně přijde nutný vysvětlující komentář.
Typický use case je třeba "jsem krajský garant a chci zjistit, jaké všechny role jsem přidělil ve svém kraji". Nebo "kdo všechno má práva k mé soutěži". Naopak si moc nedovedu představit, kdy bych se chtěl zeptat na tu obecnou kombinaci rolí v nadřazených a podřízených místech.
Přemýšlím, jestli by nebylo intuitivnější nabídnout dvě různá políčka na vyplnění místa: jedním bych si objednal, že hledám role ovlivňující dané místo; druhým role definované v podstromu daného místa. Výběr úrovně by to pouze doplňoval a v obvyklých případech by ho nebylo potřeba používat.
- Resolved by Martin Mareš
- Resolved by Martin Mareš
- Resolved by Martin Mareš
- Resolved by Martin Mareš
- Resolved by Martin Mareš
- Resolved by Martin Mareš
- Resolved by Martin Mareš
- Resolved by Martin Mareš
- Resolved by Martin Mareš
- Resolved by Martin Mareš
Jo jo, už to vypadá dobře (tedy viděl jsem tam ještě nějakou chybějící mezeru za dvojtečkou, ale to když tak opravím, až to budu mergeovat).
Zbývá vyřešit ten filtr na místa (viz komentář výše).