Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
H
Heyheylibrary
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container registry
Monitor
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
TheJoeCoder
Heyheylibrary
Commits
34dca4f2
Verified
Commit
34dca4f2
authored
5 months ago
by
TheJoeCoder
Browse files
Options
Downloads
Patches
Plain Diff
Fix 500 error when user isn't logged in (invalid login location)
parent
ea8c5a72
Branches
Branches containing commit
No related tags found
No related merge requests found
Pipeline
#316
passed
5 months ago
Stage: build
Changes
1
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
librarian/views.py
+52
-51
52 additions, 51 deletions
librarian/views.py
with
52 additions
and
51 deletions
librarian/views.py
+
52
−
51
View file @
34dca4f2
...
...
@@ -21,6 +21,7 @@ from librarian.utils import assn_utils
from
library.documents
import
BookDocument
from
library.models
import
Book
,
Copy
,
Loan
,
Shelf
,
Author
,
Publisher
,
Location
,
Section
LOGIN_URL
=
"
account_login
"
# Helper Functions
def
load_gbooks_query_pagination
(
query
):
...
...
@@ -52,7 +53,7 @@ def load_gbooks_query_pagination(query):
# Standard Views
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
home
(
request
):
dt
=
timezone
.
now
()
total_books
=
Book
.
objects
.
count
()
...
...
@@ -69,7 +70,7 @@ def home(request):
})
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
user_detail
(
request
,
user_id
):
# Get user
user
=
get_object_or_404
(
User
,
id
=
user_id
)
...
...
@@ -97,7 +98,7 @@ def user_detail(request, user_id):
})
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
copy_detail
(
request
,
copy_id
):
# Get copy
copy
=
get_object_or_404
(
Copy
,
id
=
copy_id
)
...
...
@@ -121,14 +122,14 @@ def copy_detail(request, copy_id):
})
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
book_detail
(
request
,
book_id
):
book
=
get_object_or_404
(
Book
,
id
=
book_id
)
copies
=
book
.
copy_set
.
all
()
return
render
(
request
,
"
librarian/book_detail.html
"
,
{
"
book
"
:
book
,
"
copies
"
:
copies
})
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
author_detail
(
request
,
author_id
):
# Get request config for tables
table_config
=
RequestConfig
(
request
,
paginate
=
{
"
per_page
"
:
10
})
...
...
@@ -146,7 +147,7 @@ def author_detail(request, author_id):
return
render
(
request
,
"
librarian/author_detail.html
"
,
{
"
author
"
:
author
,
"
books_table
"
:
book_table
})
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
publisher_detail
(
request
,
publisher_id
):
# Get request config for tables
table_config
=
RequestConfig
(
request
,
paginate
=
{
"
per_page
"
:
5
})
...
...
@@ -164,29 +165,29 @@ def publisher_detail(request, publisher_id):
return
render
(
request
,
"
librarian/publisher_detail.html
"
,
{
"
publisher
"
:
publisher
,
"
books_table
"
:
book_table
})
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
bulk_shelf_transfer
(
request
):
shelves
=
Shelf
.
objects
.
all
()
return
render
(
request
,
"
librarian/bulk_shelf_transfer.html
"
,
{
"
shelves
"
:
shelves
})
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
bulk_loan
(
request
):
loan_duration
=
settings
.
LIBRARY_SETTINGS
[
"
DEFAULT_LOAN_DURATION
"
]
return
render
(
request
,
"
librarian/bulk_loan.html
"
,
{
"
loan_duration
"
:
loan_duration
})
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
book_add
(
request
):
return
redirect
(
"
librarian:book_add_flow_1
"
)
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
book_add_flow_1
(
request
):
return
render
(
request
,
"
librarian/book_add_flow/1_search_gbooks.html
"
)
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
@require_POST
def
book_add_flow_2
(
request
):
# Process the form data
...
...
@@ -244,7 +245,7 @@ def book_add_flow_2(request):
})
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
book_add_flow_3
(
request
,
**
kwargs
):
typ
=
kwargs
.
get
(
"
type
"
,
"
manual
"
)
tid
=
kwargs
.
get
(
"
id
"
,
None
)
...
...
@@ -300,13 +301,13 @@ def book_add_flow_3(request, **kwargs):
return
render
(
request
,
"
librarian/book_add_flow/3_book_form.html
"
,
{
"
form
"
:
form
,
"
form_type
"
:
typ
,
"
form_id
"
:
tid
})
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
book_add_flow_4
(
request
,
book_id
):
book
=
get_object_or_404
(
Book
,
id
=
book_id
)
return
render
(
request
,
"
librarian/book_add_flow/4_complete.html
"
,
{
"
book
"
:
book
})
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
copy_add
(
request
,
book_id
):
book
=
get_object_or_404
(
Book
,
id
=
book_id
)
if
request
.
method
==
"
POST
"
:
...
...
@@ -321,7 +322,7 @@ def copy_add(request, book_id):
return
render
(
request
,
"
librarian/copy_add.html
"
,
{
"
form
"
:
form
})
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
author_add
(
request
):
if
request
.
method
==
"
POST
"
:
form
=
AuthorAddForm
(
request
.
POST
)
...
...
@@ -338,7 +339,7 @@ def author_add(request):
})
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
publisher_add
(
request
):
if
request
.
method
==
"
POST
"
:
form
=
PublisherAddForm
(
request
.
POST
)
...
...
@@ -355,7 +356,7 @@ def publisher_add(request):
})
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
location_add
(
request
):
if
request
.
method
==
"
POST
"
:
form
=
LocationForm
(
request
.
POST
)
...
...
@@ -371,7 +372,7 @@ def location_add(request):
})
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
section_add_location
(
request
,
location_id
):
location
=
get_object_or_404
(
Location
,
id
=
location_id
)
if
request
.
method
==
"
POST
"
:
...
...
@@ -388,7 +389,7 @@ def section_add_location(request, location_id):
})
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
section_add
(
request
):
if
request
.
method
==
"
POST
"
:
form
=
SectionForm
(
request
.
POST
)
...
...
@@ -404,7 +405,7 @@ def section_add(request):
})
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
shelf_add_section
(
request
,
section_id
):
section
=
get_object_or_404
(
Section
,
id
=
section_id
)
if
request
.
method
==
"
POST
"
:
...
...
@@ -421,7 +422,7 @@ def shelf_add_section(request, section_id):
})
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
shelf_add
(
request
):
if
request
.
method
==
"
POST
"
:
form
=
ShelfForm
(
request
.
POST
)
...
...
@@ -437,7 +438,7 @@ def shelf_add(request):
})
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
book_edit
(
request
,
book_id
):
book
=
get_object_or_404
(
Book
,
id
=
book_id
)
if
request
.
method
==
"
POST
"
:
...
...
@@ -455,7 +456,7 @@ def book_edit(request, book_id):
})
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
author_edit
(
request
,
author_id
):
author
=
get_object_or_404
(
Author
,
id
=
author_id
)
if
request
.
method
==
"
POST
"
:
...
...
@@ -473,7 +474,7 @@ def author_edit(request, author_id):
})
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
publisher_edit
(
request
,
publisher_id
):
publisher
=
get_object_or_404
(
Publisher
,
id
=
publisher_id
)
if
request
.
method
==
"
POST
"
:
...
...
@@ -491,7 +492,7 @@ def publisher_edit(request, publisher_id):
})
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
location_edit
(
request
,
location_id
):
location
=
get_object_or_404
(
Location
,
id
=
location_id
)
if
request
.
method
==
"
POST
"
:
...
...
@@ -508,7 +509,7 @@ def location_edit(request, location_id):
})
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
section_edit
(
request
,
section_id
):
section
=
get_object_or_404
(
Section
,
id
=
section_id
)
if
request
.
method
==
"
POST
"
:
...
...
@@ -525,7 +526,7 @@ def section_edit(request, section_id):
})
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
shelf_edit
(
request
,
shelf_id
):
shelf
=
get_object_or_404
(
Shelf
,
id
=
shelf_id
)
if
request
.
method
==
"
POST
"
:
...
...
@@ -542,7 +543,7 @@ def shelf_edit(request, shelf_id):
})
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
user_add
(
request
):
if
request
.
method
==
"
POST
"
:
form
=
UserForm
(
request
.
POST
)
...
...
@@ -558,7 +559,7 @@ def user_add(request):
})
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
user_edit
(
request
,
user_id
):
user
=
get_object_or_404
(
User
,
id
=
user_id
)
if
request
.
method
==
"
POST
"
:
...
...
@@ -577,7 +578,7 @@ def user_edit(request, user_id):
})
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
search_books
(
request
):
# Get query
query
=
request
.
GET
.
get
(
"
q
"
)
...
...
@@ -589,7 +590,7 @@ def search_books(request):
return
render
(
request
,
"
librarian/search_results.html
"
,
{
"
results
"
:
books
,
"
query
"
:
query
})
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
search_all
(
request
):
# Get query
query
=
request
.
GET
.
get
(
"
q
"
)
...
...
@@ -624,13 +625,13 @@ def search_all(request):
return
render
(
request
,
"
librarian/search_results.html
"
,
{
"
results
"
:
results
,
"
query
"
:
query
})
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
location_manager
(
request
):
locations
=
Location
.
objects
.
all
()
return
render
(
request
,
"
librarian/location_manager.html
"
,
{
"
locations
"
:
locations
})
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
@require_POST
def
location_delete
(
request
,
location_id
):
location
=
get_object_or_404
(
Location
,
id
=
location_id
)
...
...
@@ -638,7 +639,7 @@ def location_delete(request, location_id):
return
redirect
(
"
librarian:location_manager
"
)
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
@require_POST
def
section_delete
(
request
,
section_id
):
section
=
get_object_or_404
(
Section
,
id
=
section_id
)
...
...
@@ -646,7 +647,7 @@ def section_delete(request, section_id):
return
redirect
(
"
librarian:location_manager
"
)
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
barcode_queue
(
request
):
tbl_reqconfig
=
RequestConfig
(
request
)
queue
=
BarcodeQueueItem
.
objects
.
filter
(
processed
=
False
,
user
=
request
.
user
)
...
...
@@ -655,7 +656,7 @@ def barcode_queue(request):
return
render
(
request
,
"
librarian/barcode_queue.html
"
,
{
"
queue
"
:
queue
,
"
qtable
"
:
qtable
})
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
@require_POST
def
barcode_delete
(
request
,
bqi_id
):
bqi
=
get_object_or_404
(
BarcodeQueueItem
,
id
=
bqi_id
)
...
...
@@ -663,7 +664,7 @@ def barcode_delete(request, bqi_id):
return
redirect
(
"
librarian:barcode_queue
"
)
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
@require_POST
def
barcode_create_user
(
request
,
user_id
):
user
=
get_object_or_404
(
User
,
id
=
user_id
)
...
...
@@ -672,7 +673,7 @@ def barcode_create_user(request, user_id):
return
redirect
(
"
librarian:barcode_queue
"
)
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
@require_POST
def
barcode_create_copy
(
request
,
copy_id
):
copy
=
get_object_or_404
(
Copy
,
id
=
copy_id
)
...
...
@@ -681,7 +682,7 @@ def barcode_create_copy(request, copy_id):
return
redirect
(
"
librarian:barcode_queue
"
)
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
@require_POST
def
shelf_delete
(
request
,
shelf_id
):
shelf
=
get_object_or_404
(
Shelf
,
id
=
shelf_id
)
...
...
@@ -689,20 +690,20 @@ def shelf_delete(request, shelf_id):
return
redirect
(
"
librarian:location_manager
"
)
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
barcode_print
(
request
):
barcodes
=
BarcodeQueueItem
.
objects
.
filter
(
processed
=
False
,
user
=
request
.
user
)
return
render
(
request
,
"
librarian/barcode_print.html
"
,
{
"
barcode_list
"
:
barcodes
})
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
@require_POST
def
barcode_markalldone
(
request
):
BarcodeQueueItem
.
objects
.
filter
(
processed
=
False
,
user
=
request
.
user
).
update
(
processed
=
True
)
return
redirect
(
"
librarian:barcode_queue
"
)
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
bulk_return
(
request
):
return
render
(
request
,
"
librarian/bulk_return.html
"
)
...
...
@@ -713,39 +714,39 @@ def render_error(request, message):
return
render
(
request
,
"
librarian/error.html
"
,
{
"
message
"
:
message
,
"
referer
"
:
referer
})
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
error_no_user
(
request
):
return
render_error
(
request
,
"
No user specified
"
)
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
error_no_copy
(
request
):
return
render_error
(
request
,
"
No copy specified
"
)
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
error_no_loan
(
request
):
return
render_error
(
request
,
"
No loan specified
"
)
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
error_no_book
(
request
):
return
render_error
(
request
,
"
No book specified
"
)
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
error_no_author
(
request
):
return
render_error
(
request
,
"
No author specified
"
)
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
error_no_publisher
(
request
):
return
render_error
(
request
,
"
No publisher specified
"
)
# Processes
@require_POST
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
return_copy
(
request
,
copy_id
):
copy
=
get_object_or_404
(
Copy
,
id
=
copy_id
)
if
copy
.
loan_set
.
filter
(
checked_in__isnull
=
True
).
count
()
==
0
:
...
...
@@ -758,7 +759,7 @@ def return_copy(request, copy_id):
@require_POST
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
return_loan
(
request
,
loan_id
):
"""
Checks in a loan.
...
...
@@ -778,7 +779,7 @@ def return_loan(request, loan_id):
@require_POST
@staff_member_required
(
login_url
=
'
login
'
)
@staff_member_required
(
login_url
=
LOGIN_URL
)
def
renew_loan
(
request
,
loan_id
):
"""
Renews a loan.
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
sign in
to comment