Collection removed memberships: only return removed memberships within our returned range.
Before this change we were returning all of the removed memberships that happened after stoken. Though instead, we should just return the removed memberships that happened after stoken and before the new stoken we are returning.
This commit is contained in:
parent
aa7b049b62
commit
741b6d7c52
@ -224,8 +224,13 @@ class CollectionViewSet(BaseViewSet):
|
|||||||
stoken_obj = self.get_stoken_obj(request)
|
stoken_obj = self.get_stoken_obj(request)
|
||||||
if stoken_obj is not None:
|
if stoken_obj is not None:
|
||||||
# FIXME: honour limit? (the limit should be combined for data and this because of stoken)
|
# FIXME: honour limit? (the limit should be combined for data and this because of stoken)
|
||||||
remed = CollectionMemberRemoved.objects.filter(user=request.user, stoken__id__gt=stoken_obj.id) \
|
remed_qs = CollectionMemberRemoved.objects.filter(user=request.user, stoken__id__gt=stoken_obj.id)
|
||||||
.values_list('collection__main_item__uid', flat=True)
|
if not ret['done']:
|
||||||
|
# We only filter by the new_stoken if we are not done. This is because if we are done, the new stoken
|
||||||
|
# can point to the most recent collection change rather than most recent removed membership.
|
||||||
|
remed_qs = remed_qs.filter(stoken__id__lte=new_stoken_obj.id)
|
||||||
|
|
||||||
|
remed = remed_qs.values_list('collection__main_item__uid', flat=True)
|
||||||
if len(remed) > 0:
|
if len(remed) > 0:
|
||||||
ret['removedMemberships'] = [{'uid': x} for x in remed]
|
ret['removedMemberships'] = [{'uid': x} for x in remed]
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user