Commit 688b1650 authored by impfundev's avatar impfundev

feat: upcoming loan

parent 252d9cf5
......@@ -19,12 +19,13 @@ class BookLoanForm(forms.Form):
)
)
return_date = forms.DateTimeField(
required=False,
widget=forms.DateTimeInput(
attrs={
"type": "datetime-local",
"class": "form-control",
}
)
),
)
notes = forms.CharField(
widget=forms.Textarea(
......
......@@ -32,7 +32,14 @@
<option value="{{ member.id }}">{{ member.name }}</option>
{% endfor %}
</select>
{{ form }}
{% for field in form %}
<div class="py-1">
<label for="{{ field.id }}" class="form-label"
>{{ field.label }}</label
>
{{ field }}
</div>
{% endfor %}
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">
......
......@@ -9,7 +9,7 @@ from book_loans.forms import BookLoanForm
def index(request):
latest_book_loan_list = BookLoans.objects.order_by("created_at")[:10]
latest_book_loan_list = BookLoans.objects.order_by("-created_at")[:10]
books = Book.objects.all()
member = Members.objects.all()
context = {
......@@ -26,7 +26,7 @@ def index(request):
member_id = request.POST["member"]
loan_date = form.data["loan_date"]
due_date = form.data["due_date"]
return_date = form.data["return_date"]
return_date = form.data["return_date"] or None
notes = form.data["notes"]
auth_session = request.session.get("auth_session", None)
......@@ -40,9 +40,9 @@ def index(request):
member_id=member_id,
loan_date=loan_date,
due_date=due_date,
return_date=return_date,
notes=notes,
librarians_id=librarians_id,
return_date=return_date,
)
return render(request, "loans.html", context)
......@@ -77,14 +77,19 @@ def update(request, id):
librarians_id = decoded["librarian_id"]
if form.is_valid:
loan_date = form.data["loan_date"]
due_date = form.data["due_date"]
return_date = form.data["return_date"] or None
notes = form.data["notes"]
loan.update(
book_id=book_id,
member_id=member_id,
librarians_id=librarians_id,
loan_date=form.data["loan_date"],
due_date=form.data["due_date"],
return_date=form.data["return_date"],
notes=form.data["notes"],
loan_date=loan_date,
due_date=due_date,
return_date=return_date,
notes=notes,
updated_at=datetime.now(),
)
return HttpResponseRedirect("/dashboard/book-loans")
......
<div class="card-header">
<h2 class="h4">Near Overdue Book Loan</h2>
<h2 class="h4">Near Outstanding Book Loan</h2>
</div>
<div class="card-body">
<table class="table table-striped">
<legend class="h3"></legend>
<thead>
<tr class="table-primary">
<th scope="col">Book Title</th>
......
......@@ -30,12 +30,12 @@ def index(request):
if overdue_loans.exists():
context["overdue_loans"] = overdue_loans
near_overdue_loans = {}
for loan in BookLoans.objects.all():
three_day_before_overdue = loan.due_date - timedelta(days=3)
if three_day_before_overdue.timestamp() >= now.timestamp():
near_overdue_loans = overdue_loans
context["near_overdue_loans"] = near_overdue_loans
due_date_threshold = now - timedelta(days=3)
upcoming_loan = (
BookLoans.objects.filter(due_date__gte=now)
.filter(due_date__gte=due_date_threshold)
.order_by("-due_date")
)
context["near_overdue_loans"] = upcoming_loan
return render(request, "dashboard/index.html", context)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment