Skip to content

Commit

Permalink
Archive and unarchive without confirmation
Browse files Browse the repository at this point in the history
  • Loading branch information
a-belhadj authored and Sispheor committed Oct 20, 2023
1 parent c44c176 commit 3db7442
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 70 deletions.
55 changes: 11 additions & 44 deletions service_catalog/views/instance.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from django.contrib import messages
from django.contrib.auth.decorators import login_required
from django.core.exceptions import PermissionDenied
from django.http import HttpResponseNotAllowed
from django.shortcuts import render, get_object_or_404, redirect
from django.urls import reverse
from django.utils.safestring import mark_safe
Expand Down Expand Up @@ -182,64 +183,30 @@ def instance_request_new_operation(request, instance_id, operation_id):

@login_required
def instance_archive(request, pk):
if request.method != 'GET':
return HttpResponseNotAllowed(['GET'])
instance = get_object_or_404(Instance, id=pk)
context = dict()
context['object'] = instance
context['action'] = 'archive'
context['breadcrumbs'] = [
{
'text': 'Instance',
'url': reverse('service_catalog:instance_list')
},
{
'text': instance,
'url': instance.get_absolute_url()
},
{
'text': context['action'].capitalize(),
'url': ""
},
]
if not request.user.has_perm('service_catalog.archive_instance', instance):
raise PermissionDenied
if not can_proceed(instance.archive):
raise PermissionDenied
if request.method == "POST":
instance.archive()
instance.save()
return redirect(instance.get_absolute_url())
return render(request, "service_catalog/instance-archive.html", context)
instance.archive()
instance.save()
return redirect(instance.get_absolute_url())


@login_required
def instance_unarchive(request, pk):
if request.method != 'GET':
return HttpResponseNotAllowed(['GET'])
instance = get_object_or_404(Instance, id=pk)
context = dict()
context['object'] = instance
context['action'] = 'unarchive'
context['breadcrumbs'] = [
{
'text': 'Instance',
'url': reverse('service_catalog:instance_list')
},
{
'text': instance,
'url': instance.get_absolute_url()
},
{
'text': context['action'].capitalize(),
'url': ""
},
]
if not request.user.has_perm('service_catalog.unarchive_instance', instance):
raise PermissionDenied
if not can_proceed(instance.unarchive):
raise PermissionDenied
if request.method == "POST":
instance.unarchive()
instance.save()
return redirect(instance.get_absolute_url())
return render(request, "service_catalog/instance-archive.html", context)
instance.unarchive()
instance.save()
return redirect(instance.get_absolute_url())


@login_required
Expand Down
20 changes: 0 additions & 20 deletions templates/service_catalog/instance-archive.html

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -14,22 +14,30 @@ def test_state_machine_views(self):
TestingGetContextView(
url='service_catalog:instance_archive',
perm_str='service_catalog.archive_instance',
url_kwargs={'pk': self.test_instance.id}
url_kwargs={'pk': self.test_instance.id},
expected_status_code=302

),
TestingPostContextView(
url='service_catalog:instance_archive',
perm_str='service_catalog.archive_instance',
url_kwargs={'pk': self.test_instance.id}
url_kwargs={'pk': self.test_instance.id},
expected_not_allowed_status_code=405,
expected_status_code=405
),
TestingGetContextView(
url='service_catalog:instance_unarchive',
perm_str='service_catalog.unarchive_instance',
url_kwargs={'pk': self.test_instance.id}
url_kwargs={'pk': self.test_instance.id},
expected_status_code = 302

),
TestingPostContextView(
url='service_catalog:instance_unarchive',
perm_str='service_catalog.unarchive_instance',
url_kwargs={'pk': self.test_instance.id}
url='service_catalog:instance_archive',
perm_str='service_catalog.archive_instance',
url_kwargs={'pk': self.test_instance.id},
expected_not_allowed_status_code=405,
expected_status_code=405
)
]
self.run_permissions_tests(testing_view_list)

0 comments on commit 3db7442

Please sign in to comment.