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
7004514f
Commit
7004514f
authored
Jul 09, 2024
by
impfundev
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: handle password empty and hashed new password on member and librarian
parent
ac2c1922
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
93 additions
and
8 deletions
+93
-8
profile.html
dashboards/templates/profile.html
+1
-1
forms.py
librarians/forms.py
+4
-0
views.py
librarians/views.py
+42
-5
forms.py
members/forms.py
+4
-0
views.py
members/views.py
+42
-2
No files found.
dashboards/templates/profile.html
View file @
7004514f
...
...
@@ -9,7 +9,7 @@
</button>
<a
class=
"w-100 btn btn-outline-primary border-white text-white text-start"
href=
"/dashboard/librarians/{{ user.id }}/
update/
"
href=
"/dashboard/librarians/{{ user.id }}/"
><i
class=
"bi bi-person-fill-gear"
></i>
profile
</a
>
<a
...
...
librarians/forms.py
View file @
7004514f
...
...
@@ -26,3 +26,7 @@ class LibrarianForm(forms.ModelForm):
}
),
}
def
__init__
(
self
,
*
args
,
**
kwargs
):
super
(
LibrarianForm
,
self
)
.
__init__
(
*
args
,
**
kwargs
)
self
.
fields
[
"password"
]
.
required
=
False
librarians/views.py
View file @
7004514f
from
django.db.models
import
Q
from
django.views
import
generic
from
librarians.models
import
Librarians
from
librarians.forms
import
LibrarianForm
from
authentications.utils
import
Hasher
class
LibrarianListView
(
generic
.
ListView
):
...
...
@@ -28,24 +30,59 @@ class LibrarianListView(generic.ListView):
return
queryset
.
order_by
(
"-updated_at"
)
class
LibrarianCreateView
(
generic
.
edit
.
Create
View
):
class
LibrarianCreateView
(
generic
.
Form
View
):
model
=
Librarians
form_class
=
LibrarianForm
success_url
=
"/dashboard/librarians/"
template_name
=
"form/create_form.html"
success_message
=
"Librarian created successfully!"
def
post
(
self
,
request
,
*
args
,
**
kwargs
):
form
=
self
.
get_form
()
if
form
.
is_valid
():
formData
=
form
.
cleaned_data
.
copy
()
formData
[
"password"
]
=
Hasher
.
encode
(
formData
[
"password"
])
self
.
model
.
objects
.
create
(
**
formData
)
return
super
()
.
post
(
request
,
*
args
,
**
kwargs
)
class
LibrarianUpdateView
(
generic
.
edit
.
Update
View
):
class
LibrarianUpdateView
(
generic
.
Form
View
):
model
=
Librarians
form_class
=
LibrarianForm
success_url
=
"/dashboard/librarians"
template_name
=
"form/update_form.html"
success_message
=
"Librarian updated successfully!"
def
get
(
self
,
request
,
*
args
,
**
kwargs
):
librarian
=
self
.
model
.
objects
.
get
(
pk
=
kwargs
[
"pk"
])
self
.
initial
=
{
"name"
:
librarian
.
name
,
"email"
:
librarian
.
email
,
"password"
:
librarian
.
password
,
}
return
super
()
.
get
(
request
,
*
args
,
**
kwargs
)
def
post
(
self
,
request
,
*
args
,
**
kwargs
):
librarian
=
self
.
model
.
objects
.
get
(
pk
=
kwargs
[
"pk"
])
form
=
self
.
get_form
()
if
form
.
is_valid
():
formData
=
form
.
cleaned_data
.
copy
()
new_password
=
form
.
cleaned_data
.
get
(
"password"
)
if
new_password
:
formData
[
"password"
]
=
Hasher
.
encode
(
formData
[
"password"
])
else
:
formData
[
"password"
]
=
librarian
.
password
self
.
model
.
objects
.
filter
(
pk
=
kwargs
[
"pk"
])
.
update
(
**
formData
)
return
super
()
.
post
(
request
,
*
args
,
**
kwargs
)
return
self
.
form_invalid
(
form
)
class
LibrarianDeleteView
(
generic
.
edit
.
DeleteView
):
model
=
Librarians
success_url
=
"/dashboard/librarians"
template_name
=
"form/delete_form.html"
success_message
=
"Librarian deleted successfully!"
members/forms.py
View file @
7004514f
...
...
@@ -27,3 +27,7 @@ class MemberForm(forms.ModelForm):
}
),
}
def
__init__
(
self
,
*
args
,
**
kwargs
):
super
(
MemberForm
,
self
)
.
__init__
(
*
args
,
**
kwargs
)
self
.
fields
[
"password"
]
.
required
=
False
members/views.py
View file @
7004514f
from
django.db.models
import
Q
from
django.views
import
generic
from
members.models
import
Members
from
members.forms
import
MemberForm
from
authentications.utils
import
Hasher
class
MemberListView
(
generic
.
ListView
):
...
...
@@ -28,19 +30,57 @@ class MemberListView(generic.ListView):
return
queryset
.
order_by
(
"-updated_at"
)
class
MemberCreateView
(
generic
.
edit
.
Create
View
):
class
MemberCreateView
(
generic
.
Form
View
):
model
=
Members
form_class
=
MemberForm
success_url
=
"/dashboard/members/"
template_name
=
"form/create_form.html"
def
post
(
self
,
request
,
*
args
,
**
kwargs
):
form
=
self
.
get_form
()
if
form
.
is_valid
():
formData
=
form
.
cleaned_data
.
copy
()
formData
[
"password"
]
=
Hasher
.
encode
(
formData
[
"password"
])
self
.
model
.
objects
.
create
(
**
formData
)
return
super
()
.
post
(
request
,
*
args
,
**
kwargs
)
class
MemberUpdateView
(
generic
.
edit
.
Update
View
):
class
MemberUpdateView
(
generic
.
Form
View
):
model
=
Members
form_class
=
MemberForm
success_url
=
"/dashboard/members"
template_name
=
"form/update_form.html"
def
get
(
self
,
request
,
*
args
,
**
kwargs
):
member
=
self
.
model
.
objects
.
get
(
pk
=
kwargs
[
"pk"
])
self
.
initial
=
{
"name"
:
member
.
name
,
"email"
:
member
.
email
,
"password"
:
member
.
password
,
}
return
super
()
.
get
(
request
,
*
args
,
**
kwargs
)
def
post
(
self
,
request
,
*
args
,
**
kwargs
):
member
=
self
.
model
.
objects
.
get
(
pk
=
kwargs
[
"pk"
])
form
=
self
.
get_form
()
if
form
.
is_valid
():
formData
=
form
.
cleaned_data
.
copy
()
new_password
=
form
.
cleaned_data
.
get
(
"password"
)
if
new_password
:
formData
[
"password"
]
=
Hasher
.
encode
(
formData
[
"password"
])
else
:
formData
[
"password"
]
=
member
.
password
self
.
model
.
objects
.
filter
(
pk
=
kwargs
[
"pk"
])
.
update
(
**
formData
)
return
super
()
.
post
(
request
,
*
args
,
**
kwargs
)
return
self
.
form_invalid
(
form
)
class
MemberDeleteView
(
generic
.
edit
.
DeleteView
):
model
=
Members
...
...
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