Commit 0b8c7cfb authored by Mickaël Desfrênes's avatar Mickaël Desfrênes
Browse files

add recycle bin

parent c507ed36
Loading
Loading
Loading
Loading
+32 −3
Original line number Diff line number Diff line
@@ -2264,9 +2264,38 @@ def collection_stats(user: User, collection_id: int) -> dict:
    }


@_rpc_groups(["Utilities"])
@_rpc_groups(["Utilities", "Collections", "Resources"])
def recycle_bin(user: User, project_id: int) -> List[Dict]:
    """
    Gets deleted elements
    Gets deleted elements:

    - object type
    - label
    - id
    """
    pass
    _check_project_permission(user, project_id, PERM_COLLECTION_READ)
    _check_project_permission(user, project_id, PERM_RESOURCE_READ)
    results = []
    for collection_instance in Collection.objects.filter(
        deleted_at__isnull=False, project_id=project_id
    ):
        results.append(
            {
                "object_type": "collection",
                "id": collection_instance.pk,
                "label": collection_instance.title,
                "deleted_at": collection_instance.deleted_at.isoformat(),
            }
        )
    for resource_instance in Resource.objects.filter(
        deleted_at__isnull=False, ptr_project_id=project_id
    ):
        results.append(
            {
                "object_type": "resource",
                "id": resource_instance.pk,
                "label": resource_instance.title,
                "deleted_at": resource_instance.deleted_at.isoformat(),
            }
        )
    return results
+9 −0
Original line number Diff line number Diff line
@@ -107,3 +107,12 @@ class ServiceTestCase(TestCase):
                parent_id=self.test_project_root_collection.pk,
                order_by="pouet",
            )

    def test_recycle_bin(self):
        col = methods.add_collection(
            self.test_user, "delete me", self.test_project.root_collection.pk
        )
        methods.delete_collection(self.test_user, col["id"])
        self.assertEqual(
            len(methods.recycle_bin(self.test_user, self.test_project.pk)), 1
        )