Versiunea funcțională EUMI

This commit is contained in:
2026-08-31 16:10:46 +03:00
parent 75bcef3095
commit ce5028a27f
58 changed files with 4271 additions and 98 deletions
+53 -2
View File
@@ -1,3 +1,54 @@
from django.shortcuts import render
from django.contrib.auth.decorators import login_required
from django.shortcuts import render, get_object_or_404
from django.http import HttpResponse
from django.db.models import Q
from .models import Employee
from .forms import EmployeeForm
# Create your views here.
@login_required
def user_list(request):
query = request.GET.get("search", "")
employees = Employee.objects.all().order_by("name")
if query:
# Filter by name, username, or role (case-insensitive)
employees = employees.filter(
Q(name__icontains=query)
| Q(username__icontains=query)
| Q(role__icontains=query)
)
context = {"employees": employees}
# If the request comes from HTMX, only return the table rows
if request.headers.get("HX-Request"):
return render(request, "users/partials/user_table.html", context)
# Otherwise, return the full page
return render(request, "users/user_list.html", context)
@login_required
def employee_form(request, pk=None):
if pk:
employee = get_object_or_404(Employee, pk=pk)
else:
employee = None
if request.method == "POST":
form = EmployeeForm(request.POST, instance=employee)
if form.is_valid():
form.save()
# Return a 204 No Content response, but trigger custom HTMX events
response = HttpResponse(status=204)
response["HX-Trigger"] = "employeeListChanged, closeModal"
return response
else:
form = EmployeeForm(instance=employee)
return render(
request,
"users/partials/employee_form.html",
{"form": form, "employee": employee},
)