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
45dab188
Commit
45dab188
authored
Jul 09, 2024
by
impfundev
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: shifting member from function based to class based view
parent
b2feee12
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
43 additions
and
92 deletions
+43
-92
views.py
librarians/views.py
+1
-1
forms.py
members/forms.py
+1
-1
urls.py
members/urls.py
+10
-4
views.py
members/views.py
+31
-86
No files found.
librarians/views.py
View file @
45dab188
...
...
@@ -25,7 +25,7 @@ class LibrarianListView(generic.ListView):
elif
order
==
"old"
:
queryset
=
queryset
.
order_by
(
"created_at"
)
return
queryset
return
queryset
.
order_by
(
"-updated_at"
)
class
LibrarianCreateView
(
generic
.
edit
.
CreateView
):
...
...
members/forms.py
View file @
45dab188
...
...
@@ -20,7 +20,7 @@ class MemberForm(forms.ModelForm):
"class"
:
"form-control"
,
}
),
"password"
:
forms
.
Text
Input
(
"password"
:
forms
.
Password
Input
(
attrs
=
{
"placeholder"
:
"Password"
,
"class"
:
"form-control"
,
...
...
members/urls.py
View file @
45dab188
from
django.urls
import
path
from
members.views
import
index
,
update
,
delete
from
members.views
import
(
MemberListView
,
MemberUpdateView
,
MemberCreateView
,
MemberDeleteView
,
)
urlpatterns
=
[
path
(
""
,
index
,
name
=
"member_lists"
),
path
(
"<id>/update/"
,
update
,
name
=
"update_member"
),
path
(
"<id>/delete/"
,
delete
,
name
=
"delete_member"
),
path
(
""
,
MemberListView
.
as_view
(),
name
=
"member_lists"
),
path
(
"add/"
,
MemberCreateView
.
as_view
(),
name
=
"add_member"
),
path
(
"<int:pk>/"
,
MemberUpdateView
.
as_view
(),
name
=
"update_member"
),
path
(
"<int:pk>/delete/"
,
MemberDeleteView
.
as_view
(),
name
=
"delete_member"
),
]
members/views.py
View file @
45dab188
from
django.shortcuts
import
get_object_or_404
,
render
from
django.http
import
HttpResponseRedirect
from
django.db.models
import
Q
from
datetime
import
datetime
from
django.views
import
generic
from
members.models
import
Members
from
members.forms
import
MemberForm
from
django.core.paginator
import
Paginator
,
PageNotAnInteger
,
EmptyPage
def
index
(
request
):
members
=
Members
.
objects
.
order_by
(
"created_at"
)
context
=
{
"members"
:
members
,
"form"
:
MemberForm
()}
default_page
=
1
page
=
request
.
GET
.
get
(
"page"
,
default_page
)
items_per_page
=
5
paginator
=
Paginator
(
members
,
items_per_page
)
try
:
page_obj
=
paginator
.
page
(
page
)
context
[
"page_obj"
]
=
page_obj
context
[
"members"
]
=
page_obj
except
PageNotAnInteger
:
page_obj
=
paginator
.
page
(
default_page
)
context
[
"page_obj"
]
=
page_obj
context
[
"members"
]
=
page_obj
except
EmptyPage
:
page_obj
=
paginator
.
page
(
paginator
.
num_pages
)
context
[
"page_obj"
]
=
page_obj
context
[
"members"
]
=
page_obj
if
request
.
method
==
"POST"
:
form
=
MemberForm
(
request
.
POST
)
if
form
.
is_valid
:
name
=
form
.
data
[
"name"
]
email
=
form
.
data
[
"email"
]
password
=
form
.
data
[
"password"
]
Members
.
objects
.
create
(
name
=
name
,
email
=
email
,
password
=
password
)
if
request
.
method
==
"GET"
:
keyword
=
request
.
GET
.
get
(
"q"
)
order
=
request
.
GET
.
get
(
"o"
)
class
MemberListView
(
generic
.
ListView
):
model
=
Members
template_name
=
"members.html"
paginate_by
=
5
if
keyword
is
not
None
:
def
get_queryset
(
self
):
queryset
=
super
()
.
get_queryset
()
keyword
=
self
.
request
.
GET
.
get
(
"q"
)
order
=
self
.
request
.
GET
.
get
(
"o"
)
filtered_book_list
=
Members
.
objects
.
filter
(
if
keyword
:
queryset
=
queryset
.
filter
(
Q
(
name__icontains
=
keyword
)
|
Q
(
email__icontains
=
keyword
)
)
.
order_by
(
"-created_at"
)
context
[
"members"
]
=
filtered_book_list
if
order
==
"new"
:
context
[
"members"
]
=
Members
.
objects
.
all
()
.
order_by
(
"-updated_at"
)
elif
order
==
"old"
:
context
[
"members"
]
=
Members
.
objects
.
all
()
.
order_by
(
"updated_at"
)
return
render
(
request
,
"members.html"
,
context
)
def
update
(
request
,
id
):
latest_member_list
=
Members
.
objects
.
order_by
(
"created_at"
)
context
=
{
"members"
:
latest_member_list
}
member
=
Members
.
objects
.
get
(
id
=
id
)
initial
=
{
"name"
:
member
.
name
,
"email"
:
member
.
email
,
"password"
:
member
.
password
,
}
form
=
MemberForm
(
request
.
POST
or
None
,
initial
=
initial
)
if
request
.
method
==
"POST"
:
if
form
.
is_valid
:
name
=
form
.
data
[
"name"
]
email
=
form
.
data
[
"email"
]
password
=
form
.
data
[
"password"
]
member
=
Members
.
objects
.
filter
(
id
=
id
)
member
.
update
(
name
=
name
,
email
=
email
,
password
=
password
,
updated_at
=
datetime
.
now
()
)
if
order
:
if
order
==
"new"
:
queryset
=
queryset
.
order_by
(
"-created_at"
)
elif
order
==
"old"
:
queryset
=
queryset
.
order_by
(
"created_at"
)
return
HttpResponseRedirect
(
"/dashboard/members
"
)
return
queryset
.
order_by
(
"-updated_at
"
)
context
[
"form"
]
=
form
context
[
"member_id"
]
=
id
return
render
(
request
,
"members_update_form.html"
,
context
)
class
MemberCreateView
(
generic
.
edit
.
CreateView
):
model
=
Members
form_class
=
MemberForm
success_url
=
"/dashboard/members/"
template_name
=
"form/create_form.html"
def
delete
(
request
,
id
):
context
=
{}
member
=
get_object_or_404
(
Members
,
id
=
id
)
if
request
.
method
==
"POST"
:
member
.
delete
()
class
MemberUpdateView
(
generic
.
edit
.
UpdateView
):
model
=
Members
form_class
=
MemberForm
success_url
=
"/dashboard/members"
template_name
=
"form/update_form.html"
return
HttpResponseRedirect
(
"/dashboard/members"
)
return
render
(
request
,
"members.html"
,
context
)
class
MemberDeleteView
(
generic
.
edit
.
DeleteView
):
model
=
Members
success_url
=
"/dashboard/members"
template_name
=
"form/delete_form.html"
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