Commit e89881f8 authored by John Red Medrano's avatar John Red Medrano

Merge branch 'product-dev' of http://42.61.118.105:7990/scm/rms/api-main-service into red-develop

parents 3b561bca 21ce451c
from rest_framework import serializers
from app.entities.models import ChangeRequestSettings
from app.applicationlayer.utils import model_to_dict
class ChangeRequestSettingsSerializer(serializers.ModelSerializer):
def to_representation(self, instance):
ret = super().to_representation(instance)
if instance.behalf_user:
behalf_user_object = {
"id": instance.behalf_user.id,
"name": instance.behalf_user.name,
"username": instance.behalf_user.username,
"code": instance.behalf_user.code,
"email": instance.behalf_user.email,
"contact_no": instance.behalf_user.contact_no
}
ret['behalf_user'] = behalf_user_object
return ret
class Meta:
model = ChangeRequestSettings
fields = '__all__'
read_only_fields = ['created', 'code']
from django_filters import rest_framework as filters
from app.entities.models import ChangeRequestSettings
class ChangeRequestSettingsFilterSet(filters.FilterSet):
class Meta:
model = ChangeRequestSettings
fields = '__all__'
from rest_framework import status, viewsets
from rest_framework.response import Response
from app.entities import enums
from app.entities.models import ChangeRequestSettings
from app.applicationlayer.utils import CustomPagination,status_message_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.cms.cms_settings.serializer import (
ChangeRequestSettingsSerializer
)
from app.applicationlayer.cms.cms_settings.table_filter import (
ChangeRequestSettingsFilterSet
)
from django.db import transaction
from rest_framework.exceptions import ValidationError
from django.db import IntegrityError
class CMSSettingsViewSet(viewsets.ModelViewSet):
queryset = ChangeRequestSettings.objects.all()
serializer_class = ChangeRequestSettingsSerializer
pagination_class = CustomPagination
lookup_field = 'code'
filter_backends = (DjangoFilterBackend, SearchFilter, OrderingFilter)
filterset_class = ChangeRequestSettingsFilterSet
ordering_fields = '__all__'
search_fields = (
'active_user__code',
'behalf_user__code'
)
def list(self, request, *args, **kwargs):
logged_user = self.request.user.code
queryset = self.filter_queryset(
self.get_queryset().filter(active_user=logged_user)
)
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 CMS Settings found',
serializer.data
)
return self.get_paginated_response(message)
serializer = self.get_serializer(queryset, many=True)
return Response(
serializer.data,
status=status.HTTP_200_OK
)
@transaction.atomic
def create(self, request, *args, **kwargs):
try:
logged_user = self.request.user.code
ChangeRequestSettings.objects.filter(active_user=logged_user).delete()
data_cms_settings = []
cms_settings = request.data['cms_settings']
for cms_setting in cms_settings:
cms_setting['active_user'] = logged_user
data_cms_settings.append(cms_setting)
serializer = ChangeRequestSettingsSerializer(
data=data_cms_settings, many=True
)
if serializer.is_valid(raise_exception=True):
serializer.save()
message = {
'code': 201,
'status': 'success',
'message': 'CMS Settings successfully saved!',
'results': serializer.data
}
return Response(message, status=status.HTTP_201_CREATED)
except ValidationError as e:
message = {
'code': 400,
'status': 'failed',
'message': str(e),
}
return Response(message, status=status.HTTP_400_BAD_REQUEST)
except Exception as e:
message = {
'code': 500,
'status': 'failed',
'message': str(e),
}
return Response(message,
status=status.HTTP_500_INTERNAL_SERVER_ERROR)
...@@ -6,6 +6,7 @@ from rest_framework.urlpatterns import format_suffix_patterns ...@@ -6,6 +6,7 @@ from rest_framework.urlpatterns import format_suffix_patterns
from app.applicationlayer.cms.form import views as crform_views from app.applicationlayer.cms.form import views as crform_views
from app.applicationlayer.cms.allowed_company import views as allowed from app.applicationlayer.cms.allowed_company import views as allowed
from app.applicationlayer.cms.cms_settings import views as cms_settings
# MASTERS Form # MASTERS Form
from app.applicationlayer.cms.master.template.company.views import ChangeRequestCompanyTemplateViewSet from app.applicationlayer.cms.master.template.company.views import ChangeRequestCompanyTemplateViewSet
...@@ -64,6 +65,7 @@ router.register(r'form-download', dl.DownloadRequest) ...@@ -64,6 +65,7 @@ router.register(r'form-download', dl.DownloadRequest)
# privilege CMS # privilege CMS
router.register(r'allowed-companies', allowed.AllowedCompanyViewSet) router.register(r'allowed-companies', allowed.AllowedCompanyViewSet)
router.register(r'cms-settings', cms_settings.CMSSettingsViewSet)
# privilege CMS # privilege CMS
# filter endpoints under Allowed Companies table # filter endpoints under Allowed Companies table
......
...@@ -2,7 +2,6 @@ from enum import Enum ...@@ -2,7 +2,6 @@ from enum import Enum
class ModelSeriesEnum(Enum): class ModelSeriesEnum(Enum):
USER = "USR" USER = "USR"
CMS_SETTINGS = "cms_settings"
# CLIENT = "CLI" # CLIENT = "CLI"
# CONSUMABLEPRODUCTS = "CSP" # CONSUMABLEPRODUCTS = "CSP"
...@@ -46,6 +45,7 @@ class GenerateCode(Enum): ...@@ -46,6 +45,7 @@ class GenerateCode(Enum):
ETL = 'ETL' ETL = 'ETL'
ASSET_GROUP = 'AMSGRP' ASSET_GROUP = 'AMSGRP'
CMS_SETTINGS = "CMSSET"
''' '''
********* *********
......
# Generated by Django 2.2 on 2020-01-13 21:44
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('entities', '0002_changerequestsettings'),
]
operations = [
migrations.RemoveField(
model_name='changerequestsettings',
name='createdby',
),
migrations.RemoveField(
model_name='changerequestsettings',
name='modified',
),
migrations.RemoveField(
model_name='changerequestsettings',
name='modifiedby',
),
migrations.AddField(
model_name='changerequestsettings',
name='deleted_at',
field=models.DateTimeField(blank=True, null=True),
),
]
...@@ -1230,7 +1230,7 @@ class AssetGroup(models.Model): ...@@ -1230,7 +1230,7 @@ class AssetGroup(models.Model):
self.save() self.save()
class ChangeRequestSettings(AuditClass): class ChangeRequestSettings(models.Model):
code = models.CharField(unique=True, max_length=255) code = models.CharField(unique=True, max_length=255)
active_user = models.ForeignKey( active_user = models.ForeignKey(
User, User,
...@@ -1249,7 +1249,8 @@ class ChangeRequestSettings(AuditClass): ...@@ -1249,7 +1249,8 @@ class ChangeRequestSettings(AuditClass):
behalf_rejected = models.BooleanField(default=False) behalf_rejected = models.BooleanField(default=False)
behalf_implemented = models.BooleanField(default=False) behalf_implemented = models.BooleanField(default=False)
behalf_completed = models.BooleanField(default=False) behalf_completed = models.BooleanField(default=False)
created = models.DateTimeField(auto_now_add=True)
deleted_at = models.DateTimeField(null=True, blank=True)
class Meta: class Meta:
db_table = 'change_request_settings' db_table = 'change_request_settings'
...@@ -1260,7 +1261,7 @@ class ChangeRequestSettings(AuditClass): ...@@ -1260,7 +1261,7 @@ class ChangeRequestSettings(AuditClass):
def save(self, *args, **kwargs): def save(self, *args, **kwargs):
super(ChangeRequestSettings, self).save(*args, **kwargs) super(ChangeRequestSettings, self).save(*args, **kwargs)
code = number_generator(enums.GenerateCode.ModelSeriesEnum.value, self.id) code = number_generator(enums.GenerateCode.CMS_SETTINGS.value, self.id)
if self.code == '': if self.code == '':
self.code = code self.code = code
......
<!DOCTYPE html>
<html>
<head>
<title>RMS: </title>
</head>
<body style="font-family: arial;">
<h3>Resource Management System &#40;RMS&#41;</h3>
<h3 style="color:#888888;">Change Request Approval Reminder</h3><br>
<p>Dear {name},</p><br>
<p>Please be informed that a reminder has been sent to approve your change request. Please note that it will automatically be cancelled by the system if no action is taken within 30 days from the date it was submitted to the last approving officer.</p><br>
<b>Auto-Cancel Date</b><br>{auto_cancel_date}<br><br>
<b>Date Submitted to Last Approver</b><br>{date_submitted_last_approver}<br><br>
<b>Approver Pending Action</b><br>{approver_pending_action}<br><br><br>
<b>CR Number</b><br>{cr_number}<br><br>
<b>CR Name</b><br>{cr_name}<br><br>
<b>Company Requested To</b><br>{company_requestedto}<br><br>
<b>Department Requested To</b><br>{department_requestedto}<br><br>
<b>Priority Level</b><br>{priority_level}<br><br>
<b>Status</b><br>{status}<br><br>
<p>Please click <u><a href="{url}" style="text-decoration:underline;color:#007bff;" target="_blank">here</a></u> to access the change request.</p><br>
<p>Sincerely,</p>
<p>RMS Team</p><br><br>
<p>Powered by</p>
<img src="https://s3-ap-southeast-1.amazonaws.com/oneberry/img/logo_oneberry.png" class="img-responsive" style="width:150px;height:auto;" />
</body>
</html>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment