Sync deleted bookmarks
authorRadek Czajka <rczajka@rczajka.pl>
Tue, 16 Jun 2026 11:35:34 +0000 (13:35 +0200)
committerRadek Czajka <rczajka@rczajka.pl>
Tue, 16 Jun 2026 11:35:34 +0000 (13:35 +0200)
src/bookmarks/api/views.py
src/bookmarks/views.py

index 315624f..6aeb82d 100644 (file)
@@ -3,6 +3,7 @@ from api.utils import never_cache
 from django.db.models import Q
 from django.http import Http404, JsonResponse
 from django.shortcuts import render, get_object_or_404
 from django.db.models import Q
 from django.http import Http404, JsonResponse
 from django.shortcuts import render, get_object_or_404
+from django.utils.timezone import now
 from django.views.decorators import cache
 import catalogue.models
 from wolnelektury.utils import is_ajax
 from django.views.decorators import cache
 import catalogue.models
 from wolnelektury.utils import is_ajax
@@ -111,3 +112,8 @@ class BookmarkView(RetrieveUpdateDestroyAPIView):
             return models.Bookmark.objects.filter(q)
         else:
             return self.request.user.bookmark_set.all()
             return models.Bookmark.objects.filter(q)
         else:
             return self.request.user.bookmark_set.all()
+
+    def perform_destroy(self, instance):
+        instance.deleted = True
+        instance.updated_at = now()
+        instance.save()
index 50390df..c2b40e1 100644 (file)
@@ -1,5 +1,6 @@
 from django.http import Http404, JsonResponse
 from django.shortcuts import render, get_object_or_404
 from django.http import Http404, JsonResponse
 from django.shortcuts import render, get_object_or_404
+from django.utils.timezone import now
 from django.views.decorators import cache
 import catalogue.models
 from wolnelektury.utils import is_ajax
 from django.views.decorators import cache
 import catalogue.models
 from wolnelektury.utils import is_ajax
@@ -41,6 +42,7 @@ def bookmarks(request):
             for bm in models.Bookmark.objects.filter(
                     user=request.user,
                     book=book,
             for bm in models.Bookmark.objects.filter(
                     user=request.user,
                     book=book,
+                    deleted=False
             )
         })
 
             )
         })
 
@@ -54,7 +56,10 @@ def bookmark(request, uuid):
 
 
 def bookmark_delete(request, uuid):
 
 
 def bookmark_delete(request, uuid):
-    models.Bookmark.objects.filter(user=request.user, uuid=uuid).delete()
+    models.Bookmark.objects.filter(user=request.user, uuid=uuid).update(
+        deleted=True,
+        updated_at=now()
+    )
     return JsonResponse({})
 
 
     return JsonResponse({})