diff --git a/rsconcept/backend/apps/oss/serializers/data_access.py b/rsconcept/backend/apps/oss/serializers/data_access.py index 45957698..ac038843 100644 --- a/rsconcept/backend/apps/oss/serializers/data_access.py +++ b/rsconcept/backend/apps/oss/serializers/data_access.py @@ -198,7 +198,9 @@ class UpdateOperationSerializer(serializers.Serializer): 'target': msg.operationNotInOSS() }) - if 'parent' in attrs['item_data'] and attrs['item_data']['parent'].oss_id != oss.pk: + if 'parent' in attrs['item_data'] and \ + attrs['item_data']['parent'] is not None and \ + attrs['item_data']['parent'].oss_id != oss.pk: raise serializers.ValidationError({ 'parent': msg.parentNotInOSS() }) diff --git a/rsconcept/frontend/src/app/application-layout.tsx b/rsconcept/frontend/src/app/application-layout.tsx index 433adedc..9bee20b8 100644 --- a/rsconcept/frontend/src/app/application-layout.tsx +++ b/rsconcept/frontend/src/app/application-layout.tsx @@ -9,7 +9,7 @@ import { useDialogsStore } from '@/stores/dialogs'; import { NavigationState } from './navigation/navigation-context'; import { Footer } from './footer'; import { GlobalDialogs } from './global-dialogs'; -import { GlobalLoader } from './global-Loader'; +import { GlobalLoader } from './global-loader1'; import { ToasterThemed } from './global-toaster'; import { GlobalTooltips } from './global-tooltips'; import { MutationErrors } from './mutation-errors'; diff --git a/rsconcept/frontend/src/app/global-dialogs.tsx b/rsconcept/frontend/src/app/global-dialogs.tsx index 6893984f..9b62de62 100644 --- a/rsconcept/frontend/src/app/global-dialogs.tsx +++ b/rsconcept/frontend/src/app/global-dialogs.tsx @@ -113,6 +113,11 @@ const DlgUploadRSForm = React.lazy(() => const DlgGraphParams = React.lazy(() => import('@/features/rsform/dialogs/dlg-graph-params').then(module => ({ default: module.DlgGraphParams })) ); +const DlgCreateBlock = React.lazy(() => + import('@/features/oss/dialogs/dlg-create-block').then(module => ({ + default: module.DlgCreateBlock + })) +); export const GlobalDialogs = () => { const active = useDialogsStore(state => state.active); @@ -127,6 +132,8 @@ export const GlobalDialogs = () => { return ; case DialogType.CREATE_OPERATION: return ; + case DialogType.CREATE_BLOCK: + return ; case DialogType.DELETE_CONSTITUENTA: return ; case DialogType.EDIT_EDITORS: diff --git a/rsconcept/frontend/src/app/global-Loader.tsx b/rsconcept/frontend/src/app/global-loader1.tsx similarity index 100% rename from rsconcept/frontend/src/app/global-Loader.tsx rename to rsconcept/frontend/src/app/global-loader1.tsx diff --git a/rsconcept/frontend/src/app/mutation-errors.tsx b/rsconcept/frontend/src/app/mutation-errors.tsx index beb83acb..bbaa47e0 100644 --- a/rsconcept/frontend/src/app/mutation-errors.tsx +++ b/rsconcept/frontend/src/app/mutation-errors.tsx @@ -1,3 +1,5 @@ +import clsx from 'clsx'; + import { useMutationErrors } from '@/backend/use-mutation-errors'; import { Button } from '@/components/control'; import { DescribeError } from '@/components/info-error'; @@ -20,9 +22,23 @@ export function MutationErrors() { return (
-
+

Ошибка при обработке

-
+