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
8e5544d5
Commit
8e5544d5
authored
Jul 19, 2024
by
Ilham Maulana
💻
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: sifting dashboard data from view to context processors
parent
e9888012
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
41 additions
and
37 deletions
+41
-37
settings.py
config/settings.py
+1
-0
context_processors.py
dashboard/utils/context_processors.py
+40
-0
views.py
dashboard/views.py
+0
-37
No files found.
config/settings.py
View file @
8e5544d5
...
...
@@ -90,6 +90,7 @@ TEMPLATES = [
"django.contrib.messages.context_processors.messages"
,
# local
"users.utils.context_processors.user_context"
,
"dashboard.utils.context_processors.dashboard_context"
,
],
},
},
...
...
dashboard/utils/context_processors.py
0 → 100644
View file @
8e5544d5
from
django.utils
import
timezone
from
users.models
import
LibrarianLoginHistory
,
Member
from
book.models
import
Category
,
Book
from
loans.models
import
BookLoan
def
dashboard_context
(
request
):
login_history
=
LibrarianLoginHistory
.
objects
.
order_by
(
"-date"
)[:
10
]
book_loans
=
BookLoan
.
objects
.
all
()
total_book
=
Book
.
objects
.
count
()
total_category
=
Category
.
objects
.
count
()
total_member
=
Member
.
objects
.
count
()
total_book_loans
=
book_loans
.
count
()
now
=
timezone
.
now
()
overdue_loans
=
book_loans
.
filter
(
due_date__lte
=
now
,
return_date
=
None
)
.
order_by
(
"-due_date"
)[:
10
]
due_date_treshold
=
now
+
timezone
.
timedelta
(
days
=
3
)
upcoming_loans
=
(
book_loans
.
filter
(
due_date__lte
=
due_date_treshold
,
return_date
=
None
)
.
filter
(
due_date__gte
=
now
)
.
order_by
(
"-due_date"
)[:
10
]
)
data
=
{
"login_histories"
:
login_history
,
"total_book"
:
total_book
,
"total_category"
:
total_category
,
"total_member"
:
total_member
,
"total_book_loans"
:
total_book_loans
,
"total_overdue"
:
overdue_loans
.
count
(),
"total_upcoming"
:
upcoming_loans
.
count
(),
"overdue_loans"
:
overdue_loans
,
"upcoming_loans"
:
upcoming_loans
,
}
return
data
dashboard/views.py
View file @
8e5544d5
from
django.utils
import
timezone
from
django.db.models
import
Q
from
django.views.generic
import
ListView
,
TemplateView
from
users.models
import
LibrarianLoginHistory
,
Member
from
book.models
import
Category
,
Book
from
loans.models
import
BookLoan
...
...
@@ -79,37 +76,3 @@ class HomePage(TemplateView):
class
DashboardView
(
TemplateView
):
template_name
=
"dashboard/index.html"
login_history
=
LibrarianLoginHistory
.
objects
.
order_by
(
"-date"
)[:
10
]
book_loans
=
BookLoan
.
objects
.
all
()
total_book
=
Book
.
objects
.
count
()
total_category
=
Category
.
objects
.
count
()
total_member
=
Member
.
objects
.
count
()
total_book_loans
=
book_loans
.
count
()
def
get_context_data
(
self
,
**
kwargs
):
context
=
super
()
.
get_context_data
(
**
kwargs
)
now
=
timezone
.
now
()
overdue_loans
=
self
.
book_loans
.
filter
(
due_date__lte
=
now
,
return_date
=
None
)
.
order_by
(
"-due_date"
)[:
10
]
due_date_treshold
=
now
+
timezone
.
timedelta
(
days
=
3
)
upcoming_loans
=
(
self
.
book_loans
.
filter
(
due_date__lte
=
due_date_treshold
,
return_date
=
None
)
.
filter
(
due_date__gte
=
now
)
.
order_by
(
"-due_date"
)[:
10
]
)
context
[
"login_histories"
]
=
self
.
login_history
context
[
"total_book"
]
=
self
.
total_book
context
[
"total_category"
]
=
self
.
total_category
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
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