Some changes have been made

This commit is contained in:
Abdulaziz Axmadaliyev
2026-02-18 17:28:30 +05:00
parent 3691e2d068
commit 243d879243
41 changed files with 566 additions and 884 deletions

View File

@@ -36,19 +36,21 @@ def create_device(request):
@login_required
@role_required(["employee"])
@role_required(["businessman"])
def create_income(request):
if request.method == "POST":
form = IncomeForm(request.POST, user=request.user)
if form.is_valid():
income = form.save(commit=False)
if request.user.role == "employee":
income.amount = None
income.save()
form.save()
return redirect("income_list")
else:
form = IncomeForm(user=request.user)
return render(request, "common/create/income_create.html", {"form": form})
return render(
request,
"common/create/income_create.html",
{"form": form, "title": "Kirim qo'shish"}
)
@login_required
@role_required(['manager', 'businessman'])

View File

@@ -110,30 +110,43 @@ def toy_movement_list(request):
return render(request, "common/lists/toy_movement_list.html", context)
@login_required
@role_required(["manager", "businessman"])
@role_required(["businessman"])
def income_list(request):
if request.user.role == "businessman":
incomes = Income.objects.all()
elif request.user.role == "manager":
incomes = Income.objects.filter(warehouse__region=request.user.region)
return render(request, "common/create/income_create.html", {"incomes": incomes})
return render(
request,
"common/lists/income_list.html", # ✅ correct template
{
"incomes": incomes,
"role": request.user.role, # ✅ important
}
)
@login_required
@role_required(["employee"])
@role_required(["employee", "businessman", "manager"])
def device_payment_list(request):
# Employee only sees devices in his region
devices = Device.objects.filter(
district__region=request.user.region
).order_by("due_date")
user = request.user
if user.role == "employee":
# Employee only sees devices in his region
devices = Device.objects.filter(
district__region=user.region
).order_by("due_date")
else:
# Businessman and manager see ALL devices
devices = Device.objects.all().order_by("due_date")
return render(
request,
"common/lists/device_payment_list.html",
{
"devices": devices,
"title": "Arendalar"
"title": "Arendalar",
"is_employee": user.role == "employee",
}
)
@@ -167,3 +180,30 @@ def report_list(request):
"title": "Hisobotlar"
}
)
@login_required
@role_required(["employee"])
def toy_movement_statistics(request):
movements = ToyMovement.objects.select_related("device").order_by("-created_at")
# Date filtering
date_from = request.GET.get("date_from")
date_to = request.GET.get("date_to")
device_id = request.GET.get("device")
if date_from:
movements = movements.filter(created_at__date__gte=date_from)
if date_to:
movements = movements.filter(created_at__date__lte=date_to)
if device_id:
movements = movements.filter(device_id=device_id)
devices = Device.objects.all().order_by("address")
return render(request, "common/lists/toy_movement_statistics.html", {
"movements": movements,
"devices": devices,
"date_from": date_from or "",
"date_to": date_to or "",
"selected_device": device_id or "",
})