add scope to filter data
This commit is contained in:
parent
394546dc67
commit
e9dec3292c
13 changed files with 386 additions and 36 deletions
|
@ -8,7 +8,9 @@ from django import forms
|
|||
from django.contrib.auth.decorators import login_required
|
||||
from accounts.models import Profile
|
||||
from accounts.forms import CustomerForm
|
||||
from processes.utils import scope_customers_queryset
|
||||
from common.consts import UserRoles
|
||||
from common.decorators import allowed_roles
|
||||
|
||||
|
||||
# Create your views here.
|
||||
|
@ -35,9 +37,11 @@ def dashboard(request):
|
|||
|
||||
|
||||
@login_required
|
||||
@allowed_roles([UserRoles.ADMIN, UserRoles.BROKER, UserRoles.MANAGER, UserRoles.ACCOUNTANT])
|
||||
def customer_list(request):
|
||||
# Get all profiles that have customer role
|
||||
customers = Profile.objects.filter(roles__slug=UserRoles.CUSTOMER.value, is_deleted=False).select_related('user')
|
||||
base = Profile.objects.filter(roles__slug=UserRoles.CUSTOMER.value, is_deleted=False).select_related('user')
|
||||
customers = scope_customers_queryset(request.user, base)
|
||||
|
||||
form = CustomerForm()
|
||||
return render(request, "accounts/customer_list.html", {
|
||||
|
@ -47,6 +51,8 @@ def customer_list(request):
|
|||
|
||||
|
||||
@require_POST
|
||||
@login_required
|
||||
@allowed_roles([UserRoles.ADMIN, UserRoles.BROKER, UserRoles.MANAGER, UserRoles.ACCOUNTANT])
|
||||
def add_customer_ajax(request):
|
||||
"""AJAX endpoint for adding customers"""
|
||||
form = CustomerForm(request.POST, request.FILES)
|
||||
|
@ -85,6 +91,8 @@ def add_customer_ajax(request):
|
|||
|
||||
|
||||
@require_POST
|
||||
@login_required
|
||||
@allowed_roles([UserRoles.ADMIN, UserRoles.BROKER, UserRoles.MANAGER, UserRoles.ACCOUNTANT])
|
||||
def edit_customer_ajax(request, customer_id):
|
||||
customer = get_object_or_404(Profile, id=customer_id)
|
||||
form = CustomerForm(request.POST, request.FILES, instance=customer)
|
||||
|
@ -122,6 +130,7 @@ def edit_customer_ajax(request, customer_id):
|
|||
})
|
||||
|
||||
@require_GET
|
||||
@login_required
|
||||
def get_customer_data(request, customer_id):
|
||||
customer = get_object_or_404(Profile, id=customer_id)
|
||||
|
||||
|
@ -162,6 +171,7 @@ def get_customer_data(request, customer_id):
|
|||
})
|
||||
|
||||
|
||||
@login_required
|
||||
def logout_view(request):
|
||||
"""Log out current user and redirect to login page."""
|
||||
logout(request)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue