st-ten-1/src/ui/recipes_management/recipes_management.py

45 lines
1.5 KiB
Python
Raw Normal View History

2025-05-06 07:12:53 +00:00
from lib.db import Users
2022-07-19 09:59:00 +00:00
from ui.crud import Crud, Json_External_Dialog_Editor_Cell_Widget
from ui.recipe_spec_editor import Recipe_Spec_Editor
from ui.widget import Widget
class Recipes_Management(Widget):
def __init__(self):
super().__init__()
crud_aliases = {
2022-09-07 15:24:40 +00:00
# "id": "Id",
2022-07-19 09:59:00 +00:00
"name": "Ricetta",
"client": "Cliente",
"part_number": "N° disegno",
"spec": "Specifica",
2022-07-26 13:34:09 +00:00
"description": "Descrizione",
2022-07-19 09:59:00 +00:00
"archived": "Archiviata",
}
self.crud = Crud(
"recipes",
display_name="GESTIONE RICETTE",
2022-09-07 15:24:40 +00:00
# readonly=["id"],
readonly=False,
2022-07-19 09:59:00 +00:00
select=list(crud_aliases.keys()),
fields_aliases=crud_aliases,
autocomplete={
"archived": False,
},
2022-07-26 10:24:53 +00:00
widget_classes={"spec": lambda *args, **kwargs: Json_External_Dialog_Editor_Cell_Widget(Recipe_Spec_Editor, *args, **kwargs), },
2022-07-19 09:59:00 +00:00
)
self.layout().addWidget(self.crud, 0, 0, -1, -1)
2025-05-06 07:12:53 +00:00
def refresh(self):
"""Update the CRUD component based on current admin privileges"""
session = Users.get_session()
# Check if user has admin privileges (either permanent or temporary)
# Use session.is_admin instead of checking roles directly to be consistent with user.py
has_admin = session.is_admin
# Update CRUD readonly status
if has_admin:
self.crud.set_readonly(False)
else:
self.crud.set_readonly(True)