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
125712fa
Commit
125712fa
authored
Nov 12, 2019
by
John Red Medrano
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'RMSv2' of
http://42.61.118.105:7990/scm/rms/api-main-service
into red-develop
parents
5d5bd544
b66982e3
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
293 additions
and
45 deletions
+293
-45
app/applicationlayer/cms/master/template/default_approver/serializer.py
...nlayer/cms/master/template/default_approver/serializer.py
+21
-0
app/applicationlayer/cms/master/template/default_approver/table_filter.py
...ayer/cms/master/template/default_approver/table_filter.py
+11
-0
app/applicationlayer/cms/master/template/default_approver/views.py
...cationlayer/cms/master/template/default_approver/views.py
+53
-0
app/applicationlayer/cms/urls_cms.py
app/applicationlayer/cms/urls_cms.py
+2
-0
app/applicationlayer/management/delegation/views.py
app/applicationlayer/management/delegation/views.py
+87
-35
app/applicationlayer/master/department/views.py
app/applicationlayer/master/department/views.py
+4
-4
app/entities/migrations/0034_auto_20191108_1924.py
app/entities/migrations/0034_auto_20191108_1924.py
+18
-0
app/entities/migrations/0035_changerequesttemplateapprovers_is_default.py
...rations/0035_changerequesttemplateapprovers_is_default.py
+18
-0
app/entities/migrations/0036_auto_20191111_1549.py
app/entities/migrations/0036_auto_20191111_1549.py
+18
-0
app/entities/migrations/0037_auto_20191112_1403.py
app/entities/migrations/0037_auto_20191112_1403.py
+24
-0
app/entities/migrations/0038_auto_20191112_1457.py
app/entities/migrations/0038_auto_20191112_1457.py
+24
-0
app/entities/models.py
app/entities/models.py
+13
-6
No files found.
app/applicationlayer/cms/master/template/default_approver/serializer.py
0 → 100644
View file @
125712fa
from
rest_framework
import
serializers
from
app.entities.models
import
User
from
app.applicationlayer.utils
import
model_to_dict
class
DefaultApproverSerializer
(
serializers
.
ModelSerializer
):
def
to_representation
(
self
,
instance
):
ret
=
super
()
.
to_representation
(
instance
)
ret
[
'department'
]
=
model_to_dict
(
instance
.
department
)
ret
[
'company'
]
=
model_to_dict
(
instance
.
department
.
company
)
return
ret
class
Meta
:
model
=
User
fields
=
(
'id'
,
'code'
,
'name'
,
'contact_no'
,
'email'
,
'department'
)
# fields = '__all__'
read_only_fields
=
(
'created'
,
'createdby'
,
'modified'
,
'modifiedby'
,
'code'
,
)
\ No newline at end of file
app/applicationlayer/cms/master/template/default_approver/table_filter.py
0 → 100644
View file @
125712fa
from
django_filters
import
rest_framework
as
filters
from
django.db.models
import
Count
from
app.entities.models
import
User
from
django.db.models
import
Q
class
DefaultApproverFilterSet
(
filters
.
FilterSet
):
class
Meta
:
model
=
User
fields
=
'__all__'
app/applicationlayer/cms/master/template/default_approver/views.py
0 → 100644
View file @
125712fa
from
rest_framework
import
viewsets
,
status
from
rest_framework.response
import
Response
from
app.applicationlayer.utils
import
model_to_dict
from
rest_framework.filters
import
SearchFilter
,
OrderingFilter
from
django_filters
import
rest_framework
as
filters
from
app.entities.models
import
User
,
AllowedCompany
from
app.applicationlayer.utils
import
(
CustomPagination
,
status_message_response
)
from
django_filters.rest_framework
import
DjangoFilterBackend
from
app.applicationlayer.cms.master.template.default_approver
import
serializer
from
app.applicationlayer.cms.master.template.default_approver.table_filter
import
(
DefaultApproverFilterSet
)
from
app.helper.decorators
import
rms
from
django.db.models
import
Q
from
rest_framework.exceptions
import
ParseError
class
DefaultApproverViewSet
(
viewsets
.
ModelViewSet
):
queryset
=
User
.
objects
.
all
()
serializer_class
=
serializer
.
DefaultApproverSerializer
pagination_class
=
CustomPagination
lookup_field
=
'code'
filter_backends
=
(
DjangoFilterBackend
,
SearchFilter
,
OrderingFilter
)
filterset_class
=
DefaultApproverFilterSet
ordering_fields
=
'__all__'
search_fields
=
(
'name'
,
'department__name'
,
'code'
)
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
department
=
self
.
request
.
query_params
[
'department_code'
]
queryset
=
self
.
filter_queryset
(
self
.
get_queryset
())
default_user
=
AllowedCompany
.
objects
.
filter
(
Q
(
group_pivots
=
department
)
&
Q
(
approve_cr
=
True
)
)
.
values
(
'id_number'
)
queryset
=
queryset
.
filter
(
code__in
=
default_user
)
page
=
self
.
paginate_queryset
(
queryset
)
if
page
is
not
None
:
serializer
=
self
.
get_serializer
(
page
,
many
=
True
)
message
=
status_message_response
(
200
,
'success'
,
'list of Default Approvers found'
,
serializer
.
data
)
return
self
.
get_paginated_response
(
message
)
serializer
=
self
.
get_serializer
(
queryset
,
many
=
True
)
return
Response
(
serializer
.
data
)
app/applicationlayer/cms/urls_cms.py
View file @
125712fa
...
@@ -12,6 +12,7 @@ from app.applicationlayer.cms.master.template.company.views import ChangeRequest
...
@@ -12,6 +12,7 @@ from app.applicationlayer.cms.master.template.company.views import ChangeRequest
from
app.applicationlayer.cms.master.template.department.views
import
ChangeRequestDepartmentTemplateViewSet
from
app.applicationlayer.cms.master.template.department.views
import
ChangeRequestDepartmentTemplateViewSet
from
app.applicationlayer.cms.master.template.account.views
import
UserListTemplate
from
app.applicationlayer.cms.master.template.account.views
import
UserListTemplate
from
app.applicationlayer.cms.master.template_list.views
import
ChangeRequestTemplateHeaderMaster
from
app.applicationlayer.cms.master.template_list.views
import
ChangeRequestTemplateHeaderMaster
from
app.applicationlayer.cms.master.template.default_approver.views
import
DefaultApproverViewSet
# MASTERS Form
# MASTERS Form
...
@@ -69,6 +70,7 @@ router.register(r'allowed-companies', allowed.AllowedCompanyViewSet)
...
@@ -69,6 +70,7 @@ router.register(r'allowed-companies', allowed.AllowedCompanyViewSet)
router
.
register
(
r'template-companies'
,
ChangeRequestCompanyTemplateViewSet
)
router
.
register
(
r'template-companies'
,
ChangeRequestCompanyTemplateViewSet
)
router
.
register
(
r'template-departments'
,
ChangeRequestDepartmentTemplateViewSet
)
router
.
register
(
r'template-departments'
,
ChangeRequestDepartmentTemplateViewSet
)
router
.
register
(
r'allowed-templates'
,
ChangeRequestTemplateHeaderMaster
)
router
.
register
(
r'allowed-templates'
,
ChangeRequestTemplateHeaderMaster
)
router
.
register
(
r'default-approvers'
,
DefaultApproverViewSet
)
# filter endpoints under Allowed Companies table
# filter endpoints under Allowed Companies table
# filter endpoints under Allowed Companies table
# filter endpoints under Allowed Companies table
...
...
app/applicationlayer/management/delegation/views.py
View file @
125712fa
...
@@ -5,7 +5,7 @@ from rest_framework.response import Response
...
@@ -5,7 +5,7 @@ from rest_framework.response import Response
from
app.applicationlayer.utils
import
model_to_dict
from
app.applicationlayer.utils
import
model_to_dict
from
rest_framework.filters
import
SearchFilter
,
OrderingFilter
from
rest_framework.filters
import
SearchFilter
,
OrderingFilter
from
django_filters
import
rest_framework
as
filters
from
django_filters
import
rest_framework
as
filters
from
app.entities.models
import
Delegation
from
app.entities.models
import
Delegation
,
Department
from
app.applicationlayer.utils
import
(
from
app.applicationlayer.utils
import
(
CustomPagination
,
status_message_response
,
log_save
CustomPagination
,
status_message_response
,
log_save
)
)
...
@@ -64,49 +64,101 @@ class DelegationViewSet(viewsets.ModelViewSet):
...
@@ -64,49 +64,101 @@ class DelegationViewSet(viewsets.ModelViewSet):
@
transaction
.
atomic
@
transaction
.
atomic
def
destroy
(
self
,
request
,
*
args
,
**
kwargs
):
def
destroy
(
self
,
request
,
*
args
,
**
kwargs
):
instance
=
self
.
get_object
()
#
instance = self.get_object()
new_instance
=
model_to_dict
(
instance
)
#
new_instance = model_to_dict(instance)
# restrictions
message
=
{
if
(
new_instance
[
'name'
]
.
lower
()
==
'head of department'
or
'code'
:
400
,
new_instance
[
'name'
]
.
lower
()
==
'sd/od'
or
'status'
:
'failed'
,
new_instance
[
'name'
]
.
lower
()
==
'change control board'
or
'message'
:
'Delegation/s cannot delete, Please update instead'
new_instance
[
'name'
]
.
lower
()
==
'approver'
or
}
new_instance
[
'name'
]
.
lower
()
==
'vendor/implementor'
or
return
Response
(
message
,
status
=
status
.
HTTP_400_BAD_REQUEST
)
new_instance
[
'name'
]
.
lower
()
==
'requestor'
):
print
(
"hello"
)
# exist_in_dept = instance.departments.all(
)
self
.
perform_destroy
(
instance
)
# restrictions
# if not exist_in_dept.count() > 0:
log_save
(
enums
.
LogEnum
.
DELETED
.
value
,
# print(exist_in_dept)
enums
.
LogEntitiesEnum
.
DELEGATION
.
value
,
new_instance
[
'id'
],
# if not (new_instance['name'].lower() == 'head of department' or
new_instance
,
# new_instance['name'].lower() == 'sd/od' or
''
# new_instance['name'].lower() == 'change control board' or
)
# new_instance['name'].lower() == 'approver' or
# new_instance['name'].lower() == 'vendor/implementor' or
return
Response
(
status
=
status
.
HTTP_204_NO_CONTENT
)
# new_instance['name'].lower() == 'requestor'):
# self.perform_destroy(instance)
# log_save(
# enums.LogEnum.DELETED.value,
# enums.LogEntitiesEnum.DELEGATION.value,
# new_instance['id'],
# new_instance,
# ''
# )
# message = {
# 'code': 200,
# 'status': 'success',
# 'message': 'Delegation Successfully deleted'
# }
# return Response(message, status=status.HTTP_200_OK)
# else:
# message = {
# 'code': 400,
# 'status': 'failed',
# 'message': 'Default delegation cannot delete'
# }
# return Response(message, status=status.HTTP_400_BAD_REQUEST)
# else:
# message = {
# 'code': 400,
# 'status': 'failed',
# 'message': 'Cannot delete this delegation due to existing record in department'
# }
# return Response(message, status=status.HTTP_400_BAD_REQUEST)
@
transaction
.
atomic
@
transaction
.
atomic
def
update
(
self
,
request
,
*
args
,
**
kwargs
):
def
update
(
self
,
request
,
*
args
,
**
kwargs
):
partial
=
kwargs
.
pop
(
'partial'
,
Fals
e
)
partial
=
kwargs
.
pop
(
'partial'
,
Tru
e
)
instance
=
self
.
get_object
()
instance
=
self
.
get_object
()
serializer
=
self
.
get_serializer
(
instance
,
data
=
request
.
data
,
partial
=
partial
)
serializer
=
self
.
get_serializer
(
instance
,
data
=
request
.
data
,
partial
=
partial
)
serializer
.
is_valid
(
raise_exception
=
True
)
serializer
.
is_valid
(
raise_exception
=
True
)
old_instance
=
model_to_dict
(
instance
)
old_instance
=
model_to_dict
(
instance
)
self
.
perform_update
(
serializer
)
new_instance
=
serializer
.
data
# restrictions
if
not
(
old_instance
[
'name'
]
.
lower
()
==
'head of department'
or
log_save
(
old_instance
[
'name'
]
.
lower
()
==
'sd/od'
or
enums
.
LogEnum
.
DELETED
.
value
,
old_instance
[
'name'
]
.
lower
()
==
'change control board'
or
enums
.
LogEntitiesEnum
.
DELEGATION
.
value
,
old_instance
[
'name'
]
.
lower
()
==
'approver'
or
old_instance
[
'id'
],
old_instance
[
'name'
]
.
lower
()
==
'vendor/implementor'
or
old_instance
,
old_instance
[
'name'
]
.
lower
()
==
'requestor'
):
new_instance
)
self
.
perform_update
(
serializer
)
new_instance
=
serializer
.
data
log_save
(
enums
.
LogEnum
.
UPDATE
.
value
,
enums
.
LogEntitiesEnum
.
DELEGATION
.
value
,
old_instance
[
'id'
],
old_instance
,
new_instance
)
return
Response
(
serializer
.
data
)
else
:
message
=
{
'code'
:
400
,
'status'
:
'failed'
,
'message'
:
'Default delegation cannot edit'
}
return
Response
(
message
,
status
=
status
.
HTTP_400_BAD_REQUEST
)
return
Response
(
serializer
.
data
)
app/applicationlayer/master/department/views.py
View file @
125712fa
...
@@ -56,14 +56,14 @@ class AdminDepartmentViewSet(viewsets.ModelViewSet):
...
@@ -56,14 +56,14 @@ class AdminDepartmentViewSet(viewsets.ModelViewSet):
return
Response
(
message
)
return
Response
(
message
)
@
action
(
detail
=
True
,
@
action
(
detail
=
True
,
methods
=
[
'get'
],
methods
=
[
'get'
],
url_path
=
'delegations'
,
url_path
=
'delegations'
,
name
=
"Delegation Filtered List"
)
name
=
"Delegation Filtered List"
)
def
delegations
(
self
,
request
,
*
args
,
**
kwargs
):
def
delegations
(
self
,
request
,
*
args
,
**
kwargs
):
try
:
try
:
dept_code
=
kwargs
[
'code'
]
dept_code
=
kwargs
[
'code'
]
queryset
=
Delegation
.
objects
.
filter
(
department__code
=
dept_code
)
queryset
=
Delegation
.
objects
.
filter
(
department
s
__code
=
dept_code
)
page
=
self
.
paginate_queryset
(
queryset
)
page
=
self
.
paginate_queryset
(
queryset
)
if
page
is
not
None
:
if
page
is
not
None
:
...
...
app/entities/migrations/0034_auto_20191108_1924.py
0 → 100644
View file @
125712fa
# Generated by Django 2.2 on 2019-11-08 19:24
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'entities'
,
'0033_merge_20191108_1725'
),
]
operations
=
[
migrations
.
AlterField
(
model_name
=
'allowedcompany'
,
name
=
'approve_cr'
,
field
=
models
.
BooleanField
(
default
=
False
),
),
]
app/entities/migrations/0035_changerequesttemplateapprovers_is_default.py
0 → 100644
View file @
125712fa
# Generated by Django 2.2 on 2019-11-11 10:42
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'entities'
,
'0034_auto_20191108_1924'
),
]
operations
=
[
migrations
.
AddField
(
model_name
=
'changerequesttemplateapprovers'
,
name
=
'is_default'
,
field
=
models
.
BooleanField
(
default
=
False
),
),
]
app/entities/migrations/0036_auto_20191111_1549.py
0 → 100644
View file @
125712fa
# Generated by Django 2.2 on 2019-11-11 15:49
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'entities'
,
'0035_changerequesttemplateapprovers_is_default'
),
]
operations
=
[
migrations
.
AlterField
(
model_name
=
'department'
,
name
=
'delegation'
,
field
=
models
.
ManyToManyField
(
related_name
=
'departments'
,
to
=
'entities.Delegation'
),
),
]
app/entities/migrations/0037_auto_20191112_1403.py
0 → 100644
View file @
125712fa
# Generated by Django 2.2 on 2019-11-12 14:03
from
django.db
import
migrations
,
models
import
django.db.models.deletion
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'entities'
,
'0036_auto_20191111_1549'
),
]
operations
=
[
migrations
.
AlterField
(
model_name
=
'changerequestformapprovers'
,
name
=
'delegation'
,
field
=
models
.
ForeignKey
(
blank
=
True
,
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
DO_NOTHING
,
to
=
'entities.Delegation'
,
to_field
=
'code'
),
),
migrations
.
AlterField
(
model_name
=
'changerequesttemplateapprovers'
,
name
=
'delegation'
,
field
=
models
.
ForeignKey
(
blank
=
True
,
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
DO_NOTHING
,
to
=
'entities.Delegation'
,
to_field
=
'code'
),
),
]
app/entities/migrations/0038_auto_20191112_1457.py
0 → 100644
View file @
125712fa
# Generated by Django 2.2 on 2019-11-12 14:57
from
django.db
import
migrations
,
models
import
django.db.models.deletion
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'entities'
,
'0037_auto_20191112_1403'
),
]
operations
=
[
migrations
.
AlterField
(
model_name
=
'changerequestformapprovers'
,
name
=
'delegation'
,
field
=
models
.
ForeignKey
(
blank
=
True
,
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
CASCADE
,
to
=
'entities.Delegation'
,
to_field
=
'code'
),
),
migrations
.
AlterField
(
model_name
=
'changerequesttemplateapprovers'
,
name
=
'delegation'
,
field
=
models
.
ForeignKey
(
blank
=
True
,
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
CASCADE
,
to
=
'entities.Delegation'
,
to_field
=
'code'
),
),
]
app/entities/models.py
View file @
125712fa
...
@@ -91,7 +91,7 @@ class Delegation(AuditClass):
...
@@ -91,7 +91,7 @@ class Delegation(AuditClass):
max_length
=
255
max_length
=
255
)
)
name
=
models
.
CharField
(
unique
=
True
,
max_length
=
255
)
name
=
models
.
CharField
(
unique
=
True
,
max_length
=
255
)
class
Meta
:
class
Meta
:
db_table
=
'delegations'
db_table
=
'delegations'
...
@@ -100,9 +100,12 @@ class Delegation(AuditClass):
...
@@ -100,9 +100,12 @@ class Delegation(AuditClass):
def
save
(
self
,
*
args
,
**
kwargs
):
def
save
(
self
,
*
args
,
**
kwargs
):
super
(
Delegation
,
self
)
.
save
(
*
args
,
**
kwargs
)
super
(
Delegation
,
self
)
.
save
(
*
args
,
**
kwargs
)
code
=
enums
.
GenerateCode
.
DELEGATION
.
value
code
=
number_generator
(
enums
.
GenerateCode
.
DELEGATION
.
value
,
self
.
id
)
code
=
number_generator
(
enums
.
GenerateCode
.
DELEGATION
.
value
,
self
.
id
)
Delegation
.
objects
.
filter
(
id
=
self
.
id
)
.
update
(
code
=
code
)
if
self
.
code
==
''
:
self
.
code
=
code
self
.
created
=
datetime
.
now
()
self
.
save
()
class
Company
(
AuditClass
):
class
Company
(
AuditClass
):
...
@@ -149,7 +152,8 @@ class Department(AuditClass):
...
@@ -149,7 +152,8 @@ class Department(AuditClass):
)
)
name
=
models
.
CharField
(
max_length
=
255
)
name
=
models
.
CharField
(
max_length
=
255
)
delegation
=
models
.
ManyToManyField
(
delegation
=
models
.
ManyToManyField
(
Delegation
Delegation
,
related_name
=
'departments'
)
)
class
Meta
:
class
Meta
:
...
@@ -454,7 +458,7 @@ class BaseApprover(models.Model):
...
@@ -454,7 +458,7 @@ class BaseApprover(models.Model):
Delegation
,
Delegation
,
blank
=
True
,
blank
=
True
,
null
=
True
,
null
=
True
,
on_delete
=
models
.
PROTECT
,
on_delete
=
models
.
CASCADE
,
to_field
=
'code'
)
to_field
=
'code'
)
created
=
models
.
DateTimeField
(
created
=
models
.
DateTimeField
(
blank
=
True
,
blank
=
True
,
...
@@ -609,6 +613,9 @@ class ChangeRequestTemplateApprovers(BaseApprover):
...
@@ -609,6 +613,9 @@ class ChangeRequestTemplateApprovers(BaseApprover):
null
=
True
,
null
=
True
,
on_delete
=
models
.
PROTECT
,
on_delete
=
models
.
PROTECT
,
to_field
=
'code'
)
to_field
=
'code'
)
is_default
=
models
.
BooleanField
(
default
=
False
)
class
Meta
:
class
Meta
:
db_table
=
'change_request_template_approvers'
db_table
=
'change_request_template_approvers'
...
@@ -1062,7 +1069,7 @@ class AllowedCompany(models.Model):
...
@@ -1062,7 +1069,7 @@ class AllowedCompany(models.Model):
create_change_request
=
models
.
BooleanField
(
default
=
True
)
create_change_request
=
models
.
BooleanField
(
default
=
True
)
create_change_request_template
=
models
.
BooleanField
(
default
=
True
)
create_change_request_template
=
models
.
BooleanField
(
default
=
True
)
view_all_change_request
=
models
.
BooleanField
(
default
=
True
)
view_all_change_request
=
models
.
BooleanField
(
default
=
True
)
approve_cr
=
models
.
BooleanField
(
default
=
Tru
e
)
approve_cr
=
models
.
BooleanField
(
default
=
Fals
e
)
created_at
=
models
.
DateTimeField
(
auto_now_add
=
True
)
created_at
=
models
.
DateTimeField
(
auto_now_add
=
True
)
deleted_at
=
models
.
DateTimeField
(
null
=
True
,
blank
=
True
)
deleted_at
=
models
.
DateTimeField
(
null
=
True
,
blank
=
True
)
...
...
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