Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
L
library-app-django
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Ilham Maulana
library-app-django
Commits
24e4e45e
Commit
24e4e45e
authored
Jul 09, 2024
by
impfundev
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: sifting dashboard from function base to class based views
parent
72b8375a
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
36 additions
and
29 deletions
+36
-29
summary.html
dashboards/templates/dashboard/summary.html
+4
-0
urls.py
dashboards/urls.py
+2
-2
views.py
dashboards/views.py
+30
-27
No files found.
dashboards/templates/dashboard/summary.html
View file @
24e4e45e
...
...
@@ -41,6 +41,10 @@
<div
class=
"card-header"
>
Total
</div>
<p
class=
"h1"
>
{{ total_book_loans }}
</p>
</div>
<div
class=
"card"
>
<div
class=
"card-header"
>
Upcoming
</div>
<p
class=
"h1"
>
{{ total_upcoming }}
</p>
</div>
<div
class=
"card"
>
<div
class=
"card-header"
>
Overdue
</div>
<p
class=
"h1"
>
{{ total_overdue }}
</p>
...
...
dashboards/urls.py
View file @
24e4e45e
from
django.urls
import
path
,
include
from
dashboards.views
import
index
,
UpcomingLoanView
,
OverduedLoanView
from
dashboards.views
import
DashboardView
,
UpcomingLoanView
,
OverduedLoanView
urlpatterns
=
[
path
(
""
,
index
,
name
=
"dashboard"
),
path
(
""
,
DashboardView
.
as_view
()
,
name
=
"dashboard"
),
path
(
"books/"
,
include
(
"books.urls"
)),
path
(
"members/"
,
include
(
"members.urls"
)),
path
(
"book-loans/"
,
include
(
"book_loans.urls"
)),
...
...
dashboards/views.py
View file @
24e4e45e
...
...
@@ -78,34 +78,37 @@ class HomePage(TemplateView):
template_name
=
"homepage.html"
def
index
(
request
):
latest_login_history
=
LoginHistory
.
objects
.
order_by
(
"-login_at"
)[:
10
]
class
DashboardView
(
TemplateView
):
template_name
=
"dashboard/index.html"
login_history
=
LoginHistory
.
objects
.
order_by
(
"-login_at"
)[:
10
]
book_loans
=
BookLoans
.
objects
.
all
()
total_book
=
Book
.
objects
.
count
()
total_member
=
Members
.
objects
.
count
()
total_book_loans
=
BookLoans
.
objects
.
count
()
now
=
datetime
.
now
()
overdue_loans
=
BookLoans
.
objects
.
filter
(
due_date__lte
=
now
,
return_date
=
None
)
.
order_by
(
"created_at"
)
due_date_treshold
=
now
.
today
()
+
timedelta
(
days
=
3
)
upcoming_loans
=
BookLoans
.
objects
.
filter
(
due_date__lte
=
due_date_treshold
,
return_date
=
None
)
.
filter
(
due_date__gte
=
now
.
today
())
context
=
{
"login_histories"
:
latest_login_history
,
"total_book"
:
total_book
,
"total_member"
:
total_member
,
"total_book_loans"
:
total_book_loans
,
"total_overdue"
:
overdue_loans
.
count
(),
"overdue_loans"
:
overdue_loans
,
"upcoming_loans"
:
upcoming_loans
,
}
if
overdue_loans
.
exists
():
total_book_loans
=
book_loans
.
count
()
def
get_context_data
(
self
,
**
kwargs
):
context
=
super
()
.
get_context_data
(
**
kwargs
)
now
=
datetime
.
now
()
overdue_loans
=
self
.
book_loans
.
filter
(
due_date__lte
=
now
,
return_date
=
None
)
.
order_by
(
"-created_at"
)[:
10
]
due_date_treshold
=
now
.
today
()
+
timedelta
(
days
=
3
)
upcoming_loans
=
(
self
.
book_loans
.
filter
(
due_date__lte
=
due_date_treshold
,
return_date
=
None
)
.
filter
(
due_date__gte
=
now
.
today
())
.
order_by
(
"-created_at"
)[:
10
]
)
context
[
"login_histories"
]
=
self
.
login_history
context
[
"total_book"
]
=
self
.
total_book
context
[
"total_member"
]
=
self
.
total_member
context
[
"total_book_loans"
]
=
self
.
total_book_loans
context
[
"total_overdue"
]
=
overdue_loans
.
count
()
context
[
"total_upcoming"
]
=
upcoming_loans
.
count
()
context
[
"overdue_loans"
]
=
overdue_loans
context
[
"upcoming_loans"
]
=
upcoming_loans
return
render
(
request
,
"dashboard/index.html"
,
context
)
return
context
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment