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__)
|
||||
|
||||
|
||||
class DeleteContainer(tables.Action):
|
||||
name = "delete"
|
||||
verbose_name = _("Delete")
|
||||
verbose_name_plural = _("Delete Containers")
|
||||
classes = ('btn-danger',)
|
||||
class DeleteContainer(tables.DeleteAction):
|
||||
data_type_singular = _("Container")
|
||||
data_type_plural = _("Containers")
|
||||
|
||||
def delete(self, request, obj_id):
|
||||
api.swift_delete_container(request, obj_id)
|
||||
|
||||
def handle(self, table, request, object_ids):
|
||||
# Overriden to show clearer error messages instead of generic message
|
||||
deleted = []
|
||||
for obj_id in object_ids:
|
||||
obj = table.get_object_by_id(obj_id)
|
||||
try:
|
||||
api.swift_delete_container(request, obj_id)
|
||||
self.delete(request, obj_id)
|
||||
deleted.append(obj)
|
||||
except ContainerNotEmpty:
|
||||
LOG.exception('Unable to delete container "%s".' % obj.name)
|
||||
@@ -114,28 +116,14 @@ class ContainersTable(tables.DataTable):
|
||||
row_actions = (ListObjects, UploadObject, DeleteContainer)
|
||||
|
||||
|
||||
class DeleteObject(tables.Action):
|
||||
name = "delete"
|
||||
verbose_name = _("Delete")
|
||||
verbose_name_plural = _("Delete Objects")
|
||||
classes = ('btn-danger',)
|
||||
class DeleteObject(tables.DeleteAction):
|
||||
data_type_singular = _("Object")
|
||||
data_type_plural = _("Objects")
|
||||
|
||||
def handle(self, table, request, object_ids):
|
||||
deleted = []
|
||||
for obj_id in object_ids:
|
||||
obj = table.get_object_by_id(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'])
|
||||
def delete(self, request, obj_id):
|
||||
obj = self.table.get_object_by_id(obj_id)
|
||||
container_name = obj.container.name
|
||||
api.swift_delete_object(request, container_name, obj_id)
|
||||
|
||||
|
||||
class CopyObject(tables.LinkAction):
|
||||
|
||||
Reference in New Issue
Block a user