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
b095463a
Commit
b095463a
authored
Mar 24, 2020
by
Gladys Forte
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
audit trail list, initial api for allowed comp and dept for AMS
parent
57265087
Changes
15
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
448 additions
and
9 deletions
+448
-9
app/applicationlayer/ams/audit_trail/serializers.py
app/applicationlayer/ams/audit_trail/serializers.py
+11
-0
app/applicationlayer/ams/audit_trail/table_filters.py
app/applicationlayer/ams/audit_trail/table_filters.py
+9
-0
app/applicationlayer/ams/audit_trail/views.py
app/applicationlayer/ams/audit_trail/views.py
+94
-0
app/applicationlayer/ams/master/ams_company/serializer.py
app/applicationlayer/ams/master/ams_company/serializer.py
+8
-0
app/applicationlayer/ams/master/ams_company/table_filter.py
app/applicationlayer/ams/master/ams_company/table_filter.py
+8
-0
app/applicationlayer/ams/master/ams_company/views.py
app/applicationlayer/ams/master/ams_company/views.py
+50
-0
app/applicationlayer/ams/master/ams_department/serializer.py
app/applicationlayer/ams/master/ams_department/serializer.py
+8
-0
app/applicationlayer/ams/master/ams_department/table_filter.py
...pplicationlayer/ams/master/ams_department/table_filter.py
+8
-0
app/applicationlayer/ams/master/ams_department/views.py
app/applicationlayer/ams/master/ams_department/views.py
+50
-0
app/applicationlayer/ams/urls_ams.py
app/applicationlayer/ams/urls_ams.py
+9
-0
app/entities/enums.py
app/entities/enums.py
+1
-0
app/entities/migrations/0010_auto_20200324_1208.py
app/entities/migrations/0010_auto_20200324_1208.py
+24
-0
app/entities/migrations/0011_auto_20200324_1820.py
app/entities/migrations/0011_auto_20200324_1820.py
+18
-0
app/entities/models.py
app/entities/models.py
+15
-3
requirements/RMSv2.postman_collection.json
requirements/RMSv2.postman_collection.json
+135
-6
No files found.
app/applicationlayer/ams/audit_trail/serializers.py
View file @
b095463a
from
app.entities
import
models
from
rest_framework
import
serializers
from
app.applicationlayer.utils
import
model_to_dict
class
AuditTrailSerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
model
=
models
.
AMSAuditTrail
fields
=
'__all__'
read_only_fields
=
[
'created'
,
'code'
]
\ No newline at end of file
app/applicationlayer/ams/audit_trail/table_filters.py
View file @
b095463a
from
django_filters
import
rest_framework
as
filters
from
app.entities.models
import
AMSAuditTrail
class
AuditTrailFilter
(
filters
.
FilterSet
):
class
Meta
:
model
=
AMSAuditTrail
fields
=
'__all__'
\ No newline at end of file
app/applicationlayer/ams/audit_trail/views.py
View file @
b095463a
from
app.entities
import
models
from
rest_framework
import
viewsets
,
status
from
rest_framework.response
import
Response
from
django_filters
import
rest_framework
as
filters
from
django_filters.rest_framework
import
DjangoFilterBackend
from
rest_framework.filters
import
SearchFilter
,
OrderingFilter
from
app.applicationlayer.ams.audit_trail.table_filters
import
AuditTrailFilter
from
app.applicationlayer.ams.audit_trail
import
serializers
from
app.applicationlayer.utils
import
(
CustomPagination
,
status_message_response
)
from
app.helper
import
decorators
from
django.db
import
transaction
from
rest_framework.decorators
import
action
from
app.applicationlayer.utils
import
model_to_dict
from
app.applicationlayer.utils
import
log_save
,
enums
from
app.applicationlayer.utils
import
model_to_dict
from
django.db
import
IntegrityError
class
AMSAuditTrailViewset
(
viewsets
.
ModelViewSet
):
queryset
=
models
.
AMSAuditTrail
.
objects
.
all
()
serializer_class
=
serializers
.
AuditTrailSerializer
pagination_class
=
CustomPagination
lookup_field
=
"code"
filter_backends
=
(
DjangoFilterBackend
,
SearchFilter
,
OrderingFilter
)
ordering_fields
=
'__all__'
search_fields
=
(
'code'
,
'name'
)
def
create
(
self
,
request
,
*
args
,
**
kwargs
):
form
=
request
.
data
form
[
'created_by'
]
=
request
.
user
.
code
serializer
=
self
.
get_serializer
(
data
=
form
)
serializer
.
is_valid
(
raise_exception
=
True
)
self
.
perform_create
(
serializer
)
message
=
status_message_response
(
201
,
'success'
,
'New Audit Trail created'
,
serializer
.
data
)
return
Response
(
message
)
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
queryset
=
self
.
filter_queryset
(
self
.
get_queryset
())
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 Asset Types found!'
,
serializer
.
data
)
return
self
.
get_paginated_response
(
message
)
serializer
=
self
.
get_serializer
(
self
.
queryset
,
many
=
True
)
return
Response
(
serializer
.
data
,
status
=
status
.
HTTP_200_OK
)
def
audit_trail_create
(
name
,
desc
,
asset_stock
,
created_by
):
try
:
models
.
AMSAuditTrail
.
objects
.
create
(
name
=
name
,
desciption
=
desc
,
asset_stock
=
asset_stock
,
created_by
=
created_by
)
return
True
except
Exception
as
e
:
message
=
{
'code'
:
500
,
'status'
:
'failed'
,
'message'
:
'Request was not able to process'
+
str
(
e
.
__class__
)
}
return
Response
(
message
,
status
=
status
.
HTTP_500_INTERNAL_SERVER_ERROR
)
\ No newline at end of file
app/applicationlayer/ams/master/ams_company/serializer.py
0 → 100644
View file @
b095463a
from
rest_framework
import
serializers
from
app.entities.models
import
Company
class
AMSCompanySerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
model
=
Company
fields
=
'__all__'
app/applicationlayer/ams/master/ams_company/table_filter.py
0 → 100644
View file @
b095463a
from
django_filters
import
rest_framework
as
filters
from
app.entities.models
import
Company
class
AMSCompanyFilterSet
(
filters
.
FilterSet
):
class
Meta
:
model
=
Company
fields
=
'__all__'
app/applicationlayer/ams/master/ams_company/views.py
0 → 100644
View file @
b095463a
from
django_filters
import
rest_framework
as
filters
from
rest_framework.filters
import
SearchFilter
,
OrderingFilter
from
app.entities.models
import
(
Company
,
AMSPrivilege
)
from
rest_framework
import
viewsets
from
app.applicationlayer.utils
import
(
CustomPagination
,
status_message_response
)
from
django_filters.rest_framework
import
DjangoFilterBackend
from
app.applicationlayer.ams.master.ams_company
import
serializer
from
app.applicationlayer.ams.master.ams_company.table_filter
import
(
AMSCompanyFilterSet
)
from
rest_framework.response
import
Response
from
django.db.models
import
Q
from
rest_framework.decorators
import
action
class
AMSCompanyFormViewSet
(
viewsets
.
ModelViewSet
):
queryset
=
Company
.
objects
.
all
()
serializer_class
=
serializer
.
AMSCompanySerializer
pagination_class
=
CustomPagination
filter_backends
=
(
DjangoFilterBackend
,
SearchFilter
,
OrderingFilter
)
filterset_class
=
AMSCompanyFilterSet
ordering_fields
=
'__all__'
search_fields
=
(
'name'
,)
http_method_names
=
[
'get'
]
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
queryset
=
self
.
filter_queryset
(
self
.
get_queryset
())
allowed
=
AMSPrivilege
.
objects
.
filter
(
Q
(
id_number
=
self
.
request
.
user
.
code
)
)
.
values
(
'department__company'
)
queryset
=
queryset
.
filter
(
code__in
=
allowed
)
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 Company found'
,
serializer
.
data
)
return
self
.
get_paginated_response
(
message
)
serializer
=
self
.
get_serializer
(
queryset
,
many
=
True
)
return
Response
(
serializer
.
data
)
app/applicationlayer/ams/master/ams_department/serializer.py
0 → 100644
View file @
b095463a
from
rest_framework
import
serializers
from
app.entities.models
import
Department
class
AMSDepartmentSerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
model
=
Department
fields
=
'__all__'
app/applicationlayer/ams/master/ams_department/table_filter.py
0 → 100644
View file @
b095463a
from
django_filters
import
rest_framework
as
filters
from
app.entities.models
import
Department
class
AMSDepartmentFilterSet
(
filters
.
FilterSet
):
class
Meta
:
model
=
Department
fields
=
'__all__'
app/applicationlayer/ams/master/ams_department/views.py
0 → 100644
View file @
b095463a
from
django_filters
import
rest_framework
as
filters
from
rest_framework.filters
import
SearchFilter
,
OrderingFilter
from
app.entities.models
import
(
Company
,
Department
,
AMSPrivilege
)
from
rest_framework
import
viewsets
from
app.applicationlayer.utils
import
(
CustomPagination
,
status_message_response
)
from
django_filters.rest_framework
import
DjangoFilterBackend
from
app.applicationlayer.ams.master.ams_department
import
serializer
from
app.applicationlayer.ams.master.ams_department.table_filter
import
(
AMSDepartmentFilterSet
)
from
rest_framework.response
import
Response
from
django.db.models
import
Q
from
rest_framework.decorators
import
action
class
AMSDepartmentFormViewSet
(
viewsets
.
ModelViewSet
):
queryset
=
Department
.
objects
.
all
()
serializer_class
=
serializer
.
AMSDepartmentSerializer
pagination_class
=
CustomPagination
filter_backends
=
(
DjangoFilterBackend
,
SearchFilter
,
OrderingFilter
)
filterset_class
=
AMSDepartmentFilterSet
ordering_fields
=
'__all__'
search_fields
=
(
'name'
,)
http_method_names
=
[
'get'
]
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
queryset
=
self
.
filter_queryset
(
self
.
get_queryset
())
allowed
=
AMSPrivilege
.
objects
.
filter
(
Q
(
id_number
=
self
.
request
.
user
.
code
)
)
.
values
(
'department'
)
queryset
=
queryset
.
filter
(
code__in
=
allowed
)
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 Department found'
,
serializer
.
data
)
return
self
.
get_paginated_response
(
message
)
serializer
=
self
.
get_serializer
(
queryset
,
many
=
True
)
return
Response
(
serializer
.
data
)
app/applicationlayer/ams/urls_ams.py
View file @
b095463a
...
...
@@ -11,6 +11,11 @@ from app.applicationlayer.ams.asset.views import AMSAssetViewSet
from
app.applicationlayer.ams.asset_stock.views
import
AMSAssetStockViewSet
from
app.applicationlayer.ams.report_type.views
import
AMSReportTypeViewset
from
app.applicationlayer.ams.report.views
import
AMSReportViewset
from
app.applicationlayer.ams.audit_trail.views
import
AMSAuditTrailViewset
# list of ams companies and department
from
app.applicationlayer.ams.master.ams_company.views
import
AMSCompanyFormViewSet
from
app.applicationlayer.ams.master.ams_department.views
import
AMSDepartmentFormViewSet
router
=
routers
.
DefaultRouter
()
...
...
@@ -21,6 +26,10 @@ router.register(r'asset', AMSAssetViewSet)
router
.
register
(
r'asset-stock'
,
AMSAssetStockViewSet
)
router
.
register
(
r'report-type'
,
AMSReportTypeViewset
)
router
.
register
(
r'report'
,
AMSReportViewset
)
router
.
register
(
r'audit-trail'
,
AMSAuditTrailViewset
)
router
.
register
(
r'ams-companies'
,
AMSCompanyFormViewSet
)
router
.
register
(
r'ams-departments'
,
AMSDepartmentFormViewSet
)
urlpatterns
=
[
path
(
''
,
include
(
router
.
urls
)),
...
...
app/entities/enums.py
View file @
b095463a
...
...
@@ -40,6 +40,7 @@ class GenerateCode(Enum):
ASSET_STOCK_SUPPORT
=
'ASSTSTOCKSUP'
REPORT_TYPE
=
'RPTTYPE'
REPORT
=
'RPT'
AUDIT_TRAIL
=
'AUDIT'
FORM_ASSET
=
'FRMASSET'
...
...
app/entities/migrations/0010_auto_20200324_1208.py
0 → 100644
View file @
b095463a
# Generated by Django 2.2 on 2020-03-24 12:08
from
django.db
import
migrations
,
models
import
django.db.models.deletion
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'entities'
,
'0009_auto_20200318_1724'
),
]
operations
=
[
migrations
.
AddField
(
model_name
=
'amsassetgroup'
,
name
=
'department'
,
field
=
models
.
ForeignKey
(
blank
=
True
,
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
PROTECT
,
to
=
'entities.Department'
,
to_field
=
'code'
),
),
migrations
.
AddField
(
model_name
=
'amsassettype'
,
name
=
'department'
,
field
=
models
.
ForeignKey
(
blank
=
True
,
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
PROTECT
,
to
=
'entities.Department'
,
to_field
=
'code'
),
),
]
app/entities/migrations/0011_auto_20200324_1820.py
0 → 100644
View file @
b095463a
# Generated by Django 2.2 on 2020-03-24 18:20
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'entities'
,
'0010_auto_20200324_1208'
),
]
operations
=
[
migrations
.
AlterField
(
model_name
=
'extracttransformload'
,
name
=
'model_type'
,
field
=
models
.
CharField
(
choices
=
[(
'APP'
,
'APP'
),
(
'MODULE'
,
'MODULE'
),
(
'COMPANY'
,
'COMPANY'
),
(
'DEPARTMENT'
,
'DEPARTMENT'
),
(
'USER'
,
'USER'
),
(
'DELEGATION'
,
'DELEGATION'
),
(
'NOTIF'
,
'NOTIF'
),
(
'TMP'
,
'TMP'
),
(
'TMPAPR'
,
'TMPAPR'
),
(
'TMPSTK'
,
'TMPSTK'
),
(
'TMPATCH'
,
'TMPATCH'
),
(
'TMPDETAIL'
,
'TMPDETAIL'
),
(
'FRM'
,
'FRM'
),
(
'FRMAPR'
,
'FRMAPR'
),
(
'FRMSTK'
,
'FRMSTK'
),
(
'FRMATCH'
,
'FRMATCH'
),
(
'FRMDETAIL'
,
'FRMDETAIL'
),
(
'ETL'
,
'ETL'
),
(
'CMSSET'
,
'CMSSET'
),
(
'ASSTTYPE'
,
'ASSTTYPE'
),
(
'ASST'
,
'ASST'
),
(
'ASSTSTOCK'
,
'ASSTSTOCK'
),
(
'ASSTGRP'
,
'ASSTGRP'
),
(
'ASSTSTOCKSUP'
,
'ASSTSTOCKSUP'
),
(
'RPTTYPE'
,
'RPTTYPE'
),
(
'RPT'
,
'RPT'
),
(
'AUDIT'
,
'AUDIT'
),
(
'FRMASSET'
,
'FRMASSET'
)],
default
=
'USER'
,
max_length
=
100
),
),
]
app/entities/models.py
View file @
b095463a
...
...
@@ -1287,7 +1287,13 @@ class AMSAssetGroup(models.Model):
)
created
=
models
.
DateTimeField
(
auto_now_add
=
True
)
is_active
=
models
.
BooleanField
(
default
=
True
)
department
=
models
.
ForeignKey
(
Department
,
blank
=
True
,
null
=
True
,
on_delete
=
models
.
PROTECT
,
to_field
=
'code'
)
class
Meta
:
db_table
=
'ams_asset_groups'
ordering
=
[
'-created'
]
...
...
@@ -1325,6 +1331,12 @@ class AMSAssetType(models.Model):
)
created
=
models
.
DateTimeField
(
auto_now_add
=
True
)
is_active
=
models
.
BooleanField
(
default
=
True
)
department
=
models
.
ForeignKey
(
Department
,
blank
=
True
,
null
=
True
,
on_delete
=
models
.
PROTECT
,
to_field
=
'code'
)
class
Meta
:
db_table
=
'ams_asset_types'
...
...
@@ -1631,8 +1643,8 @@ class AMSAuditTrail(models.Model):
return
f
'{self.code}'
def
save
(
self
,
*
args
,
**
kwargs
):
super
(
AMS
Report
,
self
)
.
save
(
*
args
,
**
kwargs
)
code
=
number_generator
(
enums
.
GenerateCode
.
REPORT
.
value
,
self
.
id
)
super
(
AMS
AuditTrail
,
self
)
.
save
(
*
args
,
**
kwargs
)
code
=
number_generator
(
enums
.
GenerateCode
.
AUDIT_TRAIL
.
value
,
self
.
id
)
if
self
.
code
==
''
:
self
.
code
=
code
...
...
requirements/RMSv2.postman_collection.json
View file @
b095463a
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