diff --git a/cloudkittydashboard/dashboards/admin/modules/tables.py b/cloudkittydashboard/dashboards/admin/modules/tables.py
index 052b406..efb3042 100644
--- a/cloudkittydashboard/dashboards/admin/modules/tables.py
+++ b/cloudkittydashboard/dashboards/admin/modules/tables.py
@@ -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"))
diff --git a/cloudkittydashboard/dashboards/admin/modules/templates/rating_modules/details.html b/cloudkittydashboard/dashboards/admin/modules/templates/rating_modules/details.html
new file mode 100644
index 0000000..45e2063
--- /dev/null
+++ b/cloudkittydashboard/dashboards/admin/modules/templates/rating_modules/details.html
@@ -0,0 +1,25 @@
+{% extends 'base.html' %}
+{% load i18n sizeformat %}
+{% block title %}{% trans "Rating Module Details" %}{% endblock %}
+
+{% block main %}
+
+
+
+
+ - {% trans "Id" %}
+ - {{ module.module_id }}
+ - {% trans "Description" %}
+ - {{ module.description }}
+ - {% trans "Priority" %}
+ - {{ module.priority }}
+ - {% trans "Enabled" %}
+ - {{ module.enabled }}
+ - {% trans "Hot Config" %}
+ - {{ hotconfig }}
+
+
+
+
+{% endblock %}
+
diff --git a/cloudkittydashboard/dashboards/admin/modules/urls.py b/cloudkittydashboard/dashboards/admin/modules/urls.py
index 6071738..6366dfa 100644
--- a/cloudkittydashboard/dashboards/admin/modules/urls.py
+++ b/cloudkittydashboard/dashboards/admin/modules/urls.py
@@ -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[^/]+)/?$', views.ModuleDetailsView.as_view(),
+ name="module_details"),
+
)
diff --git a/cloudkittydashboard/dashboards/admin/modules/views.py b/cloudkittydashboard/dashboards/admin/modules/views.py
index 8daf6dc..7fac21f 100644
--- a/cloudkittydashboard/dashboards/admin/modules/views.py
+++ b/cloudkittydashboard/dashboards/admin/modules/views.py
@@ -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