use tables.DeleteAction for DeleteContainer and DeleteObject
* fix bug 953814, hide delete button if table is empty Change-Id: Iecdbcf4912d4828d5e5174f9acab27e9af95dc61
This commit is contained in:
@@ -32,18 +32,20 @@ from horizon import tables
|
|||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class DeleteContainer(tables.Action):
|
class DeleteContainer(tables.DeleteAction):
|
||||||
name = "delete"
|
data_type_singular = _("Container")
|
||||||
verbose_name = _("Delete")
|
data_type_plural = _("Containers")
|
||||||
verbose_name_plural = _("Delete Containers")
|
|
||||||
classes = ('btn-danger',)
|
def delete(self, request, obj_id):
|
||||||
|
api.swift_delete_container(request, obj_id)
|
||||||
|
|
||||||
def handle(self, table, request, object_ids):
|
def handle(self, table, request, object_ids):
|
||||||
|
# Overriden to show clearer error messages instead of generic message
|
||||||
deleted = []
|
deleted = []
|
||||||
for obj_id in object_ids:
|
for obj_id in object_ids:
|
||||||
obj = table.get_object_by_id(obj_id)
|
obj = table.get_object_by_id(obj_id)
|
||||||
try:
|
try:
|
||||||
api.swift_delete_container(request, obj_id)
|
self.delete(request, obj_id)
|
||||||
deleted.append(obj)
|
deleted.append(obj)
|
||||||
except ContainerNotEmpty:
|
except ContainerNotEmpty:
|
||||||
LOG.exception('Unable to delete container "%s".' % obj.name)
|
LOG.exception('Unable to delete container "%s".' % obj.name)
|
||||||
@@ -114,28 +116,14 @@ class ContainersTable(tables.DataTable):
|
|||||||
row_actions = (ListObjects, UploadObject, DeleteContainer)
|
row_actions = (ListObjects, UploadObject, DeleteContainer)
|
||||||
|
|
||||||
|
|
||||||
class DeleteObject(tables.Action):
|
class DeleteObject(tables.DeleteAction):
|
||||||
name = "delete"
|
data_type_singular = _("Object")
|
||||||
verbose_name = _("Delete")
|
data_type_plural = _("Objects")
|
||||||
verbose_name_plural = _("Delete Objects")
|
|
||||||
classes = ('btn-danger',)
|
|
||||||
|
|
||||||
def handle(self, table, request, object_ids):
|
def delete(self, request, obj_id):
|
||||||
deleted = []
|
obj = self.table.get_object_by_id(obj_id)
|
||||||
for obj_id in object_ids:
|
container_name = obj.container.name
|
||||||
obj = table.get_object_by_id(obj_id)
|
api.swift_delete_object(request, container_name, obj_id)
|
||||||
container_name = obj.container.name
|
|
||||||
try:
|
|
||||||
api.swift_delete_object(request, container_name, obj_id)
|
|
||||||
deleted.append(obj)
|
|
||||||
except:
|
|
||||||
exceptions.handle(request, _('Unable to delete object.'))
|
|
||||||
if deleted:
|
|
||||||
messages.success(request,
|
|
||||||
_('Successfully deleted objects: %s')
|
|
||||||
% ", ".join([obj.name for obj in deleted]))
|
|
||||||
return shortcuts.redirect('horizon:nova:containers:object_index',
|
|
||||||
table.kwargs['container_name'])
|
|
||||||
|
|
||||||
|
|
||||||
class CopyObject(tables.LinkAction):
|
class CopyObject(tables.LinkAction):
|
||||||
|
|||||||
Reference in New Issue
Block a user