fix - update page access - v3
This commit is contained in:
@@ -45,14 +45,14 @@ class UpdatePageAccessViewSet(BaseViewSet, SoftDeleteMixin, viewsets.ModelViewSe
|
||||
"""
|
||||
sync update page & access on development version with production
|
||||
"""
|
||||
url = 'https://api.tdam.rasadyar.com/auth/api/v1/update_access/'
|
||||
dev_url = 'https://api.tdam.rasadyar.com/auth/api/v1/update_access/'
|
||||
|
||||
# get data page & permissions data from development
|
||||
req = requests.get(url)
|
||||
response = req.json()
|
||||
dev_req = requests.get(dev_url)
|
||||
dev_data = dev_req.json()
|
||||
|
||||
url = 'https://api.dam.rasadyar.com/auth/api/v1/update_access/update_page_access/'
|
||||
updated_response = requests.post(url=url, json=response)
|
||||
prod_url = 'http://127.0.0.1:8000/auth/api/v1/update_access/update_page_access/'
|
||||
updated_response = requests.post(url=prod_url, json=dev_data)
|
||||
|
||||
return Response(updated_response.json())
|
||||
|
||||
@@ -61,38 +61,79 @@ class UpdatePageAccessViewSet(BaseViewSet, SoftDeleteMixin, viewsets.ModelViewSe
|
||||
"""
|
||||
Sync page & permissions in development with production
|
||||
"""
|
||||
# if page or permission exists in production, don't create just update
|
||||
for page in request.data:
|
||||
page_obj = Page.objects.filter(code=page['code'])
|
||||
permissions = page.pop('permissions') # remove permissions from data
|
||||
if not page_obj.exists():
|
||||
page_obj = Page.objects.create(**page)
|
||||
else:
|
||||
obj = page_obj.first()
|
||||
obj.update(
|
||||
name=page['name'],
|
||||
code=page['code'],
|
||||
is_active=page['is_active'],
|
||||
)
|
||||
dev_data = request.data
|
||||
dev_pages_name = [p['name'] for p in dev_data]
|
||||
dev_perms_name = []
|
||||
for item in dev_data:
|
||||
for perm in item['permissions']:
|
||||
dev_perms_name.append(perm['name'])
|
||||
|
||||
for permission in permissions:
|
||||
permission.pop('page') # remove page from data
|
||||
perm = Permissions.objects.filter(page=page_obj, name=permission['name'])
|
||||
if perm.exists():
|
||||
perm.first().update(
|
||||
name=permission['name'],
|
||||
description=permission['description'],
|
||||
category=permission['category'],
|
||||
page=page_obj,
|
||||
is_active=permission['is_active'],
|
||||
modify_state=permission['modify_state'],
|
||||
)
|
||||
else:
|
||||
Permissions.objects.create(
|
||||
**permission,
|
||||
page=page_obj,
|
||||
)
|
||||
return Response(request.data)
|
||||
pages_to_delete = Page.objects.exclude(name__in=dev_pages_name)
|
||||
# pages_to_delete.delete()
|
||||
print(pages_to_delete)
|
||||
page_map = {}
|
||||
|
||||
for page in dev_data:
|
||||
page_obj, _ = Page.objects.filter().update_or_create(
|
||||
code=page['code'], # keep dev page codes in prod
|
||||
defaults={
|
||||
'name': page['name'],
|
||||
'is_active': page['is_active'],
|
||||
}
|
||||
)
|
||||
page_map[page['name']] = page_obj.id
|
||||
|
||||
permissions_to_delete = Permissions.objects.exclude(name__in=dev_perms_name)
|
||||
# permissions_to_delete.delete()
|
||||
print(permissions_to_delete)
|
||||
|
||||
# for perm in dev_data['permissions']:
|
||||
# permission_obj, _ = Permissions.objects.update_or_create(
|
||||
# id=perm['id'], # keep dev permission ids in prod
|
||||
# defaults={
|
||||
# 'name': perm['name'],
|
||||
# 'description': perm['description'],
|
||||
# 'category': perm['category'],
|
||||
# 'page_id': page_map[perm['page']],
|
||||
# 'is_active': perm['is_active'],
|
||||
# 'modify_state': perm['modify_state'],
|
||||
# }
|
||||
# )
|
||||
|
||||
return Response(dev_data)
|
||||
|
||||
# # if page or permission exists in production, don't create just update
|
||||
# for page in request.data:
|
||||
# page_obj = Page.objects.filter(code=page['code'])
|
||||
# permissions = page.pop('permissions') # remove permissions from data
|
||||
# if not page_obj.exists():
|
||||
# page_obj = Page.objects.create(**page)
|
||||
# else:
|
||||
# obj = page_obj.first()
|
||||
# if obj:
|
||||
# obj.code = page['code']
|
||||
# obj.name = page['name']
|
||||
# obj.is_active = page['is_active']
|
||||
# page_obj = obj.save()
|
||||
#
|
||||
# for permission in permissions:
|
||||
# permission.pop('page') # remove page from data
|
||||
# perm = Permissions.objects.filter(page=page_obj, name=permission['name'])
|
||||
# if perm.exists():
|
||||
# perm.update_or_create(
|
||||
# name=permission['name'],
|
||||
# description=permission['description'],
|
||||
# category=permission['category'],
|
||||
# page=page_obj,
|
||||
# is_active=permission['is_active'],
|
||||
# modify_state=permission['modify_state'],
|
||||
# )
|
||||
# else:
|
||||
# Permissions.objects.create(
|
||||
# **permission,
|
||||
# page_id=page.id,
|
||||
# )
|
||||
# return Response(request.data)
|
||||
|
||||
|
||||
class RoleViewSet(BaseViewSet, SoftDeleteMixin, viewsets.ModelViewSet):
|
||||
|
||||
Reference in New Issue
Block a user