+from dae.utils import get_employe_from_user
+
+
+class ProtectRegionMixin(object):
+
+ def queryset(self, request):
+ qs = super(ProtectRegionMixin, self).queryset(request)
+
+ if request.user.is_superuser:
+ return qs
+
+ employe = get_employe_from_user(request.user)
+
+ q = Q(**{self.model.prefix_implantation: employe.implantation.region})
+ qs = qs.filter(q).distinct()
+ return qs
+
+ def has_change_permission(self, request, obj=None):
+ if request.user.is_superuser:
+ return True
+
+ if obj:
+ employe = get_employe_from_user(request.user)
+ if employe.implantation.region in obj.get_regions():
+ return True
+ else:
+ return False
+
+ return True
+