def get_field_queryset(self, db, db_field, request): qs = super(ShiftTemplateAdmin, self).get_field_queryset( db, db_field, request) if db_field.rel.to == models.ScheduleTemplate: qs = qs or db_field.rel.to.objects.all() qs = filter_queryset_by_membership(qs, request.user) return qs
def get_field_queryset(self, db, db_field, request): qs = super(ShiftTemplateAdmin, self).get_field_queryset(db, db_field, request) if db_field.rel.to == models.ScheduleTemplate: qs = qs or db_field.rel.to.objects.all() qs = filter_queryset_by_membership(qs, request.user) return qs
def managing_members_view(request, **kwargs): try: facilities_managed_by_user = filter_queryset_by_membership( Facility.objects.all(), request.user, skip_superuser=False) facilities = facilities_managed_by_user.filter( organization__slug=kwargs['organization__slug'], slug=kwargs['slug']) facility = facilities.get() user_account_id = request.POST.get('user_account_id') action = request.POST.get('action') membership = FacilityMembership.objects.get( facility=facility, user_account__id=user_account_id) if action == "remove": membership.delete() if action == "reject": membership.status = membership.Status.REJECTED membership.save() elif membership.status == membership.Status.PENDING: if action == "accept": membership.status = membership.Status.APPROVED membership.save() send_membership_approved_notification(membership, approved_by=request.user) except Exception: if settings.DEBUG: raise return HttpResponseForbidden() return {'result': "sucess"}
def get_queryset(self): qs = super(ManageFacilityMembersView, self).get_queryset() qs = qs.select_related('organization') qs = qs.prefetch_related('memberships', 'memberships__user_account', 'memberships__user_account__user') return filter_queryset_by_membership(qs, self.request.user, skip_superuser=False)
def get_queryset(self): qs = super(ManageFacilityMembersView, self).get_queryset() qs = qs.select_related('organization') qs = qs.prefetch_related( 'memberships', 'memberships__user_account', 'memberships__user_account__user') return filter_queryset_by_membership(qs, self.request.user, skip_superuser=False)
def get_pending_membership_approvals(user): memberships = FacilityMembership.objects.filter( status=FacilityMembership.Status.PENDING).order_by('facility') counters = filter_queryset_by_membership(memberships, user).values( 'facility').annotate(count=Count('facility')) result = dict(facilities=dict(), total=0) for counter in counters: result['facilities'][counter['facility']] = counter['count'] result['total'] += counter['count'] return result
def get_pending_membership_approvals(user): memberships = FacilityMembership.objects.filter( status=FacilityMembership.Status.PENDING).order_by('facility') counters = filter_queryset_by_membership( memberships, user).values('facility').annotate(count=Count('facility')) result = dict(facilities=dict(), total=0) for counter in counters: result['facilities'][counter['facility']] = counter['count'] result['total'] += counter['count'] return result
def managing_members_view(request, **kwargs): try: facilities_managed_by_user = filter_queryset_by_membership( Facility.objects.all(), request.user, skip_superuser=False) facilities = facilities_managed_by_user.filter( organization__slug=kwargs['organization__slug'], slug=kwargs['slug'] ) facility = facilities.get() user_account_id = request.POST.get('user_account_id') action = request.POST.get('action') membership = FacilityMembership.objects.get(facility=facility, user_account__id=user_account_id) if action == "remove": membership.delete() if action == "reject": membership.status = membership.Status.REJECTED membership.save() elif membership.status == membership.Status.PENDING: if action == "accept": membership.status = membership.Status.APPROVED membership.save() send_membership_approved_notification(membership, approved_by=request.user) except Exception: if settings.DEBUG: raise return HttpResponseForbidden() return {'result': "sucess"}