Ejemplo n.º 1
0
 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
Ejemplo n.º 2
0
 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
Ejemplo n.º 3
0
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"}
Ejemplo n.º 4
0
 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)
Ejemplo n.º 5
0
 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)
Ejemplo n.º 6
0
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
Ejemplo n.º 7
0
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
Ejemplo n.º 8
0
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"}