Esempio n. 1
0
 def test_check_if_workspace_can_be_changed_return_true_if_workspace_is_public_and_allow_public_is_true(
         self):
     # A global workspace is public
     workspace = WorkspaceFixtures.create_global_workspace(TITLE_1)
     data = Data(template=Template(),
                 user_id='1',
                 dict_content=None,
                 title='title',
                 workspace=workspace)
     # Act
     result = workspace_api.check_if_workspace_can_be_changed(data, True)
     # Assert
     self.assertEquals(result, True)
Esempio n. 2
0
    def test_check_if_workspace_can_be_changed_return_true_if_workspace_is_none_and_allow_public_is_false(
            self):
        # A global workspace is public
        data = Data(template=Template(),
                    user_id='1',
                    dict_content=None,
                    title='title',
                    workspace=None)

        # Act
        result = workspace_api.check_if_workspace_can_be_changed(data, False)
        # Assert
        self.assertEquals(result, True)
 def _format_data_context(self, data_list):
     data_context_list = []
     for data in data_list:
         data_context_list.append(
             {
                 "data": data,
                 "can_read": True,
                 "can_write": True,
                 "is_owner": True,
                 "can_change_workspace": check_if_workspace_can_be_changed(data),
             }
         )
     return data_context_list
Esempio n. 4
0
    def test_check_if_workspace_can_be_changed_return_false_if_workspace_is_public_and_allow_public_is_false(
        self,
    ):
        # A global workspace is public
        workspace = WorkspaceFixtures.create_global_workspace(TITLE_1)
        data = Data(
            template=Template(),
            user_id="1",
            dict_content=None,
            title="title",
            workspace=workspace,
        )

        # Act
        result = workspace_api.check_if_workspace_can_be_changed(data, False)
        # Assert
        self.assertEquals(result, False)
    def get(self, request, *args, **kwargs):
        """Method GET

        Args:
            request:
            args:
            kwargs:

        Returns:
        """
        if self.administration:
            try:
                files = blob_api.get_all(request.user)

            except AccessControlError as ace:
                files = blob_api.get_none()
        else:
            files = blob_api.get_all_by_user(request.user)

        # Paginator
        page = request.GET.get("page", 1)
        results_paginator = ResultsPaginator.get_results(
            files, page, settings.FILE_PER_PAGE_PAGINATION
        )
        detailed_file = []
        for file in results_paginator:
            try:
                username = user_api.get_user_by_id(file.user_id).username
            except ObjectDoesNotExist:
                username = "******"
            detailed_file.append(
                {
                    "user": username,
                    "date": file.id.generation_time,
                    "file": file,
                    "url": blob_utils.get_blob_download_uri(file, request),
                    "can_change_workspace": check_if_workspace_can_be_changed(file),
                    "is_owner": True,
                }
            )

        # Add user_form for change owner
        user_form = UserForm(request.user)
        context = {
            "administration": self.administration,
            "number_total": files.count(),
            "user_data": detailed_file,
            "user_form": user_form,
            "document": dashboard_constants.FUNCTIONAL_OBJECT_ENUM.FILE.value,
            "template": dashboard_constants.DASHBOARD_FILES_TEMPLATE_TABLE,
            "menu": self.administration,
            "share_pid_button": "core_linked_records_app" in settings.INSTALLED_APPS,
            "pagination": _get_pagination_document(
                page,
                results_paginator,
                files.count(),
                settings.FILE_PER_PAGE_PAGINATION,
            ),
        }

        if self.administration:
            context.update(
                {
                    "action_form": ActionForm(
                        [
                            ("1", "Delete selected files"),
                            ("2", "Change owner of selected files"),
                        ]
                    )
                }
            )

        modals = [
            "core_main_app/user/workspaces/list/modals/assign_workspace.html",
            dashboard_constants.MODALS_COMMON_DELETE,
            dashboard_constants.MODALS_COMMON_CHANGE_OWNER,
        ]

        assets = {
            "css": dashboard_constants.CSS_COMMON,
            "js": [
                {
                    "path": "core_dashboard_common_app/user/js/init.raw.js",
                    "is_raw": True,
                },
                {
                    "path": dashboard_constants.JS_COMMON_FUNCTION_DELETE,
                    "is_raw": False,
                },
                {"path": dashboard_constants.JS_USER_SELECTED_ELEMENT, "is_raw": True},
                {
                    "path": "core_main_app/user/js/workspaces/list/modals/assign_workspace.js",
                    "is_raw": False,
                },
                {
                    "path": "core_main_app/user/js/workspaces/list/modals/assign_blob_workspace.raw.js",
                    "is_raw": True,
                },
                {
                    "path": dashboard_constants.JS_COMMON_FUNCTION_CHANGE_OWNER,
                    "is_raw": False,
                },
                {
                    "path": "core_dashboard_common_app/common/js/init_pagination.js",
                    "is_raw": False,
                },
            ],
        }

        if "core_file_preview_app" in INSTALLED_APPS:
            assets["js"].extend(
                [
                    {
                        "path": "core_file_preview_app/user/js/file_preview.js",
                        "is_raw": False,
                    }
                ]
            )
            assets["css"].append("core_file_preview_app/user/css/file_preview.css")
            modals.append("core_file_preview_app/user/file_preview_modal.html")

        if context["share_pid_button"]:
            modals.append("core_linked_records_app/user/sharing/data_detail/modal.html")

            assets["js"] += [
                {
                    "path": "core_main_app/user/js/sharing_modal.js",
                    "is_raw": False,
                },
                {
                    "path": "core_linked_records_app/user/js/sharing/common_list.js",
                    "is_raw": False,
                },
                {
                    "path": "core_linked_records_app/user/js/sharing/blob_list.js",
                    "is_raw": False,
                },
            ]

        # Admin
        if self.administration:
            assets["js"].append(
                {
                    "path": "core_dashboard_common_app/common/js/init_pagination.js",
                    "is_raw": False,
                }
            )
            assets["js"].append(
                {"path": dashboard_constants.JS_ADMIN_ACTION_DASHBOARD, "is_raw": True}
            )
            assets["js"].append(
                {"path": dashboard_constants.JS_ADMIN_COUNT_CHECK, "is_raw": True}
            )
            assets["js"].append(
                {"path": dashboard_constants.JS_ADMIN_RESET_CHECKBOX, "is_raw": True}
            )
            assets["js"].append(
                {"path": dashboard_constants.JS_ADMIN_SELECT_ALL, "is_raw": True}
            )
            assets["js"].append(
                {"path": dashboard_constants.JS_ADMIN_SELETED_ELEMENT, "is_raw": False}
            )
            assets["js"].append(
                {"path": dashboard_constants.JS_ADMIN_INIT_MENU, "is_raw": False}
            )

        return self.common_render(
            request, self.template, context=context, assets=assets, modals=modals
        )