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
7dddab35
Commit
7dddab35
authored
Sep 04, 2019
by
Gladys Forte
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #65 in RMS/api-main-service from gladys-dev2 to RMSv2
* commit '
2f4006c7
': change request serializers
parents
449c689f
2f4006c7
Changes
6
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 @
7dddab35
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 @
7dddab35
app/applicationlayer/management/changerequest/views.py
0 → 100644
View file @
7dddab35
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 @
7dddab35
# 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 @
7dddab35
...
...
@@ -98,3 +98,4 @@ class AuditClass(BaseAuditClass):
def
_str__
(
self
):
return
self
.
name
app/entities/models.py
View file @
7dddab35
...
...
@@ -59,7 +59,10 @@ class Module(AuditClass):
)
parent
=
models
.
IntegerField
()
sort_id
=
models
.
IntegerField
()
component
=
models
.
CharField
(
max_length
=
255
,
null
=
True
,
blank
=
True
)
component
=
models
.
CharField
(
max_length
=
255
,
null
=
True
,
blank
=
True
)
class
Meta
:
db_table
=
'modules'
...
...
@@ -325,121 +328,154 @@ class EntityLog(AuditClass):
class
Meta
:
db_table
=
'entity_logs'
"""
**********************
***
NOTIFICATION
TABLES ***
***
CHANGE REQUEST
TABLES ***
**********************
"""
class
Notification
(
models
.
Model
):
code
=
models
.
CharField
(
unique
=
True
,
max_length
=
255
)
# primary key
form_header_code
=
models
.
CharField
(
max_length
=
255
,
null
=
True
,
blank
=
True
)
# form_header_code = models.ForeignKey(ChangeRequestFormHeader, on_delete=models.DO_NOTHING,
# to_field='code')
app
=
models
.
ForeignKey
(
Application
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'code'
)
notif_type
=
models
.
CharField
(
choices
=
[(
tag
.
value
,
tag
.
value
)
for
tag
in
enums
.
NotifTypeEnum
],
default
=
enums
.
NotifTypeEnum
.
TASK
.
value
,
max_length
=
20
)
account_no
=
models
.
ForeignKey
(
User
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'code'
,
related_name
=
'receiver_account_no'
)
message
=
models
.
CharField
(
max_length
=
255
,
null
=
True
,
blank
=
True
)
is_read
=
models
.
BooleanField
(
default
=
False
,
null
=
True
)
sender_account_no
=
models
.
ForeignKey
(
User
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'code'
,
related_name
=
'sender_account_no'
)
created
=
models
.
DateTimeField
(
auto_now_add
=
True
)
modified
=
models
.
DateTimeField
(
auto_now
=
True
)
class
Meta
:
db_table
=
'notifications'
class
BaseHeader
(
models
.
Model
):
def
save
(
self
,
*
args
,
**
kwargs
):
super
(
Notification
,
self
)
.
save
(
*
args
,
**
kwargs
)
code
=
number_generator
(
enums
.
GenerateCode
.
NOTIFICATION
.
value
,
self
.
id
)
Notification
.
objects
.
filter
(
id
=
self
.
id
)
.
update
(
code
=
code
)
requested_to_company
=
models
.
ForeignKey
(
Company
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'code'
)
requested_to_department
=
models
.
ForeignKey
(
Department
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'code'
)
"""
**********************
*** CHANGE REQUEST TABLES ***
**********************
"""
requested_to_user
=
models
.
ForeignKey
(
User
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'code'
)
class
BaseHeader
(
models
.
Model
):
# all user mean id_number on database
requested_to_company
=
models
.
ForeignKey
(
Company
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'code'
)
requested_to_department
=
models
.
ForeignKey
(
Department
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'code'
)
requested_to_user
=
models
.
ForeignKey
(
User
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'code'
)
requested_to_template_name
=
models
.
CharField
(
max_length
=
255
)
requested_to_template_id
=
models
.
CharField
(
max_length
=
255
)
requested_to_objective
=
models
.
CharField
(
max_length
=
255
,
blank
=
True
,
null
=
True
)
requested_to_target_date
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
requested_to_objective
=
models
.
CharField
(
max_length
=
255
,
blank
=
True
,
null
=
True
)
requested_to_target_date
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
requested_to_priority
=
models
.
CharField
(
max_length
=
255
)
description
=
models
.
CharField
(
max_length
=
255
,
blank
=
True
,
null
=
True
)
created
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
deleted_at
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
description
=
models
.
CharField
(
max_length
=
255
,
blank
=
True
,
null
=
True
)
created
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
deleted_at
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
class
Meta
:
abstract
=
True
class
BaseApprover
(
models
.
Model
):
level
=
models
.
CharField
(
max_length
=
50
,
blank
=
True
,
null
=
True
)
user
=
models
.
ForeignKey
(
User
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'code'
)
level
=
models
.
CharField
(
max_length
=
50
,
blank
=
True
,
null
=
True
)
user
=
models
.
ForeignKey
(
User
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'code'
)
delegation
=
models
.
CharField
(
max_length
=
50
)
created
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
deleted_at
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
created
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
deleted_at
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
class
Meta
:
abstract
=
True
class
BaseStakeholder
(
models
.
Model
):
user
=
models
.
ForeignKey
(
User
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'code'
)
date_added
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
delegation
=
models
.
CharField
(
max_length
=
255
,
blank
=
True
,
null
=
True
)
created
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
deleted_at
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
user
=
models
.
ForeignKey
(
User
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'code'
)
date_added
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
delegation
=
models
.
CharField
(
max_length
=
255
,
blank
=
True
,
null
=
True
)
created
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
deleted_at
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
class
Meta
:
abstract
=
True
class
BaseAttachment
(
models
.
Model
):
upload_no
=
models
.
CharField
(
max_length
=
255
,
blank
=
True
,
null
=
True
)
upload_no
=
models
.
CharField
(
max_length
=
255
,
blank
=
True
,
null
=
True
)
attachment_type
=
models
.
CharField
(
max_length
=
255
)
attachment_name
=
models
.
CharField
(
max_length
=
255
)
file_name
=
models
.
CharField
(
max_length
=
255
,
blank
=
True
,
null
=
True
)
description
=
models
.
CharField
(
max_length
=
255
,
blank
=
True
,
null
=
True
)
uploaded_by
=
models
.
ForeignKey
(
User
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'code'
)
file_upload
=
models
.
CharField
(
max_length
=
255
,
blank
=
True
,
null
=
True
)
created
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
deleted_at
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
file_name
=
models
.
CharField
(
max_length
=
255
,
blank
=
True
,
null
=
True
)
description
=
models
.
CharField
(
max_length
=
255
,
blank
=
True
,
null
=
True
)
uploaded_by
=
models
.
ForeignKey
(
User
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'code'
)
file_upload
=
models
.
CharField
(
max_length
=
255
,
blank
=
True
,
null
=
True
)
created
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
deleted_at
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
class
Meta
:
abstract
=
True
class
BaseDetails
(
models
.
Model
):
field_idx
=
models
.
Char
Field
(
max_length
=
255
)
field_ref
=
models
.
Char
Field
(
max_length
=
255
)
field_val
=
models
.
Char
Field
(
max_length
=
255
)
field_props
=
models
.
Char
Field
(
max_length
=
255
)
field_idx
=
models
.
Text
Field
(
max_length
=
255
)
field_ref
=
models
.
Text
Field
(
max_length
=
255
)
field_val
=
models
.
Text
Field
(
max_length
=
255
)
field_props
=
models
.
Text
Field
(
max_length
=
255
)
created
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
deleted_at
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
created
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
deleted_at
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
class
Meta
:
abstract
=
True
...
...
@@ -452,14 +488,21 @@ TEMPLATES
'''
class
ChangeRequestTemplateHeader
(
BaseHeader
):
template_no
=
models
.
CharField
(
unique
=
True
,
max_length
=
255
)
created_by_user
=
models
.
ForeignKey
(
User
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'code'
,
related_name
=
'created_by_user'
)
template_no
=
models
.
CharField
(
unique
=
True
,
max_length
=
255
)
created_by_department
=
models
.
ForeignKey
(
Department
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'code'
,
related_name
=
'created_by_department'
)
created_by_user
=
models
.
ForeignKey
(
User
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'code'
,
related_name
=
'created_by_user'
)
created_by_department
=
models
.
ForeignKey
(
Department
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'code'
,
related_name
=
'created_by_department'
)
class
Meta
:
db_table
=
'change_request_template_headers'
...
...
@@ -475,11 +518,21 @@ class ChangeRequestTemplateHeader(BaseHeader):
class
ChangeRequestTemplateApprovers
(
BaseApprover
):
code
=
models
.
CharField
(
unique
=
True
,
max_length
=
255
)
# primary key
template_no
=
models
.
ForeignKey
(
ChangeRequestTemplateHeader
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'template_no'
)
date_sent
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
action
=
models
.
CharField
(
max_length
=
50
,
blank
=
True
,
null
=
True
)
code
=
models
.
CharField
(
unique
=
True
,
max_length
=
255
)
# primary key
template_no
=
models
.
ForeignKey
(
ChangeRequestTemplateHeader
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'template_no'
,
related_name
=
'tmp_approvers'
)
date_sent
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
action
=
models
.
CharField
(
max_length
=
50
,
blank
=
True
,
null
=
True
)
class
Meta
:
db_table
=
'change_request_template_approvers'
...
...
@@ -493,9 +546,14 @@ class ChangeRequestTemplateApprovers(BaseApprover):
class
ChangeRequestTemplateStakeHolders
(
BaseStakeholder
):
code
=
models
.
CharField
(
unique
=
True
,
max_length
=
255
)
# primary key
template_no
=
models
.
ForeignKey
(
ChangeRequestTemplateHeader
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'template_no'
)
code
=
models
.
CharField
(
unique
=
True
,
max_length
=
255
)
# primary key
template_no
=
models
.
ForeignKey
(
ChangeRequestTemplateHeader
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'template_no'
,
related_name
=
'tmp_stakes'
)
class
Meta
:
db_table
=
'change_request_template_stakeholders'
...
...
@@ -509,9 +567,14 @@ class ChangeRequestTemplateStakeHolders(BaseStakeholder):
class
ChangeRequestTemplateAttachments
(
BaseAttachment
):
attachment_no
=
models
.
CharField
(
max_length
=
255
,
unique
=
True
)
template_no
=
models
.
ForeignKey
(
ChangeRequestTemplateHeader
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'template_no'
)
attachment_no
=
models
.
CharField
(
max_length
=
255
,
unique
=
True
)
template_no
=
models
.
ForeignKey
(
ChangeRequestTemplateHeader
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'template_no'
,
related_name
=
'tmp_attachments'
)
class
Meta
:
db_table
=
'change_request_template_attachments'
...
...
@@ -525,9 +588,14 @@ class ChangeRequestTemplateAttachments(BaseAttachment):
class
ChangeRequestTemplateDetails
(
BaseDetails
):
code
=
models
.
CharField
(
max_length
=
255
,
unique
=
True
)
template_no
=
models
.
ForeignKey
(
ChangeRequestTemplateHeader
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'template_no'
)
code
=
models
.
CharField
(
max_length
=
255
,
unique
=
True
)
template_no
=
models
.
ForeignKey
(
ChangeRequestTemplateHeader
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'template_no'
,
related_name
=
'tmp_details'
)
class
Meta
:
db_table
=
'change_request_template_details'
...
...
@@ -539,7 +607,6 @@ class ChangeRequestTemplateDetails(BaseDetails):
pass
'''
*****
FORMS
...
...
@@ -547,22 +614,44 @@ FORMS
'''
class
ChangeRequestFormHeader
(
BaseHeader
):
form_code
=
models
.
CharField
(
max_length
=
255
,
unique
=
True
)
requested_by_user
=
models
.
ForeignKey
(
User
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'code'
,
related_name
=
'requested_by_user'
)
cancel_date
=
models
.
DateTimeField
(
null
=
True
,
blank
=
True
)
requested_by_department
=
models
.
ForeignKey
(
Department
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'code'
,
related_name
=
'requested_by_department'
)
template_no
=
models
.
ForeignKey
(
ChangeRequestTemplateHeader
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'template_no'
)
form_code
=
models
.
CharField
(
max_length
=
255
,
unique
=
True
)
requested_by_user
=
models
.
ForeignKey
(
User
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'code'
,
related_name
=
'requested_by_user'
)
cancel_date
=
models
.
DateTimeField
(
null
=
True
,
blank
=
True
)
requested_by_department
=
models
.
ForeignKey
(
Department
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'code'
,
related_name
=
'requested_by_department'
)
template_no
=
models
.
ForeignKey
(
ChangeRequestTemplateHeader
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'template_no'
)
status
=
models
.
CharField
(
max_length
=
50
)
company_desc
=
models
.
CharField
(
max_length
=
255
,
null
=
True
,
blank
=
True
)
department_desc
=
models
.
CharField
(
max_length
=
255
,
null
=
True
,
blank
=
True
)
requested_desc
=
models
.
CharField
(
max_length
=
255
,
null
=
True
,
blank
=
True
)
old_form_code
=
models
.
CharField
(
max_length
=
255
,
null
=
True
,
blank
=
True
)
company_desc
=
models
.
CharField
(
max_length
=
255
,
null
=
True
,
blank
=
True
)
department_desc
=
models
.
CharField
(
max_length
=
255
,
null
=
True
,
blank
=
True
)
requested_desc
=
models
.
CharField
(
max_length
=
255
,
null
=
True
,
blank
=
True
)
old_form_code
=
models
.
CharField
(
max_length
=
255
,
null
=
True
,
blank
=
True
)
class
Meta
:
db_table
=
'change_request_form_headers'
...
...
@@ -574,10 +663,18 @@ class ChangeRequestFormHeader(BaseHeader):
class
ChangeRequestFormApprovers
(
BaseApprover
):
code
=
models
.
CharField
(
unique
=
True
,
max_length
=
255
)
# primary key
form_code
=
models
.
ForeignKey
(
ChangeRequestFormHeader
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'form_code'
)
remarks
=
models
.
CharField
(
max_length
=
255
,
null
=
True
,
blank
=
True
)
code
=
models
.
CharField
(
unique
=
True
,
max_length
=
255
)
# primary key
form_code
=
models
.
ForeignKey
(
ChangeRequestFormHeader
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'form_code'
,
related_name
=
'frm_approvers'
)
remarks
=
models
.
CharField
(
max_length
=
255
,
null
=
True
,
blank
=
True
)
class
Meta
:
db_table
=
'change_request_form_approvers'
...
...
@@ -591,9 +688,14 @@ class ChangeRequestFormApprovers(BaseApprover):
class
ChangeRequestFormDetails
(
BaseDetails
):
code
=
models
.
CharField
(
unique
=
True
,
max_length
=
255
)
# primary key
form_code
=
models
.
ForeignKey
(
ChangeRequestFormHeader
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'form_code'
)
code
=
models
.
CharField
(
unique
=
True
,
max_length
=
255
)
# primary key
form_code
=
models
.
ForeignKey
(
ChangeRequestFormHeader
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'form_code'
,
related_name
=
'frm_details'
)
class
Meta
:
db_table
=
'change_request_form_details'
...
...
@@ -607,9 +709,14 @@ class ChangeRequestFormDetails(BaseDetails):
class
ChangeRequestFormStakeHolders
(
BaseStakeholder
):
code
=
models
.
CharField
(
unique
=
True
,
max_length
=
255
)
# primary key
form_code
=
models
.
ForeignKey
(
ChangeRequestFormHeader
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'form_code'
)
code
=
models
.
CharField
(
unique
=
True
,
max_length
=
255
)
# primary key
form_code
=
models
.
ForeignKey
(
ChangeRequestFormHeader
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'form_code'
,
related_name
=
'frm_stakes'
)
class
Meta
:
db_table
=
'change_request_form_stakeholders'
...
...
@@ -623,9 +730,14 @@ class ChangeRequestFormStakeHolders(BaseStakeholder):
class
ChangeRequestFormAttachments
(
BaseAttachment
):
code
=
models
.
CharField
(
unique
=
True
,
max_length
=
255
)
# primary key
form_code
=
models
.
ForeignKey
(
ChangeRequestFormHeader
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'form_code'
)
code
=
models
.
CharField
(
unique
=
True
,
max_length
=
255
)
# primary key
form_code
=
models
.
ForeignKey
(
ChangeRequestFormHeader
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'form_code'
,
related_name
=
'frm_attachments'
)
class
Meta
:
db_table
=
'change_request_form_attachments'
...
...
@@ -636,3 +748,55 @@ class ChangeRequestFormAttachments(BaseAttachment):
ChangeRequestFormAttachments
.
objects
.
filter
(
id
=
self
.
id
)
.
update
(
code
=
code
)
pass
"""
**********************
*** NOTIFICATION TABLES ***
**********************
"""
class
Notification
(
models
.
Model
):
code
=
models
.
CharField
(
unique
=
True
,
max_length
=
255
)
# primary key
form_code
=
models
.
ForeignKey
(
ChangeRequestFormHeader
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'form_code'
)
app
=
models
.
ForeignKey
(
Application
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'code'
)
notif_type
=
models
.
CharField
(
choices
=
[(
tag
.
value
,
tag
.
value
)
for
tag
in
enums
.
NotifTypeEnum
],
default
=
enums
.
NotifTypeEnum
.
TASK
.
value
,
max_length
=
20
)
account_no
=
models
.
ForeignKey
(
User
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'code'
,
related_name
=
'receiver_account_no'
)
message
=
models
.
CharField
(
max_length
=
255
,
null
=
True
,
blank
=
True
)
is_read
=
models
.
BooleanField
(
default
=
False
,
null
=
True
)
sender_account_no
=
models
.
ForeignKey
(
User
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'code'
,
related_name
=
'sender_account_no'
)
created
=
models
.
DateTimeField
(
auto_now_add
=
True
)
modified
=
models
.
DateTimeField
(
auto_now
=
True
)
class
Meta
:
db_table
=
'notifications'
def
save
(
self
,
*
args
,
**
kwargs
):
super
(
Notification
,
self
)
.
save
(
*
args
,
**
kwargs
)
code
=
number_generator
(
enums
.
GenerateCode
.
NOTIFICATION
.
value
,
self
.
id
)
Notification
.
objects
.
filter
(
id
=
self
.
id
)
.
update
(
code
=
code
)
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