Add support for file attachments in equipment status changes

- Introduced functionality for uploading and managing attachments in the ChangeEquipmentStatus module.
- Added new endpoints for uploading and deleting attachments, as well as for downloading them.
- Updated the ChangeEquipmentStatusService to handle attachment storage and retrieval using the new storage service methods.
- Enhanced the ChangeEquipmentStatusEdit and ChangeEquipmentStatusShow components to support attachment input and display.
- Removed deprecated attachment handling from Equipment module to streamline functionality.
- Updated Prisma schema to reflect changes in attachment management.
This commit is contained in:
Первов Артем
2026-04-21 12:19:49 +03:00
parent d572647772
commit b1aefae2fa
25 changed files with 669 additions and 430 deletions

View File

@@ -1,10 +1,12 @@
import { createTheme } from '@mui/material/styles';
import { useMemo } from 'react';
import { Admin, Resource } from 'react-admin';
import polyglotI18nProvider from 'ra-i18n-polyglot';
import { authProvider } from './auth/authProvider';
import { dataProvider } from './dataProvider';
import { useEmbeddedParentTheme } from './embed/useEmbeddedParentTheme';
import { messagesRu } from './i18n/ru';
import { EmbeddedActiveEquipmentPage } from './pages/EmbeddedActiveEquipmentPage';
import { buildToirMuiTheme } from './theme/toirMuiTheme';
import { EquipmentCreate } from './resources/equipment/EquipmentCreate';
import { EquipmentEdit } from './resources/equipment/EquipmentEdit';
import { EquipmentList } from './resources/equipment/EquipmentList';
@@ -17,17 +19,27 @@ import { EquipmentStatusChangeShow } from './resources/equipment-status-change/E
function ToirAdmin() {
const paletteMode = useEmbeddedParentTheme();
const theme = useMemo(
() =>
createTheme({
palette: { mode: paletteMode },
}),
() => buildToirMuiTheme(paletteMode),
[paletteMode],
);
const i18nProvider = useMemo(
() =>
polyglotI18nProvider(() => messagesRu, 'ru', {
allowMissing: true,
}),
[],
);
return (
<Admin dataProvider={dataProvider} authProvider={authProvider} theme={theme}>
<Admin
dataProvider={dataProvider}
authProvider={authProvider}
theme={theme}
i18nProvider={i18nProvider}
>
<Resource
name="equipment"
options={{ label: 'Оборудование' }}
list={EquipmentList}
create={EquipmentCreate}
edit={EquipmentEdit}
@@ -35,6 +47,7 @@ function ToirAdmin() {
/>
<Resource
name="status-changes"
options={{ label: 'Акты' }}
list={EquipmentStatusChangeList}
create={EquipmentStatusChangeCreate}
edit={EquipmentStatusChangeEdit}