Ethnicity / Race (/admin/races) es la librería de HR con los códigos de raza. El título de la pantalla coincide con el menú; el encabezado legado es Races y el breadcrumb es Manage Races. Cada fila tiene Code, Description y una Classification opcional.
Permisos: FunctionId RACE (34), menú HR → Libraries → Ethnicity / Race (function.url = race). View abre la pantalla; Add el botón New; Edit y Delete las acciones de fila y el borrado masivo.
Disposición de la pantalla
Figura: listado FoodHub — New en la cabecera; tarjeta con Search races…, Export, columnas Code, Description y Classification ordenables, ⋮ por fila, checkboxes y paginación.
| Región | Qué ves |
|---|---|
| Page toolbar | Título Ethnicity / Race, subtítulo Manage Races, New (Add) a la derecha y el icono ? (este artículo). |
| Data card | Búsqueda, Export, encabezados, checkboxes (permiso Delete), barra bulk, Sort by en móvil y paginación. No hay popover Filter. |
| Modal | Superficie B sobre el listado (?create=1). Cancel y Save van en el header. |
Orden por defecto: Description ascendente.
Comportamiento del listado
- Search — placeholder Search races…. La petición sale con el término vacío o con al menos 3 caracteres, y busca en Code o Description.
- Export — Copy, Excel y CSV de la página actual.
- Sort — Code, Description, Classification (móvil: combobox Sort by).
- Checkboxes + barra bulk — cuando Delete está permitido.
- New — abre New race:.
- ⋮ de fila — Edit · Delete según permiso.
Modal — alta y edición
- New race: — Code y Description obligatorios. Classification es opcional (el label del origen no es required).
- Update Race:
`{description}`— los mismos campos, hidratados desde la fila. - Code o description vacíos muestran This field is required.
- Un code ya usado por otra fila muestra The race code is in use, please try entering another one.
- Toast de guardado: The operation was successful. La API escribe un ApplicationLog de categoría Race.
Borrado
Una raza vinculada a un empleado no se puede borrar. El mensaje de una fila es The race could not be deleted, because it is related to a employee. El bulk que no borra nada usa The races could not be deleted, because they are associated with a employee. Un bulk parcial deja las filas en uso y muestra la frase de éxito parcial del origen.