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
2f4006c7
Commit
2f4006c7
authored
Sep 04, 2019
by
Gladys Forte
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
change request serializers
parent
73a8d436
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
713 additions
and
124 deletions
+713
-124
app/applicationlayer/management/changerequest/serializers.py
app/applicationlayer/management/changerequest/serializers.py
+142
-0
app/applicationlayer/management/changerequest/utils_cr.py
app/applicationlayer/management/changerequest/utils_cr.py
+0
-0
app/applicationlayer/management/changerequest/views.py
app/applicationlayer/management/changerequest/views.py
+177
-0
app/entities/migrations/0006_auto_20190904_1855.py
app/entities/migrations/0006_auto_20190904_1855.py
+105
-0
app/entities/modelcommon.py
app/entities/modelcommon.py
+1
-0
app/entities/models.py
app/entities/models.py
+288
-124
No files found.
app/applicationlayer/management/changerequest/serializers.py
0 → 100644
View file @
2f4006c7
from
app.entities
import
models
from
rest_framework
import
serializers
from
django.db.models
import
Q
class
ChangeRequestTemplatesSerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
model
=
models
.
ChangeRequestTemplateHeader
fields
=
'__all__'
read_only_fields
=
[
'created'
,
'deleted_at'
]
class
ChangeRequestTemplateApproversSerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
model
=
models
.
ChangeRequestTemplateApprovers
fields
=
'__all__'
read_only_fields
=
[
'created'
,
'deleted_at'
]
class
ChangeRequestTemplateStakeHoldersSerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
model
=
models
.
ChangeRequestTemplateStakeHolders
fields
=
'__all__'
read_only_fields
=
[
'created'
,
'deleted_at'
]
class
ChangeRequestTemplateAttachmentsSerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
model
=
models
.
ChangeRequestTemplateAttachments
fields
=
'__all__'
read_only_fields
=
[
'created'
,
'deleted_at'
]
class
ChangeRequestTemplateDetailsSerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
model
=
models
.
ChangeRequestTemplateDetails
fields
=
'__all__'
read_only_fields
=
[
'created'
,
'deleted_at'
]
class
ChangeRequestFormHeaderSerializer
(
serializers
.
ModelSerializer
):
# def to_representation(self, instance):
# ret = super().to_representation(instance)
# try:
# # id_number = self.context.get('request').META.get('HTTP_ACCOUNT_NO')
# id_number = "Acct-20190813-0000137"
# current_level = models.ChangeRequestFormApprovers.objects.filter(
# Q(form_code=ret['form_code']) &
# Q(deleted_at=None) &
# (Q(action='') | Q(action=None))
# ).order_by('level')
# if current_level.first()['user'] == id_number:
# if instance.status.lower() == 'rejected':
# approver = 'No'
# elif instance.status.lower() == 'cancelled':
# approver = 'No'
# elif instance.status.lower() == 'closed':
# approver = 'No'
# else:
# approver = 'Yes'
# else:
# approver = 'No'
# ret['action'] = approver
# return ret
# except Exception as e:
# ret['action'] = "No"
# return ret
class
Meta
:
model
=
models
.
ChangeRequestFormHeader
fields
=
'__all__'
read_only_fields
=
[
'created'
,
'deleted_at'
]
class
ChangeRequestFormApproversSerializer
(
serializers
.
ModelSerializer
):
# def to_representation(self, instance):
# ret = super().to_representation(instance)
# try:
# user = instance.user
# user_details = get_account_details(user)
# name = user_details['name']
# group = user_details['groups'][0]['name']
# company = user_details['groups'][0]['company__name']
# ret['name'] = name
# ret['department'] = group
# ret['company'] = company
# return ret
# except Exception as e:
# ret['name'] = "none"
# ret['department'] = "none"
# ret['company'] = "none"
# return ret
class
Meta
:
model
=
models
.
ChangeRequestFormApprovers
fields
=
'__all__'
read_only_fields
=
[
'created'
,
'deleted_at'
]
class
ChangeRequestFormStakeHoldersSerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
model
=
models
.
ChangeRequestFormStakeHolders
fields
=
'__all__'
read_only_fields
=
[
'created'
,
'deleted_at'
]
class
ChangeRequestFormAttachmentsSerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
model
=
models
.
ChangeRequestFormAttachments
fields
=
'__all__'
read_only_fields
=
[
'created'
,
'deleted_at'
]
class
ChangeRequestFormDetailsSerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
model
=
models
.
ChangeRequestFormDetails
fields
=
'__all__'
read_only_fields
=
[
'created'
,
'deleted_at'
]
app/applicationlayer/management/changerequest/utils_cr.py
0 → 100644
View file @
2f4006c7
app/applicationlayer/management/changerequest/views.py
0 → 100644
View file @
2f4006c7
from
django.shortcuts
import
render
from
rest_framework
import
viewsets
as
meviewsets
from
app.applicationlayer.management.changerequest
import
serializers
from
app.entities
import
models
from
app.applicationlayer
import
paginators
from
datetime
import
datetime
from
rest_framework.response
import
Response
from
django.http
import
Http404
from
django.db.models
import
Q
import
requests
from
rest_framework.views
import
APIView
class
ChangeRequestTemplatePost
(
APIView
):
# @transaction.atomic()
def
post
(
self
,
request
):
visitor_info
=
request
.
data
try
:
data_list_inte
=
[]
data_list_anse
=
[]
time
=
timezone
.
now
()
data_log
=
{
'title'
:
visitor_info
[
'title'
],
'first_name'
:
visitor_info
[
'first_name'
],
'last_name'
:
visitor_info
[
'last_name'
],
'badge_name'
:
visitor_info
[
'badge_name'
],
'jobtitle'
:
visitor_info
[
'jobtitle'
],
'email'
:
visitor_info
[
'email'
],
'telno'
:
visitor_info
[
'telno'
],
'mobileno'
:
visitor_info
[
'mobileno'
],
'pdpa_accepted'
:
visitor_info
[
'pdpa_accepted'
],
'qrcode'
:
"None"
,
'reg_mode'
:
'STANDARD'
,
'reg_type'
:
'WALKIN'
,
'category'
:
visitor_info
[
'category'
],
'created_at'
:
time
,
'updated_at'
:
time
}
add
=
visitor_info
[
'address'
]
comp
=
visitor_info
[
'company'
]
inte
=
visitor_info
[
'interests'
]
answer
=
visitor_info
[
'survey_answers'
]
sp1
=
transaction
.
savepoint
()
# nothing will save to db
# create visitorinfo
serializer
=
VisitorsInfoSerializer
(
data
=
data_log
)
if
serializer
.
is_valid
(
raise_exception
=
True
):
serializer
.
save
()
x
=
serializer
.
data
[
'visitor_id'
]
print
(
x
)
add
[
'visitor'
]
=
x
add
[
'created_at'
]
=
time
add
[
'updated_at'
]
=
time
comp
[
'visitor'
]
=
x
comp
[
'created_at'
]
=
time
comp
[
'updated_at'
]
=
time
# create visitoraddressinfo
serializerAdd
=
VisitorsAddressInfoSerializer
(
data
=
add
)
if
serializerAdd
.
is_valid
(
raise_exception
=
True
):
serializerAdd
.
save
()
# create visitorcompanyinfo
serializerComp
=
VisitorsCompanyInfoSerializer
(
data
=
comp
)
if
serializerComp
.
is_valid
(
raise_exception
=
True
):
serializerComp
.
save
()
# create interest
for
i
in
inte
:
i
[
'visitor'
]
=
x
i
[
'created_at'
]
=
time
i
[
'updated_at'
]
=
time
data_list_inte
.
append
(
i
)
# inte returns list of interest needs many=True
serializerInte
=
InterestSerializer
(
data
=
data_list_inte
,
many
=
True
)
if
serializerInte
.
is_valid
(
raise_exception
=
True
):
serializerInte
.
save
()
# create survey_answer
for
a
in
answer
:
a
[
'visitor'
]
=
x
a
[
'created_at'
]
=
time
a
[
'updated_at'
]
=
time
data_list_anse
.
append
(
a
)
serializerAns
=
SurveyAnswerSerializer
(
data
=
data_list_anse
,
many
=
True
)
if
serializerAns
.
is_valid
(
raise_exception
=
True
):
serializerAns
.
save
()
# create qr code
qrcode_formatted
=
qr_code_generator
(
visitor_info
[
'first_name'
],
visitor_info
[
'last_name'
],
visitor_info
[
'title'
],
add
[
'company_name'
],
visitor_info
[
'telno'
],
visitor_info
[
'email'
],
x
)
mystring
=
qrcode_formatted
.
replace
(
'
\n
'
,
''
)
# print(mystring)
VisitorsInfo
.
objects
.
filter
(
visitor_id
=
x
)
.
update
(
qrcode_vcard
=
qrcode_formatted
,
qrcode
=
mystring
)
# save qrdata with new line
get_qr_blob
(
qrcode_formatted
,
x
)
# response data
res
=
[]
response
=
{
'visitor_id'
:
x
,
'first_name'
:
visitor_info
[
'first_name'
],
'last_name'
:
visitor_info
[
'last_name'
],
'badge_name'
:
visitor_info
[
'badge_name'
],
'jobtitle'
:
visitor_info
[
'jobtitle'
],
'qrcode'
:
mystring
,
'position'
:
comp
[
'position'
],
'company'
:
add
[
'company_name'
]
}
res
.
append
(
response
)
message
=
{
'code'
:
201
,
'status'
:
'success'
,
'message'
:
'Visitor information successfully registered.'
,
'results'
:
res
}
# remove this on master API
# perform syncing here
# thread = threading.Thread(target=upload_visitors_to_master())
# thread.daemon = True # Daemonize thread
# thread.start()
# print("Threaded: Sync Visitors")
return
Response
(
message
,
status
=
status
.
HTTP_201_CREATED
)
except
ValidationError
as
e
:
transaction
.
savepoint_rollback
(
sp1
)
message
=
{
'code'
:
400
,
'status'
:
'failed'
,
'message'
:
str
(
e
),
}
return
Response
(
message
,
status
=
status
.
HTTP_400_BAD_REQUEST
)
except
Exception
as
e
:
transaction
.
savepoint_rollback
(
sp1
)
message
=
{
'code'
:
500
,
'status'
:
'failed'
,
'message'
:
'Request was not able to process'
+
str
(
e
),
}
return
Response
(
message
,
status
=
status
.
HTTP_500_INTERNAL_SERVER_ERROR
)
app/entities/migrations/0006_auto_20190904_1855.py
0 → 100644
View file @
2f4006c7
# Generated by Django 2.2 on 2019-09-04 18:55
from
django.db
import
migrations
,
models
import
django.db.models.deletion
import
django.utils.timezone
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'entities'
,
'0005_auto_20190904_1635'
),
]
operations
=
[
migrations
.
RemoveField
(
model_name
=
'notification'
,
name
=
'form_header_code'
,
),
migrations
.
AddField
(
model_name
=
'notification'
,
name
=
'form_code'
,
field
=
models
.
ForeignKey
(
default
=
django
.
utils
.
timezone
.
now
,
on_delete
=
django
.
db
.
models
.
deletion
.
DO_NOTHING
,
to
=
'entities.ChangeRequestFormHeader'
,
to_field
=
'form_code'
),
preserve_default
=
False
,
),
migrations
.
AlterField
(
model_name
=
'changerequestformapprovers'
,
name
=
'form_code'
,
field
=
models
.
ForeignKey
(
on_delete
=
django
.
db
.
models
.
deletion
.
DO_NOTHING
,
related_name
=
'frm_approvers'
,
to
=
'entities.ChangeRequestFormHeader'
,
to_field
=
'form_code'
),
),
migrations
.
AlterField
(
model_name
=
'changerequestformattachments'
,
name
=
'form_code'
,
field
=
models
.
ForeignKey
(
on_delete
=
django
.
db
.
models
.
deletion
.
DO_NOTHING
,
related_name
=
'frm_attachments'
,
to
=
'entities.ChangeRequestFormHeader'
,
to_field
=
'form_code'
),
),
migrations
.
AlterField
(
model_name
=
'changerequestformdetails'
,
name
=
'field_idx'
,
field
=
models
.
TextField
(
max_length
=
255
),
),
migrations
.
AlterField
(
model_name
=
'changerequestformdetails'
,
name
=
'field_props'
,
field
=
models
.
TextField
(
max_length
=
255
),
),
migrations
.
AlterField
(
model_name
=
'changerequestformdetails'
,
name
=
'field_ref'
,
field
=
models
.
TextField
(
max_length
=
255
),
),
migrations
.
AlterField
(
model_name
=
'changerequestformdetails'
,
name
=
'field_val'
,
field
=
models
.
TextField
(
max_length
=
255
),
),
migrations
.
AlterField
(
model_name
=
'changerequestformdetails'
,
name
=
'form_code'
,
field
=
models
.
ForeignKey
(
on_delete
=
django
.
db
.
models
.
deletion
.
DO_NOTHING
,
related_name
=
'frm_details'
,
to
=
'entities.ChangeRequestFormHeader'
,
to_field
=
'form_code'
),
),
migrations
.
AlterField
(
model_name
=
'changerequestformstakeholders'
,
name
=
'form_code'
,
field
=
models
.
ForeignKey
(
on_delete
=
django
.
db
.
models
.
deletion
.
DO_NOTHING
,
related_name
=
'frm_stakes'
,
to
=
'entities.ChangeRequestFormHeader'
,
to_field
=
'form_code'
),
),
migrations
.
AlterField
(
model_name
=
'changerequesttemplateapprovers'
,
name
=
'template_no'
,
field
=
models
.
ForeignKey
(
on_delete
=
django
.
db
.
models
.
deletion
.
DO_NOTHING
,
related_name
=
'tmp_approvers'
,
to
=
'entities.ChangeRequestTemplateHeader'
,
to_field
=
'template_no'
),
),
migrations
.
AlterField
(
model_name
=
'changerequesttemplateattachments'
,
name
=
'template_no'
,
field
=
models
.
ForeignKey
(
on_delete
=
django
.
db
.
models
.
deletion
.
DO_NOTHING
,
related_name
=
'tmp_attachments'
,
to
=
'entities.ChangeRequestTemplateHeader'
,
to_field
=
'template_no'
),
),
migrations
.
AlterField
(
model_name
=
'changerequesttemplatedetails'
,
name
=
'field_idx'
,
field
=
models
.
TextField
(
max_length
=
255
),
),
migrations
.
AlterField
(
model_name
=
'changerequesttemplatedetails'
,
name
=
'field_props'
,
field
=
models
.
TextField
(
max_length
=
255
),
),
migrations
.
AlterField
(
model_name
=
'changerequesttemplatedetails'
,
name
=
'field_ref'
,
field
=
models
.
TextField
(
max_length
=
255
),
),
migrations
.
AlterField
(
model_name
=
'changerequesttemplatedetails'
,
name
=
'field_val'
,
field
=
models
.
TextField
(
max_length
=
255
),
),
migrations
.
AlterField
(
model_name
=
'changerequesttemplatedetails'
,
name
=
'template_no'
,
field
=
models
.
ForeignKey
(
on_delete
=
django
.
db
.
models
.
deletion
.
DO_NOTHING
,
related_name
=
'tmp_details'
,
to
=
'entities.ChangeRequestTemplateHeader'
,
to_field
=
'template_no'
),
),
migrations
.
AlterField
(
model_name
=
'changerequesttemplatestakeholders'
,
name
=
'template_no'
,
field
=
models
.
ForeignKey
(
on_delete
=
django
.
db
.
models
.
deletion
.
DO_NOTHING
,
related_name
=
'tmp_stakes'
,
to
=
'entities.ChangeRequestTemplateHeader'
,
to_field
=
'template_no'
),
),
]
app/entities/modelcommon.py
View file @
2f4006c7
...
@@ -98,3 +98,4 @@ class AuditClass(BaseAuditClass):
...
@@ -98,3 +98,4 @@ class AuditClass(BaseAuditClass):
def
_str__
(
self
):
def
_str__
(
self
):
return
self
.
name
return
self
.
name
app/entities/models.py
View file @
2f4006c7
This diff is collapsed.
Click to expand it.
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