diff --git a/loko/assets/permissions.py b/loko/assets/permissions.py index 3adcbe2..45fdf54 100644 --- a/loko/assets/permissions.py +++ b/loko/assets/permissions.py @@ -16,32 +16,32 @@ ASSET_EDITABLE_FIELDS_BY_ROLE = { 'admin': [ 'code', 'external_reference', 'name_fr', 'name_nl', 'status', 'model', 'category', 'serial_number', 'installation_date', 'brand', 'warranty_duration', - 'last_inspection_date', 'funding_program', 'geom', 'lon', 'lat', + 'last_inspection_date', 'funding_program', 'note', 'geom', 'lon', 'lat', 'location_id', 'intersection_id', ], 'manager': [ 'code', 'external_reference', 'name_fr', 'name_nl', 'status', 'model', 'category', 'serial_number', 'installation_date', 'brand', 'warranty_duration', - 'last_inspection_date', 'funding_program', 'geom', 'lon', 'lat', + 'last_inspection_date', 'funding_program', 'note', 'geom', 'lon', 'lat', 'location_id', 'intersection_id', ], 'controller': [ 'code', 'external_reference', 'name_fr', 'name_nl', 'status', 'model', 'category', 'serial_number', 'installation_date', 'brand', 'warranty_duration', - 'last_inspection_date', 'funding_program', 'geom', 'lon', 'lat', + 'last_inspection_date', 'funding_program', 'note', 'geom', 'lon', 'lat', 'location_id', 'intersection_id', ], 'external_manager': [ - 'name_fr', 'name_nl', 'external_reference', 'category', 'brand', 'serial_number', 'funding_program' + 'name_fr', 'name_nl', 'external_reference', 'category', 'brand', 'serial_number', 'funding_program', 'note', ], - 'technician': ['name_fr', 'name_nl', 'external_reference', 'category', 'brand', 'serial_number', 'funding_program'], + 'technician': ['name_fr', 'name_nl', 'external_reference', 'category', 'brand', 'serial_number', 'funding_program', 'note'], 'operator': [], 'observer': [], 'viewer': [], 'editor': [ 'code', 'external_reference', 'name_fr', 'name_nl', 'status', 'model', 'category', 'serial_number', 'installation_date', 'brand', 'warranty_duration', - 'last_inspection_date', 'funding_program', 'geom', 'lon', 'lat', + 'last_inspection_date', 'funding_program', 'note', 'geom', 'lon', 'lat', 'location_id', 'intersection_id', ], } @@ -588,6 +588,10 @@ def get_allowed_update_fields_for_asset(user, asset): role_fields = ASSET_EDITABLE_FIELDS_BY_ROLE.get(role.name, []) allowed_fields.update(role_fields) + # Superuser fallback if no explicit roles configured + if getattr(user, 'is_superuser', False) and not allowed_fields: + allowed_fields.update(ASSET_EDITABLE_FIELDS_BY_ROLE.get('admin', [])) + # Check validation permission if can_validate_asset(user, asset): allowed_fields.add('validation_status') diff --git a/loko/assets/templates/assets/detail_generic.html b/loko/assets/templates/assets/detail_generic.html index 8ca6ca7..9cb723e 100644 --- a/loko/assets/templates/assets/detail_generic.html +++ b/loko/assets/templates/assets/detail_generic.html @@ -534,6 +534,19 @@ + + +