Commit 2276fb54 authored by impfundev's avatar impfundev

feat: reports include librarians login history

parent b6844ada
{% extends "layout.html" %} {% block dashboard %}
<div style="max-width: 80vw" class="w-100 p-4">
<div class="row container">
<div class="col">
<div class="card h-100 d-flex flex-column">
<div class="card-body">
<h5 class="card-title"><i class="bi bi-book-half"></i> Book</h5>
<p class="card-text">
Explore the many amazing books available in this library!
</p>
</div>
<div class="card-footer">
<a href="#" class="btn btn-primary">Explore Book</a>
</div>
</div>
</div>
<div class="col">
<div class="card h-100">
<div class="card-body">
<h5 class="card-title"><i class="bi bi-person-vcard"></i> Member</h5>
<p class="card-text">
Manage your membership or become a member of the library to start
borrowing your first book
</p>
</div>
<div class="card-footer">
<a href="#" class="btn btn-primary">Go to Member</a>
</div>
</div>
</div>
<div class="col">
<div class="card h-100">
<div class="card-body">
<h5 class="card-title">
<i class="bi bi-person-fill-check"></i> Librarian Access
</h5>
<p class="card-text">Manage and Controll Book, Member, Access, etc</p>
</div>
<div class="card-footer">
<a href="#" class="btn btn-primary">Go to Librarian Access</a>
</div>
</div>
</div>
<h1 class="h2">Reports</h1>
<div class="row container pt-5">{% include "dashboard/summary.html" %}</div>
<div class="row container pt-5">
{% include "dashboard/login_history.html" %}
</div>
</div>
{% endblock dashboard %}
<table class="table">
<legend class="h3">Librarian Login History</legend>
<thead>
<tr>
<th scope="col">Name</th>
<th scope="col">Login At</th>
</tr>
</thead>
<tbody>
{% for histori in login_histories %}
<tr>
<td>{{ histori.librarian.name }}</td>
<td>{{ histori.login_at }}</td>
</tr>
{% endfor %}
</tbody>
</table>
<div class="row container text-center">
<div class="col">
<div class="card h-100 d-flex flex-column">
<div class="card-body">
<h5 class="card-title"><i class="bi bi-book-half"></i> Total Book</h5>
<p class="h1">{{ total_book }}</p>
</div>
<div class="card-footer">
<a href="/dashboard/books/" class="w-100 btn btn-primary"
>Explore Book</a
>
</div>
</div>
</div>
<div class="col">
<div class="card h-100">
<div class="card-body">
<h5 class="card-title">
<i class="bi bi-person-vcard"></i> Total Member
</h5>
<p class="h1">{{ total_member }}</p>
</div>
<div class="card-footer">
<a href="/dashboard/members/" class="w-100 btn btn-primary"
>Go to Member</a
>
</div>
</div>
</div>
<div class="col">
<div class="card h-100">
<div class="card-body">
<h5 class="card-title">
<i class="bi bi-calendar-week"></i> Total Book Loan
</h5>
<p class="h1">{{ total_book_loans }}</p>
</div>
<div class="card-footer">
<a href="/dashboard/book-loans/" class="w-100 btn btn-primary"
>Go to Book Loans</a
>
</div>
</div>
</div>
</div>
......@@ -10,7 +10,7 @@
{% include "profile.html" %}
<div class="d-flex flex-column gap-2">
<a href="/dashboard" class="btn btn-outline-primary text-start w-100"
><i class="bi bi-house-fill"></i> Home</a
><i class="bi bi-bar-chart-line-fill"></i> Reports</a
>
<a
href="/dashboard/books"
......@@ -22,6 +22,11 @@
class="btn btn-outline-primary text-start w-100"
><i class="bi bi-person-vcard"></i> Members</a
>
<a
href="/dashboard/book-loans"
class="btn btn-outline-primary text-start w-100"
><i class="bi bi-calendar-week"></i> Book Loans</a
>
<a
href="/dashboard/librarians"
class="btn btn-outline-primary text-start w-100"
......
from django.shortcuts import render
from librarians.models import LoginHistory
from members.models import Members
from book_loans.models import Book, BookLoans
def home(request):
......@@ -6,4 +9,15 @@ def home(request):
def index(request):
return render(request, "dashboard/index.html")
latest_login_history = LoginHistory.objects.order_by("login_at")[:10]
total_book = Book.objects.count()
total_member = Members.objects.count()
total_book_loans = BookLoans.objects.count()
context = {
"login_histories": latest_login_history,
"total_book": total_book,
"total_member": total_member,
"total_book_loans": total_book_loans,
}
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