Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Sign in
Toggle navigation
R
red-ci-cd
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
red-group-test
red-ci-cd
Commits
b42bd26b
Commit
b42bd26b
authored
Mar 12, 2020
by
John Red Medrano
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
{dev bugfix} added transation.atomic with savepoint_rollback on batchupload
parent
519a43c7
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
37 additions
and
15 deletions
+37
-15
app/applicationlayer/management/batchupload/views.py
app/applicationlayer/management/batchupload/views.py
+37
-15
No files found.
app/applicationlayer/management/batchupload/views.py
View file @
b42bd26b
...
...
@@ -40,6 +40,7 @@ from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from
reportlab.lib.pagesizes
import
A4
from
reportlab.lib.enums
import
TA_JUSTIFY
,
TA_RIGHT
,
TA_LEFT
,
TA_CENTER
from
reportlab.lib.colors
import
red
from
django.db
import
transaction
config
=
configparser
.
ConfigParser
()
...
...
@@ -274,9 +275,11 @@ class BatchUploadViewSet(viewsets.ModelViewSet):
return
self
.
get_paginated_response
(
message
)
@
transaction
.
atomic
def
create
(
self
,
request
,
**
kwargs
):
csv_file
=
request
.
FILES
[
'file'
]
extension_file
=
str
(
csv_file
)
.
split
(
'.'
)[
1
]
sp1
=
transaction
.
savepoint
()
if
extension_file
.
lower
()
!=
'csv'
:
return
Response
(
...
...
@@ -322,7 +325,7 @@ class BatchUploadViewSet(viewsets.ModelViewSet):
Q
(
company
=
user_company
)
)
if
not
request_department
:
etl2
.
delete
()
#
etl2.delete()
return
Response
(
{
"message"
:
company_error
},
status
=
status
.
HTTP_400_BAD_REQUEST
...
...
@@ -330,7 +333,7 @@ class BatchUploadViewSet(viewsets.ModelViewSet):
elif
request
.
user
.
user_type
==
enums_department
:
if
keys
[
'Department_Code'
]
!=
request
.
user
.
department
.
code
:
etl2
.
delete
()
#
etl2.delete()
return
Response
(
{
"message"
:
department_error
},
# {"message": str(e)},
...
...
@@ -341,14 +344,28 @@ class BatchUploadViewSet(viewsets.ModelViewSet):
user_department
=
Department
.
objects
.
filter
(
name__icontains
=
keys
[
'Department_Code'
]
)
default_app
=
Application
.
objects
.
filter
(
excel_code
=
keys
[
'Default_app'
]
)
.
first
()
try
:
default_app
=
Application
.
objects
.
filter
(
excel_code
=
keys
[
'Default_app'
]
)
.
first
()
except
Exception
as
e
:
transaction
.
savepoint_rollback
(
sp1
)
return
Response
(
{
"message"
:
f
"Invalid Default Application at row {data + 2}"
},
status
=
status
.
HTTP_400_BAD_REQUEST
)
dept_code
=
Department
.
objects
.
get
(
code
=
keys
[
'Department_Code'
]
)
try
:
dept_code
=
Department
.
objects
.
get
(
code
=
keys
[
'Department_Code'
]
)
except
Exception
as
e
:
transaction
.
savepoint_rollback
(
sp1
)
return
Response
(
{
"message"
:
f
"Invalid Department Code at row {data + 2}"
},
status
=
status
.
HTTP_400_BAD_REQUEST
)
users
=
{
"username"
:
keys
[
'Username'
],
...
...
@@ -425,37 +442,42 @@ class BatchUploadViewSet(viewsets.ModelViewSet):
AllowedCompany
.
objects
.
create
(
**
privilege_object
)
except
IntegrityError
as
e
:
etl2
.
delete
()
# etl2.delete()
transaction
.
savepoint_rollback
(
sp1
)
return
Response
(
{
"message"
:
f
"Duplicate user privilege at row {data + 2}"
},
status
=
status
.
HTTP_400_BAD_REQUEST
)
except
ObjectDoesNotExist
as
e
:
etl2
.
delete
()
# etl2.delete()
transaction
.
savepoint_rollback
(
sp1
)
return
Response
(
{
"message"
:
f
"Department Does not Exist at Privilege row {data + 2}"
},
status
=
status
.
HTTP_400_BAD_REQUEST
)
except
IntegrityError
as
e
:
etl2
.
delete
()
# etl2.delete()
transaction
.
savepoint_rollback
(
sp1
)
return
Response
(
{
"message"
:
f
"Record already exist at row {data + 2}"
},
status
=
status
.
HTTP_400_BAD_REQUEST
)
except
KeyError
as
e
:
etl2
.
delete
()
# etl2.delete()
transaction
.
savepoint_rollback
(
sp1
)
return
Response
(
{
"message"
:
f
"Missing column {e.args[0]}"
},
status
=
status
.
HTTP_400_BAD_REQUEST
)
except
ObjectDoesNotExist
as
e
:
etl2
.
delete
()
# etl2.delete()
transaction
.
savepoint_rollback
(
sp1
)
return
Response
(
{
"message"
:
f
"Department Does not Exist at row {data + 2}"
},
{
"message"
:
f
"Department Does not Exist at row
aaaa
{data + 2}"
},
status
=
status
.
HTTP_400_BAD_REQUEST
)
...
...
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