diff --git a/oarepo_ui/resources/components/__init__.py b/oarepo_ui/resources/components/__init__.py index d0f80dce..70e77ecf 100644 --- a/oarepo_ui/resources/components/__init__.py +++ b/oarepo_ui/resources/components/__init__.py @@ -4,6 +4,7 @@ from .communities import AllowedCommunitiesComponent from .files import FilesComponent from .permissions import PermissionsComponent +from .files_locked import FilesLockedComponent __all__ = ( "UIResourceComponent", @@ -12,4 +13,5 @@ "BabelComponent", "FilesComponent", "AllowedCommunitiesComponent", + "FilesLockedComponent", ) diff --git a/oarepo_ui/resources/components/files_locked.py b/oarepo_ui/resources/components/files_locked.py new file mode 100644 index 00000000..d8900bd7 --- /dev/null +++ b/oarepo_ui/resources/components/files_locked.py @@ -0,0 +1,34 @@ +from .base import UIResourceComponent +from typing import Dict +from flask_principal import Identity + + +class FilesLockedComponent(UIResourceComponent): + """Add files locked to form config, to be able to use the same logic as in RDM""" + def before_ui_create( + self, + *, + data: Dict, + identity: Identity, + form_config: Dict, + args: Dict, + view_args: Dict, + ui_links: Dict, + extra_context: Dict, + **kwargs, + ) -> None: + form_config["filesLocked"] = False + + def before_ui_edit( + self, + *, + data: Dict, + identity: Identity, + form_config: Dict, + args: Dict, + view_args: Dict, + ui_links: Dict, + extra_context: Dict, + **kwargs, + ) -> None: + form_config["filesLocked"] = True diff --git a/oarepo_ui/resources/resource.py b/oarepo_ui/resources/resource.py index a182fe6d..3a0ee5e0 100644 --- a/oarepo_ui/resources/resource.py +++ b/oarepo_ui/resources/resource.py @@ -522,7 +522,6 @@ def edit(self): ) form_config["ui_model"] = self.ui_model - form_config["filesLocked"] = True ui_links = self.expand_detail_links(identity=g.identity, record=api_record) @@ -594,7 +593,6 @@ def create(self): ) form_config["ui_model"] = self.ui_model - form_config["filesLocked"] = False extra_context = dict()