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