0003-rbac-define-custom-manager-for-active-objects-57500.patch
src/django_rbac/managers.py | ||
---|---|---|
229 | 229 |
self.model.objects.filter(functools.reduce(query.Q.__or__, queries)).delete() |
230 | 230 | |
231 | 231 | |
232 |
class ActiveRoleParentingManager(RoleParentingManager): |
|
233 |
def get_queryset(self): |
|
234 |
return super().get_queryset().filter(deleted__isnull=True) |
|
235 | ||
236 | ||
232 | 237 |
@contextlib.contextmanager |
233 | 238 |
def defer_update_transitive_closure(): |
234 | 239 |
from . import utils |
src/django_rbac/models.py | ||
---|---|---|
259 | 259 |
deleted = models.DateTimeField(verbose_name=_('Deletion date'), null=True) |
260 | 260 | |
261 | 261 |
objects = managers.RoleParentingManager() |
262 |
active_objects = managers.ActiveRoleParentingManager() |
|
262 | 263 | |
263 | 264 |
def natural_key(self): |
264 | 265 |
return [self.parent.natural_key(), self.child.natural_key(), self.direct] |
265 |
- |