st-ten-1/src/ui/recipes_management/recipes_management.py
2025-05-06 09:12:53 +02:00

45 lines
1.5 KiB
Python

from lib.db import Users
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 = {
# "id": "Id",
"name": "Ricetta",
"client": "Cliente",
"part_number": "N° disegno",
"spec": "Specifica",
"description": "Descrizione",
"archived": "Archiviata",
}
self.crud = Crud(
"recipes",
display_name="GESTIONE RICETTE",
# readonly=["id"],
readonly=False,
select=list(crud_aliases.keys()),
fields_aliases=crud_aliases,
autocomplete={
"archived": False,
},
widget_classes={"spec": lambda *args, **kwargs: Json_External_Dialog_Editor_Cell_Widget(Recipe_Spec_Editor, *args, **kwargs), },
)
self.layout().addWidget(self.crud, 0, 0, -1, -1)
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)