Add details on rating modules

Change-Id: Ife6c7486d39bead03d2b34299ea1ad2c14a295b6
This commit is contained in:
Pierre-Alexandre Bardina 2015-10-20 15:50:15 +02:00
parent 99fd387797
commit b6a4ef4ebc
4 changed files with 56 additions and 4 deletions

View File

@ -12,6 +12,7 @@
# License for the specific language governing permissions and limitations
# under the License.
from django.core.urlresolvers import reverse
from django.utils.translation import ugettext_lazy as _
from horizon import tables
@ -48,8 +49,14 @@ class ToggleEnabledModule(tables.BatchAction):
self.current_past_action = ENABLE
def get_details_link(datum):
if datum.module_id:
url = "horizon:admin:rating_modules:module_details"
return reverse(url, kwargs={'module_id': datum.module_id})
class ModulesTable(tables.DataTable):
name = tables.Column('name', verbose_name=_("Name"))
name = tables.Column('name', verbose_name=_("Name"), link=get_details_link)
description = tables.Column('description', verbose_name=_("Description"))
hot_config = tables.Column('hot-config', verbose_name=_("Configurable"))
enabled = tables.Column('enabled', verbose_name=_("Enabled"))

View File

@ -0,0 +1,25 @@
{% extends 'base.html' %}
{% load i18n sizeformat %}
{% block title %}{% trans "Rating Module Details" %}{% endblock %}
{% block main %}
<div class="row">
<div class="col-sm-12">
<div class="detail">
<dl>
<dt>{% trans "Id" %}</dt>
<dd>{{ module.module_id }}</dd>
<dt>{% trans "Description" %}</dt>
<dd>{{ module.description }}</dd>
<dt>{% trans "Priority" %}</dt>
<dd>{{ module.priority }}</dd>
<dt>{% trans "Enabled" %}</dt>
<dd>{{ module.enabled }}</dd>
<dt>{% trans "Hot Config" %}</dt>
<dd>{{ hotconfig }}</dd>
</dl>
</div>
</div>
</div>
{% endblock %}

View File

@ -15,10 +15,12 @@
from django.conf.urls import patterns
from django.conf.urls import url
from cloudkittydashboard.dashboards.admin.modules.views \
import IndexView
from cloudkittydashboard.dashboards.admin.modules import views
urlpatterns = patterns(
'',
url(r'^$', IndexView.as_view(), name='index'),
url(r'^$', views.IndexView.as_view(), name='index'),
url(r'^(?P<module_id>[^/]+)/?$', views.ModuleDetailsView.as_view(),
name="module_details"),
)

View File

@ -12,7 +12,9 @@
# License for the specific language governing permissions and limitations
# under the License.
from django.utils.translation import ugettext_lazy as _
from horizon import tables
from horizon import views
from cloudkittydashboard.api import cloudkitty as api
from cloudkittydashboard.dashboards.admin.modules import tables as admin_tables
@ -30,3 +32,19 @@ class IndexView(tables.DataTableView):
name=True
)
return modules
class ModuleDetailsView(views.APIView):
template_name = 'admin/rating_modules/details.html'
page_title = _("Rating Module Details")
def get_data(self, request, context, *args, **kwargs):
module_id = kwargs.get("module_id")
try:
module = api.cloudkittyclient(self.request).modules.get(
module_id=module_id)
except Exception:
module = None
context['hotconfig'] = module._info['hot-config']
context['module'] = module
return context