45 lines
1.5 KiB
Python
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)
|