Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
P
perpustakaan
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
Nurrofi
perpustakaan
Commits
03f0d220
Commit
03f0d220
authored
Jan 08, 2024
by
Nurrofimutaqin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
menambah fitur baru
parent
809afc72
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
171 additions
and
104 deletions
+171
-104
serializers.py
perpustakaan/api/serializers.py
+27
-1
urls.py
perpustakaan/api/urls.py
+3
-0
views.py
perpustakaan/api/views.py
+15
-3
forms.py
perpustakaan/book/forms.py
+9
-5
detailbuku.html
perpustakaan/book/templates/buku/detailbuku.html
+2
-2
addmember.html
perpustakaan/book/templates/member/addmember.html
+0
-34
editmember.html
perpustakaan/book/templates/member/editmember.html
+0
-33
datapeminjaman.html
perpustakaan/book/templates/peminjaman/datapeminjaman.html
+1
-0
list_peminjaman_user.html
...akaan/book/templates/peminjaman/list_peminjaman_user.html
+24
-21
tambah_peminjaman.html
...ustakaan/book/templates/peminjaman/tambah_peminjaman.html
+52
-0
urls.py
perpustakaan/book/urls.py
+3
-0
views.py
perpustakaan/book/views.py
+35
-5
5cm_qdDUhWU.jpg
perpustakaan/media/cover/5cm_qdDUhWU.jpg
+0
-0
ips_mSU6dAx.jpeg
perpustakaan/media/cover/ips_mSU6dAx.jpeg
+0
-0
narutosip.jpg
perpustakaan/media/cover/narutosip.jpg
+0
-0
salak.jpg
perpustakaan/media/cover/salak.jpg
+0
-0
tokrev_RBB4o3m.jpeg
perpustakaan/media/cover/tokrev_RBB4o3m.jpeg
+0
-0
No files found.
perpustakaan/api/serializers.py
View file @
03f0d220
from
book.models
import
*
from
book.models
import
*
from
rest_framework
import
serializers
from
rest_framework
import
serializers
from
rest_framework.serializers
import
ModelSerializer
from
rest_framework.serializers
import
ModelSerializer
from
datetime
import
date
class
CategorySerializer
(
serializers
.
ModelSerializer
):
class
CategorySerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
class
Meta
:
...
@@ -18,6 +18,32 @@ class BookLoanSerializer(serializers.ModelSerializer):
...
@@ -18,6 +18,32 @@ class BookLoanSerializer(serializers.ModelSerializer):
model
=
Peminjaman
model
=
Peminjaman
fields
=
'__all__'
fields
=
'__all__'
class
BookLoanUserSerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
model
=
Peminjaman
fields
=
[
'buku'
,
'tanggal_kembali'
]
class
OverDueSerializer
(
serializers
.
ModelSerializer
):
days_overdue
=
serializers
.
SerializerMethodField
()
class
Meta
:
model
=
Peminjaman
fields
=
'__all__'
def
get_days_overdue
(
self
,
obj
):
if
obj
.
tanggal_kembali
and
obj
.
tanggal_kembali
<
date
.
today
()
and
not
obj
.
status
:
return
(
date
.
today
()
-
obj
.
tanggal_kembali
)
.
days
return
0
class
NearOverDueSerializer
(
serializers
.
ModelSerializer
):
sisa_waktu
=
serializers
.
SerializerMethodField
()
class
Meta
:
model
=
Peminjaman
fields
=
'__all__'
def
get_sisa_waktu
(
self
,
obj
):
if
obj
.
tanggal_kembali
and
obj
.
tanggal_kembali
>
date
.
today
()
and
not
obj
.
status
:
return
str
((
obj
.
tanggal_kembali
-
date
.
today
())
.
days
)
+
' days'
return
0
# class UserSerializer(serializers.ModelSerializer):
# class UserSerializer(serializers.ModelSerializer):
...
...
perpustakaan/api/urls.py
View file @
03f0d220
...
@@ -47,6 +47,9 @@ urlpatterns = [
...
@@ -47,6 +47,9 @@ urlpatterns = [
#pakai rest framework aja dan tidak dipakai
#pakai rest framework aja dan tidak dipakai
path
(
'member/login/'
,
views
.
MemberLoginView
.
as_view
(),
name
=
'member-login'
),
path
(
'member/login/'
,
views
.
MemberLoginView
.
as_view
(),
name
=
'member-login'
),
path
(
'member/profile/'
,
views
.
MemberProfileView
.
as_view
(),
name
=
'member-profile'
),
path
(
'member/profile/'
,
views
.
MemberProfileView
.
as_view
(),
name
=
'member-profile'
),
path
(
'member/book-loans/'
,
views
.
BookLoansUser
.
as_view
(),
name
=
'member-book-loans'
),
]
]
urlpatterns
=
format_suffix_patterns
(
urlpatterns
)
urlpatterns
=
format_suffix_patterns
(
urlpatterns
)
\ No newline at end of file
perpustakaan/api/views.py
View file @
03f0d220
...
@@ -27,7 +27,7 @@ from django.contrib.auth import authenticate
...
@@ -27,7 +27,7 @@ from django.contrib.auth import authenticate
from
rest_framework_simplejwt.tokens
import
RefreshToken
from
rest_framework_simplejwt.tokens
import
RefreshToken
class
LargeResultsSetPagination
(
PageNumberPagination
):
class
LargeResultsSetPagination
(
PageNumberPagination
):
page_size
=
1
page_size
=
5
page_size_query_param
=
'page_size'
page_size_query_param
=
'page_size'
...
@@ -75,7 +75,7 @@ class UserList(generics.ListCreateAPIView):
...
@@ -75,7 +75,7 @@ class UserList(generics.ListCreateAPIView):
# serializer_class = UserSerializer
# serializer_class = UserSerializer
class
NearOverdueViewSet
(
viewsets
.
ReadOnlyModelViewSet
):
class
NearOverdueViewSet
(
viewsets
.
ReadOnlyModelViewSet
):
serializer_class
=
BookLoan
Serializer
serializer_class
=
NearOverDue
Serializer
pagination_class
=
LargeResultsSetPagination
pagination_class
=
LargeResultsSetPagination
def
get_queryset
(
self
):
def
get_queryset
(
self
):
# Ambil data peminjaman buku yang hampir deadline (misalnya, 3 hari lagi)
# Ambil data peminjaman buku yang hampir deadline (misalnya, 3 hari lagi)
...
@@ -86,7 +86,7 @@ class NearOverdueViewSet(viewsets.ReadOnlyModelViewSet):
...
@@ -86,7 +86,7 @@ class NearOverdueViewSet(viewsets.ReadOnlyModelViewSet):
return
queryset
return
queryset
class
OverdueViewSet
(
viewsets
.
ReadOnlyModelViewSet
):
class
OverdueViewSet
(
viewsets
.
ReadOnlyModelViewSet
):
serializer_class
=
BookLoan
Serializer
serializer_class
=
OverDue
Serializer
pagination_class
=
LargeResultsSetPagination
pagination_class
=
LargeResultsSetPagination
def
get_queryset
(
self
):
def
get_queryset
(
self
):
overdue
=
Peminjaman
.
objects
.
filter
(
tanggal_kembali__lte
=
date
.
today
(),
status
=
False
)
overdue
=
Peminjaman
.
objects
.
filter
(
tanggal_kembali__lte
=
date
.
today
(),
status
=
False
)
...
@@ -280,3 +280,15 @@ class MemberProfileUpdateView(APIView):
...
@@ -280,3 +280,15 @@ class MemberProfileUpdateView(APIView):
serializer
.
save
()
serializer
.
save
()
return
Response
(
serializer
.
data
,
status
=
status
.
HTTP_200_OK
)
return
Response
(
serializer
.
data
,
status
=
status
.
HTTP_200_OK
)
return
Response
(
serializer
.
errors
,
status
=
status
.
HTTP_400_BAD_REQUEST
)
return
Response
(
serializer
.
errors
,
status
=
status
.
HTTP_400_BAD_REQUEST
)
class
BookLoansUser
(
generics
.
ListCreateAPIView
):
queryset
=
Peminjaman
.
objects
.
all
()
serializer_class
=
BookLoanUserSerializer
permission_classes
=
[
IsAuthenticated
]
def
perform_create
(
self
,
serializer
):
serializer
.
save
(
member
=
self
.
request
.
user
)
def
get_queryset
(
self
):
# Mengambil data peminjaman yang sesuai dengan user yang sedang login
return
Peminjaman
.
objects
.
filter
(
member
=
self
.
request
.
user
)
perpustakaan/book/forms.py
View file @
03f0d220
...
@@ -14,13 +14,17 @@ class formBook(ModelForm):
...
@@ -14,13 +14,17 @@ class formBook(ModelForm):
# 'cover' : forms.TextInput({'class' : 'form-control', 'type': 'file'}),
# 'cover' : forms.TextInput({'class' : 'form-control', 'type': 'file'}),
# }
# }
class
formLoan
(
forms
.
ModelForm
):
# class formLoan(forms.ModelForm):
book
=
forms
.
ModelChoiceField
(
queryset
=
Book
.
objects
.
all
(),
label
=
'book'
)
# book = forms.ModelChoiceField(queryset = Book.objects.all(), label= 'book')
member
=
forms
.
ModelChoiceField
(
queryset
=
CustomUser
.
objects
.
all
(),
label
=
'member'
)
# member = forms.ModelChoiceField(queryset = CustomUser.objects.all(), label= 'member')
# class Meta:
# model = Peminjaman
# fields = ['book', 'member', 'tanggal_kembali']
class
PeminjamanForm
(
forms
.
ModelForm
):
class
Meta
:
class
Meta
:
model
=
Peminjaman
model
=
Peminjaman
fields
=
[
'book'
,
'member'
,
'tanggal_kembali'
]
fields
=
[
'buku'
,
'tanggal_kembali'
]
class
formCategory
(
ModelForm
):
class
formCategory
(
ModelForm
):
...
...
perpustakaan/book/templates/buku/detailbuku.html
View file @
03f0d220
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
<div
class=
"card justify-content-center"
>
<div
class=
"card justify-content-center"
>
<div
class=
"card-header text-light bg-gradient-danger text-center"
>
<div
class=
"card-header text-light bg-gradient-danger text-center"
>
<h3>
D
ETAIL DATA
{{buku.judul}}
</h3>
<h3>
D
etail Buku
{{buku.judul}}
</h3>
</div>
</div>
<div
class=
"card-body col-8 "
>
<div
class=
"card-body col-8 "
>
<form
<form
...
@@ -12,7 +12,7 @@
...
@@ -12,7 +12,7 @@
<label
class=
"col-4 col-form-label"
for=
"judul"
>
Cover Buku :
</label>
<label
class=
"col-4 col-form-label"
for=
"judul"
>
Cover Buku :
</label>
<div
class=
" col-8 "
>
<div
class=
" col-8 "
>
{%if buku.cover %}
{%if buku.cover %}
<img
src=
"{{buku.cover.url}}"
class=
" border border-danger p-2"
>
<img
src=
"{{buku.cover.url}}"
class=
" border border-danger p-2"
height=
"500px"
width=
"300px"
>
{% endif %}
{% endif %}
</div>
</div>
...
...
perpustakaan/book/templates/member/addmember.html
deleted
100644 → 0
View file @
809afc72
{% extends "index.html"%} {% block content%}
<div
class=
"card"
>
<div
class=
"card-header text-light bg-gradient-danger"
>
<h3>
Tambah Data Member
</h3>
</div>
<hr>
<div
class=
"card-body"
>
<div
class=
"card-body col-sm-5"
>
<form
method=
"post"
action=
"{% url 'createmember'%}"
enctype=
"multipart/form-data"
>
{% csrf_token %}
<div
class=
"form-group row"
>
<label
class=
"col-4 col-form-label"
for=
"nama"
>
Nama
</label>
<div
class=
"col-8"
>
<input
id=
"nama"
name=
"nama"
placeholder=
"Masukan nama"
type=
"text"
class=
"form-control"
required=
"required"
>
</div>
</div>
<div
class=
"form-group row"
>
<label
for=
"alamat"
class=
"col-4 col-form-label"
>
Alamat
</label>
<div
class=
"col-8"
>
<input
id=
"alamat"
name=
"alamat"
placeholder=
"Masukan alamat"
type=
"text"
class=
"form-control"
required=
"required"
>
</div>
</div>
<div
class=
"form-group row"
>
<label
for=
"email"
class=
"col-4 col-form-label"
>
Email
</label>
<div
class=
"col-8"
>
<input
id=
"email"
name=
"email"
placeholder=
"Masukan email"
type=
"email"
class=
"form-control"
required=
"required"
>
</div>
</div>
<hr>
<button
type=
"submit"
name=
"submit"
class=
"btn btn-primary align-items-center"
>
Insert
</button>
</form>
</div>
</div>
</div>
{% endblock content%}
\ No newline at end of file
perpustakaan/book/templates/member/editmember.html
deleted
100644 → 0
View file @
809afc72
{% extends "index.html"%} {% block content%}
<div
class=
"card"
>
<div
class=
"card-header text-light bg-gradient-danger"
>
<h3>
Edit Data {{member.nama}}
</h3>
</div>
<hr>
<div
class=
"card-body col-5"
>
<form
method=
"post"
action=
"{% url 'updatemember' member.id%}"
enctype=
"multipart/form-data"
>
{% csrf_token %}
<div
class=
"form-group row"
>
<label
class=
"col-4 col-form-label"
for=
"nama"
>
nama member
</label>
<div
class=
"col-8"
>
<input
id=
"nama"
name=
"nama"
value=
"{{member.nama}}"
placeholder=
"Masukan Nama member"
type=
"text"
class=
"form-control"
required=
"required"
>
</div>
</div>
<div
class=
"form-group row"
>
<label
for=
"alamat"
class=
"col-4 col-form-label"
>
alamat
</label>
<div
class=
"col-8"
>
<input
id=
"alamat"
name=
"alamat"
value=
"{{member.alamat}}"
placeholder=
"Masukan Alamat Mmeber"
type=
"text"
class=
"form-control"
required=
"required"
>
</div>
</div>
<div
class=
"form-group row"
>
<label
for=
"email"
class=
"col-4 col-form-label"
>
email
</label>
<div
class=
"col-8"
>
<input
id=
"email"
name=
"email"
value=
"{{member.email}}"
placeholder=
"Masukan Email Member"
type=
"text"
class=
"form-control"
required=
"required"
>
</div>
</div>
<button
type=
"submit"
name=
"submit"
class=
"btn btn-primary align-items-center"
>
Edit
</button>
</form>
</div>
</div>
{% endblock content%}
\ No newline at end of file
perpustakaan/book/templates/peminjaman/datapeminjaman.html
View file @
03f0d220
...
@@ -27,6 +27,7 @@
...
@@ -27,6 +27,7 @@
{% endif %}
{% endif %}
<a
href=
"{% url 'createpeminjaman'%}"
type=
"button"
class=
"btn btn-primary"
><i
class=
"fas fa-fw fa-save"
></i>
Tambah Data Peminjaman
</a>
<a
href=
"{% url 'createpeminjaman'%}"
type=
"button"
class=
"btn btn-primary"
><i
class=
"fas fa-fw fa-save"
></i>
Tambah Data Peminjaman
</a>
<a
href=
"{% url 'loans-by-user'%}"
type=
"button"
class=
"btn btn-primary"
><i
class=
"fas fa-fw fa-save"
></i>
Tambah Data Peminjaman by user
</a>
</div>
</div>
<div
class=
"card-body"
>
<div
class=
"card-body"
>
<div
class=
"table-responsive"
>
<div
class=
"table-responsive"
>
...
...
perpustakaan/book/templates/
member/datamemb
er.html
→
perpustakaan/book/templates/
peminjaman/list_peminjaman_us
er.html
View file @
03f0d220
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
<div
class=
"container-fluid"
>
<div
class=
"container-fluid"
>
<div
class=
"card shadow mb-4"
>
<div
class=
"card shadow mb-4"
>
<div
class=
"card-header py-3"
>
<div
class=
"card-header py-3"
>
<h2
class=
"m-0 font-weight-bold text-primary"
>
Data
Member
</h2
>
<h2
class=
"m-0 font-weight-bold text-primary"
>
Data
peminjaman
</h2
>
<br
/>
<br
/>
{% if messages %}
{% if messages %}
{% for message in messages %}
{% for message in messages %}
...
@@ -22,8 +22,9 @@
...
@@ -22,8 +22,9 @@
{{ message | safe }}
{{ message | safe }}
</div>
</div>
{% endfor %}
{% endfor %}
{% endif %}
{% endif %}
<a
href=
"{% url 'createmember'%}"
type=
"button"
class=
"btn btn-primary"
><i
class=
"fas fa-fw fa-save"
></i>
Tambah Data Member
</a>
</div>
</div>
<div
class=
"card-body"
>
<div
class=
"card-body"
>
<div
class=
"table-responsive"
>
<div
class=
"table-responsive"
>
...
@@ -36,33 +37,35 @@
...
@@ -36,33 +37,35 @@
<thead>
<thead>
<tr>
<tr>
<th>
No
</th>
<th>
No
</th>
<th>
Nama Member
</th>
<th>
Nama Peminjam
</th>
<th>
Alamat
</th>
<th>
Judul Buku
</th>
<th>
Email
</th>
<th>
tanggal pinjam
</th>
<th>
tanggal Kembali
</th>
<th>
tanggal Pengembalian
</th>
<th>
Status Peminjaman
</th>
<th>
Aksi
</th>
<th>
Aksi
</th>
</tr>
</tr>
</thead>
</thead>
<tfoot>
<tr>
<th>
No
</th>
<th>
Nama Member
</th>
<th>
Alamat
</th>
<th>
Email
</th>
<th>
Aksi
</th>
</tr>
</tfoot>
<tbody>
<tbody>
{% for
member in member
%}
{% for
peminjaman in peminjaman
%}
<tr>
<tr>
<td>
{{member.id}}
</td>
<td>
{{peminjaman.id}}
</td>
<td>
{{member.nama}}
</td>
<td>
{{peminjaman.member.username}}
</td>
<td>
{{member.alamat}}
</td>
<td>
{{peminjaman.buku.judul}}
</td>
<td>
{{member.email}}
</td>
<td>
{{peminjaman.tanggal_pinjam}}
</td>
<td>
{{peminjaman.tanggal_kembali}}
</td>
<td>
{{peminjaman.tanggal_pengembalian|default:"Not Rerturned"}}
</td>
<td>
{% if peminjaman.status %}
Returned
{% else %}
Not Returned
{% endif %}
</td>
<td>
<td>
<a
href=
"edit/{{
member
.id}}"
class=
"btn btn-warning "
>
<a
href=
"edit/{{
peminjaman
.id}}"
class=
"btn btn-warning "
>
<i
class=
"fas fa-fw fa-edit"
></i><span
class=
"text"
>
Edit
</span>
<i
class=
"fas fa-fw fa-edit"
></i><span
class=
"text"
>
Edit
</span>
</a>
</a>
<a
href=
"delete/{{
member.id}}"
onclick=
"return confirm('a
apakah anda yakin?')"
class=
"btn btn-danger "
>
<a
href=
"delete/{{
peminjaman.id}}"
onclick=
"return confirm('
apakah anda yakin?')"
class=
"btn btn-danger "
>
<i
class=
"fas fa-fw fa-trash"
></i><span
class=
"text"
>
Delete
</span>
<i
class=
"fas fa-fw fa-trash"
></i><span
class=
"text"
>
Delete
</span>
</a>
</a>
</td>
</td>
...
...
perpustakaan/book/templates/peminjaman/tambah_peminjaman.html
0 → 100644
View file @
03f0d220
{% extends "index.html"%} {% block content%}
<div
class=
"card"
>
<div
class=
"card-header text-light bg-gradient-danger"
>
<h3>
Tambah Data Peminjaman by user
</h3>
</div>
<hr>
<div
class=
"card-body"
>
<div
class=
"card-body col-sm-5"
>
<form
method=
"post"
action=
"{% url 'loans-by-user'%}"
enctype=
"multipart/form-data"
>
{% csrf_token %}
<!-- <div class="form-group row">
<label for="tanggal_kembali" class="col-4 col-form-label"> Tanggal Kembali</label>
<div class="col-8">
<input id="tanggal_kembali" name="tanggal_kembali" placeholder="Masukan tanggal kembali" type="date" class="form-control">
</div>
</div>
<div class="form-group row">
<label class="col-4 col-form-label" for="nama">Judul Buku</label>
<div class="col-8">
<select class="form-control" aria-label="Default select example" name="buku_id">
<option selected>Open this select menu</option>
{% for buku in buku %}
<option value="{{buku.id}}">{{buku.judul}}</option>
{%endfor%}
</select>
</div>
</div>
<div class="form-group row">
<label class="col-4 col-form-label" for="nama">Nama Peminjam</label>
<div class="col-8">
<select class="form-control" aria-label="Default select example" name="member_id">
<option selected>Open this select menu</option>
{% for member in member %}
<option value="{{member.id}}">{{member.username}}</option>
{%endfor%}
</select>
</div>
</div> -->
{{form.buku}}
<div
class=
"form-group row"
>
<label
for=
"tanggal_kembali"
class=
"col-4 col-form-label"
>
Tanggal Kembali
</label>
<div
class=
"col-8"
>
<input
id=
"tanggal_kembali"
name=
"tanggal_kembali"
placeholder=
"Masukan tanggal kembali"
type=
"date"
class=
"form-control"
>
</div>
</div>
<hr>
<a
href=
"{% url 'datapeminjaman'%}"
type=
"button"
class=
"btn btn-primary"
>
Back
</a>
<button
type=
"submit"
name=
"submit"
class=
"btn btn-warning align-items-center"
>
Submit
</button>
</form>
</div>
</div>
</div>
{% endblock content%}
\ No newline at end of file
perpustakaan/book/urls.py
View file @
03f0d220
...
@@ -35,5 +35,8 @@ urlpatterns =[
...
@@ -35,5 +35,8 @@ urlpatterns =[
path
(
'categorys/create'
,
CategoryCreateView
.
as_view
(),
name
=
'category-create'
),
path
(
'categorys/create'
,
CategoryCreateView
.
as_view
(),
name
=
'category-create'
),
path
(
'categorys/edit/<int:pk>/'
,
CategoryUpdateView
.
as_view
(),
name
=
'category-update'
),
path
(
'categorys/edit/<int:pk>/'
,
CategoryUpdateView
.
as_view
(),
name
=
'category-update'
),
path
(
'categorys/delete/<int:pk>/'
,
CategoryDeleteView
.
as_view
(),
name
=
'category-delete'
),
path
(
'categorys/delete/<int:pk>/'
,
CategoryDeleteView
.
as_view
(),
name
=
'category-delete'
),
path
(
'book-loan/by-user/'
,
PeminjamanCreateView
.
as_view
(),
name
=
'loans-by-user'
),
path
(
'list-book-loans/by-user/'
,
ListPeminjamanByUser
.
as_view
(),
name
=
'list-loan-user'
),
]
]
perpustakaan/book/views.py
View file @
03f0d220
...
@@ -57,6 +57,32 @@ class BookCreateView(View):
...
@@ -57,6 +57,32 @@ class BookCreateView(View):
messages
.
success
(
request
,
'Berhasil Input Data Buku'
)
messages
.
success
(
request
,
'Berhasil Input Data Buku'
)
return
redirect
(
'book-list'
)
return
redirect
(
'book-list'
)
class
PeminjamanCreateView
(
View
):
template_name
=
'peminjaman/tambah_peminjaman.html'
def
get
(
self
,
request
):
form
=
PeminjamanForm
()
book
=
Book
.
objects
.
all
()
return
render
(
request
,
self
.
template_name
,
{
'form'
:
form
,
'book'
:
book
})
def
post
(
self
,
request
):
form
=
PeminjamanForm
(
request
.
POST
)
if
form
.
is_valid
():
peminjaman
=
form
.
save
(
commit
=
False
)
peminjaman
.
member
=
request
.
user
peminjaman
.
save
()
messages
.
success
(
request
,
'Berhasil Input Data peminjaman'
)
return
redirect
(
'datapeminjaman'
)
return
render
(
request
,
self
.
template_name
,
{
'form'
:
form
})
class
ListPeminjamanByUser
(
View
):
template_name
=
'peminjaman/list_peminjaman_user.html'
def
get
(
self
,
request
):
peminjaman
=
Peminjaman
.
objects
.
filter
(
member
=
request
.
user
)
return
render
(
request
,
self
.
template_name
,
{
'peminjaman'
:
peminjaman
})
@
method_decorator
(
login_required
,
name
=
'dispatch'
)
@
method_decorator
(
login_required
,
name
=
'dispatch'
)
class
BooksUpdateView
(
UpdateView
):
class
BooksUpdateView
(
UpdateView
):
template_name
=
'buku/editbuku.html'
template_name
=
'buku/editbuku.html'
...
@@ -67,9 +93,13 @@ class BooksUpdateView(UpdateView):
...
@@ -67,9 +93,13 @@ class BooksUpdateView(UpdateView):
return
render
(
request
,
self
.
template_name
,
{
'books'
:
books
,
'categorys'
:
categorys
,
'form'
:
form
})
return
render
(
request
,
self
.
template_name
,
{
'books'
:
books
,
'categorys'
:
categorys
,
'form'
:
form
})
def
post
(
self
,
request
,
pk
):
def
post
(
self
,
request
,
pk
):
book
=
get_object_or_404
(
Book
,
pk
=
pk
)
book
=
get_object_or_404
(
Book
,
pk
=
pk
)
form
=
formBook
(
request
.
POST
,
request
.
FILES
,
instance
=
book
)
form
=
formBook
(
request
.
POST
or
None
,
request
.
FILES
or
None
,
instance
=
book
)
if
form
.
is_valid
():
if
form
.
is_valid
():
form
.
save
()
if
book
.
cover
and
form
.
cleaned_data
[
'cover'
]
!=
book
.
cover
:
book
.
cover
.
delete
(
save
=
False
)
new_instance
=
form
.
save
(
commit
=
False
)
new_instance
.
save
()
# Redirect ke halaman setelah berhasil mengupdate data
# Redirect ke halaman setelah berhasil mengupdate data
messages
.
success
(
request
,
'berhasil edit data member'
)
messages
.
success
(
request
,
'berhasil edit data member'
)
...
@@ -80,7 +110,9 @@ class BooksUpdateView(UpdateView):
...
@@ -80,7 +110,9 @@ class BooksUpdateView(UpdateView):
@
login_required
(
login_url
=
settings
.
LOGIN_URL
)
@
login_required
(
login_url
=
settings
.
LOGIN_URL
)
def
deleteBook
(
request
,
id
):
def
deleteBook
(
request
,
id
):
book
=
Book
.
objects
.
get
(
id
=
id
)
book
=
Book
.
objects
.
get
(
id
=
id
)
book
.
cover
.
delete
(
save
=
False
)
book
.
delete
()
book
.
delete
()
messages
.
success
(
request
,
'berhasil menghapus data buku'
)
messages
.
success
(
request
,
'berhasil menghapus data buku'
)
return
redirect
(
'book-list'
)
return
redirect
(
'book-list'
)
...
@@ -102,11 +134,9 @@ def createpeminjaman(request):
...
@@ -102,11 +134,9 @@ def createpeminjaman(request):
# peminjaman = Peminjaman.objects.all()
# peminjaman = Peminjaman.objects.all()
member
=
CustomUser
.
objects
.
all
()
member
=
CustomUser
.
objects
.
all
()
buku
=
Book
.
objects
.
all
()
buku
=
Book
.
objects
.
all
()
peminjaman
=
formLoan
()
context
=
{
context
=
{
'member'
:
member
,
'member'
:
member
,
'buku'
:
buku
,
'buku'
:
buku
'peminjaman'
:
peminjaman
}
}
if
request
.
POST
:
if
request
.
POST
:
tanggal_kembali
=
request
.
POST
[
'tanggal_kembali'
]
tanggal_kembali
=
request
.
POST
[
'tanggal_kembali'
]
...
...
perpustakaan/media/cover/5cm_qdDUhWU.jpg
deleted
100644 → 0
View file @
809afc72
15.4 KB
perpustakaan/media/cover/ips_mSU6dAx.jpeg
deleted
100644 → 0
View file @
809afc72
11.6 KB
perpustakaan/media/cover/narutosip.jpg
0 → 100644
View file @
03f0d220
385 KB
perpustakaan/media/cover/salak.jpg
0 → 100644
View file @
03f0d220
81.1 KB
perpustakaan/media/cover/tokrev.jpeg
→
perpustakaan/media/cover/tokrev
_RBB4o3m
.jpeg
View file @
03f0d220
File moved
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