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
688b1650
Commit
688b1650
authored
Jul 03, 2024
by
impfundev
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: upcoming loan
parent
252d9cf5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
30 additions
and
18 deletions
+30
-18
forms.py
book_loans/forms.py
+2
-1
book_loan_create_form.html
book_loans/templates/book_loan_create_form.html
+8
-1
views.py
book_loans/views.py
+12
-7
near_overdue_loan.html
dashboards/templates/dashboard/near_overdue_loan.html
+1
-2
views.py
dashboards/views.py
+7
-7
No files found.
book_loans/forms.py
View file @
688b1650
...
@@ -19,12 +19,13 @@ class BookLoanForm(forms.Form):
...
@@ -19,12 +19,13 @@ class BookLoanForm(forms.Form):
)
)
)
)
return_date
=
forms
.
DateTimeField
(
return_date
=
forms
.
DateTimeField
(
required
=
False
,
widget
=
forms
.
DateTimeInput
(
widget
=
forms
.
DateTimeInput
(
attrs
=
{
attrs
=
{
"type"
:
"datetime-local"
,
"type"
:
"datetime-local"
,
"class"
:
"form-control"
,
"class"
:
"form-control"
,
}
}
)
)
,
)
)
notes
=
forms
.
CharField
(
notes
=
forms
.
CharField
(
widget
=
forms
.
Textarea
(
widget
=
forms
.
Textarea
(
...
...
book_loans/templates/book_loan_create_form.html
View file @
688b1650
...
@@ -32,7 +32,14 @@
...
@@ -32,7 +32,14 @@
<option
value=
"{{ member.id }}"
>
{{ member.name }}
</option>
<option
value=
"{{ member.id }}"
>
{{ member.name }}
</option>
{% endfor %}
{% endfor %}
</select>
</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>
<div
class=
"modal-footer"
>
<div
class=
"modal-footer"
>
<button
type=
"button"
class=
"btn btn-secondary"
data-bs-dismiss=
"modal"
>
<button
type=
"button"
class=
"btn btn-secondary"
data-bs-dismiss=
"modal"
>
...
...
book_loans/views.py
View file @
688b1650
...
@@ -9,7 +9,7 @@ from book_loans.forms import BookLoanForm
...
@@ -9,7 +9,7 @@ from book_loans.forms import BookLoanForm
def
index
(
request
):
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
()
books
=
Book
.
objects
.
all
()
member
=
Members
.
objects
.
all
()
member
=
Members
.
objects
.
all
()
context
=
{
context
=
{
...
@@ -26,7 +26,7 @@ def index(request):
...
@@ -26,7 +26,7 @@ def index(request):
member_id
=
request
.
POST
[
"member"
]
member_id
=
request
.
POST
[
"member"
]
loan_date
=
form
.
data
[
"loan_date"
]
loan_date
=
form
.
data
[
"loan_date"
]
due_date
=
form
.
data
[
"due_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"
]
notes
=
form
.
data
[
"notes"
]
auth_session
=
request
.
session
.
get
(
"auth_session"
,
None
)
auth_session
=
request
.
session
.
get
(
"auth_session"
,
None
)
...
@@ -40,9 +40,9 @@ def index(request):
...
@@ -40,9 +40,9 @@ def index(request):
member_id
=
member_id
,
member_id
=
member_id
,
loan_date
=
loan_date
,
loan_date
=
loan_date
,
due_date
=
due_date
,
due_date
=
due_date
,
return_date
=
return_date
,
notes
=
notes
,
notes
=
notes
,
librarians_id
=
librarians_id
,
librarians_id
=
librarians_id
,
return_date
=
return_date
,
)
)
return
render
(
request
,
"loans.html"
,
context
)
return
render
(
request
,
"loans.html"
,
context
)
...
@@ -77,14 +77,19 @@ def update(request, id):
...
@@ -77,14 +77,19 @@ def update(request, id):
librarians_id
=
decoded
[
"librarian_id"
]
librarians_id
=
decoded
[
"librarian_id"
]
if
form
.
is_valid
:
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
(
loan
.
update
(
book_id
=
book_id
,
book_id
=
book_id
,
member_id
=
member_id
,
member_id
=
member_id
,
librarians_id
=
librarians_id
,
librarians_id
=
librarians_id
,
loan_date
=
form
.
data
[
"loan_date"
]
,
loan_date
=
loan_date
,
due_date
=
form
.
data
[
"due_date"
]
,
due_date
=
due_date
,
return_date
=
form
.
data
[
"return_date"
]
,
return_date
=
return_date
,
notes
=
form
.
data
[
"notes"
]
,
notes
=
notes
,
updated_at
=
datetime
.
now
(),
updated_at
=
datetime
.
now
(),
)
)
return
HttpResponseRedirect
(
"/dashboard/book-loans"
)
return
HttpResponseRedirect
(
"/dashboard/book-loans"
)
...
...
dashboards/templates/dashboard/near_overdue_loan.html
View file @
688b1650
<div
class=
"card-header"
>
<div
class=
"card-header"
>
<h2
class=
"h4"
>
Near O
verdue
Book Loan
</h2>
<h2
class=
"h4"
>
Near O
utstanding
Book Loan
</h2>
</div>
</div>
<div
class=
"card-body"
>
<div
class=
"card-body"
>
<table
class=
"table table-striped"
>
<table
class=
"table table-striped"
>
<legend
class=
"h3"
></legend>
<thead>
<thead>
<tr
class=
"table-primary"
>
<tr
class=
"table-primary"
>
<th
scope=
"col"
>
Book Title
</th>
<th
scope=
"col"
>
Book Title
</th>
...
...
dashboards/views.py
View file @
688b1650
...
@@ -30,12 +30,12 @@ def index(request):
...
@@ -30,12 +30,12 @@ def index(request):
if
overdue_loans
.
exists
():
if
overdue_loans
.
exists
():
context
[
"overdue_loans"
]
=
overdue_loans
context
[
"overdue_loans"
]
=
overdue_loans
near_overdue_loans
=
{}
due_date_threshold
=
now
-
timedelta
(
days
=
3
)
for
loan
in
BookLoans
.
objects
.
all
():
upcoming_loan
=
(
three_day_before_overdue
=
loan
.
due_date
-
timedelta
(
days
=
3
)
BookLoans
.
objects
.
filter
(
due_date__gte
=
now
)
if
three_day_before_overdue
.
timestamp
()
>=
now
.
timestamp
():
.
filter
(
due_date__gte
=
due_date_threshold
)
near_overdue_loans
=
overdue_loans
.
order_by
(
"-due_date"
)
)
context
[
"near_overdue_loans"
]
=
near_overdue_loans
context
[
"near_overdue_loans"
]
=
upcoming_loan
return
render
(
request
,
"dashboard/index.html"
,
context
)
return
render
(
request
,
"dashboard/index.html"
,
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