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
294887db
Commit
294887db
authored
Jul 19, 2024
by
Ilham Maulana
💻
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: login history table list page
parent
e1faea21
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
36 additions
and
1 deletion
+36
-1
urls.py
users/urls.py
+6
-0
views.py
users/views.py
+30
-1
No files found.
users/urls.py
View file @
294887db
...
@@ -5,6 +5,7 @@ from users.views import (
...
@@ -5,6 +5,7 @@ from users.views import (
LibrarianCreateView
,
LibrarianCreateView
,
LibrarianDeleteView
,
LibrarianDeleteView
,
LibrarianUpdateView
,
LibrarianUpdateView
,
LibrarianLoginHistoryView
,
MemberListView
,
MemberListView
,
MemberCreateView
,
MemberCreateView
,
MemberDeleteView
,
MemberDeleteView
,
...
@@ -23,6 +24,11 @@ urlpatterns = [
...
@@ -23,6 +24,11 @@ urlpatterns = [
LibrarianDeleteView
.
as_view
(),
LibrarianDeleteView
.
as_view
(),
name
=
"delete_librarian"
,
name
=
"delete_librarian"
,
),
),
path
(
"librarians/login-history/"
,
LibrarianLoginHistoryView
.
as_view
(),
name
=
"librarian_login_history"
,
),
# members
# members
path
(
"members/"
,
MemberListView
.
as_view
(),
name
=
"member_lists"
),
path
(
"members/"
,
MemberListView
.
as_view
(),
name
=
"member_lists"
),
path
(
"members/add/"
,
MemberCreateView
.
as_view
(),
name
=
"create_member"
),
path
(
"members/add/"
,
MemberCreateView
.
as_view
(),
name
=
"create_member"
),
...
...
users/views.py
View file @
294887db
...
@@ -6,7 +6,7 @@ from django.http import HttpResponseRedirect
...
@@ -6,7 +6,7 @@ from django.http import HttpResponseRedirect
from
django.contrib.auth.views
import
LoginView
,
PasswordResetView
from
django.contrib.auth.views
import
LoginView
,
PasswordResetView
from
django.contrib.messages.views
import
SuccessMessageMixin
from
django.contrib.messages.views
import
SuccessMessageMixin
from
users.models
import
Librarian
,
Member
from
users.models
import
Librarian
,
Member
,
LibrarianLoginHistory
from
users.forms
import
UserForm
,
User
,
LoginForm
,
SignUpForm
,
ForgotPasswordForm
from
users.forms
import
UserForm
,
User
,
LoginForm
,
SignUpForm
,
ForgotPasswordForm
...
@@ -161,6 +161,10 @@ class LibrarianLoginView(LoginView):
...
@@ -161,6 +161,10 @@ class LibrarianLoginView(LoginView):
context
[
"error_message"
]
=
"Access Denied, account is not staff"
context
[
"error_message"
]
=
"Access Denied, account is not staff"
return
self
.
form_invalid
(
form
)
return
self
.
form_invalid
(
form
)
librarian
=
Librarian
.
objects
.
get
(
user
=
user
)
LibrarianLoginHistory
.
objects
.
create
(
librarian
=
librarian
)
return
self
.
form_valid
(
form
)
return
self
.
form_valid
(
form
)
else
:
else
:
return
self
.
form_invalid
(
form
)
return
self
.
form_invalid
(
form
)
...
@@ -226,3 +230,28 @@ class LibrarianResetPassword(SuccessMessageMixin, PasswordResetView):
...
@@ -226,3 +230,28 @@ class LibrarianResetPassword(SuccessMessageMixin, PasswordResetView):
"please make sure you've entered the address you registered with, and check your spam folder."
"please make sure you've entered the address you registered with, and check your spam folder."
)
)
success_url
=
"/password-reset-complete/"
success_url
=
"/password-reset-complete/"
class
LibrarianLoginHistoryView
(
generic
.
ListView
):
model
=
LibrarianLoginHistory
template_name
=
"librarians/librarian_login_history.html"
paginate_by
=
5
def
get_queryset
(
self
):
queryset
=
super
()
.
get_queryset
()
keyword
=
self
.
request
.
GET
.
get
(
"q"
)
order
=
self
.
request
.
GET
.
get
(
"o"
)
if
keyword
:
queryset
=
queryset
.
filter
(
Q
(
librarian__user__username__icontains
=
keyword
)
|
Q
(
librarian__user__email__icontains
=
keyword
)
)
.
order_by
(
"-date"
)
if
order
:
if
order
==
"new"
:
queryset
=
queryset
.
order_by
(
"-date"
)
elif
order
==
"old"
:
queryset
=
queryset
.
order_by
(
"date"
)
return
queryset
.
order_by
(
"-date"
)
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