17
17
from django.core.urlresolvers import reverse
18
18
from django.utils.translation import ugettext_lazy as _
19
from django.utils.translation import ungettext_lazy
20
21
from horizon import exceptions
21
22
from horizon import tables
22
23
from horizon.utils import memoized
24
25
from openstack_dashboard import api
26
from openstack_dashboard.dashboards.project.networks.subnets \
27
import tables as proj_tables
27
30
LOG = logging.getLogger(__name__)
30
class DeleteSubnet(tables.DeleteAction):
31
data_type_singular = _("Subnet")
32
data_type_plural = _("Subnets")
33
class DeleteSubnet(proj_tables.SubnetPolicyTargetMixin, tables.DeleteAction):
35
def action_present(count):
36
return ungettext_lazy(
43
def action_past(count):
44
return ungettext_lazy(
33
50
policy_rules = (("network", "delete_subnet"),)
35
def get_policy_target(self, request, datum=None):
38
project_id = getattr(datum, 'tenant_id', None)
39
return {"network:project_id": project_id}
41
52
def delete(self, request, obj_id):
43
54
api.neutron.subnet_delete(request, obj_id)
50
61
exceptions.handle(request, msg, redirect=redirect)
53
class CreateSubnet(tables.LinkAction):
64
class CreateSubnet(proj_tables.SubnetPolicyTargetMixin, tables.LinkAction):
55
66
verbose_name = _("Create Subnet")
56
67
url = "horizon:admin:networks:addsubnet"
59
70
policy_rules = (("network", "create_subnet"),)
61
def get_policy_target(self, request, datum=None):
63
network = self.table._get_network()
65
project_id = getattr(network, 'tenant_id', None)
66
return {"network:project_id": project_id}
68
72
def get_link_url(self, datum=None):
69
73
network_id = self.table.kwargs['network_id']
70
74
return reverse(self.url, args=(network_id,))
73
class UpdateSubnet(tables.LinkAction):
77
class UpdateSubnet(proj_tables.SubnetPolicyTargetMixin, tables.LinkAction):
75
79
verbose_name = _("Edit Subnet")
76
80
url = "horizon:admin:networks:editsubnet"
79
83
policy_rules = (("network", "update_subnet"),)
81
def get_policy_target(self, request, datum=None):
84
project_id = getattr(datum, 'tenant_id', None)
85
return {"network:project_id": project_id}
87
85
def get_link_url(self, subnet):
88
86
network_id = self.table.kwargs['network_id']
89
87
return reverse(self.url, args=(network_id, subnet.id))