From b0a5f07e52f6dc586f673e3b4edf58e9ec3a6fa3 Mon Sep 17 00:00:00 2001
From: Bence Dányi <madbence@gmail.com>
Date: Mon, 29 Apr 2013 15:24:40 +0200
Subject: [PATCH] firewall_gui: list hostgroups

---
 cloud/urls.py                     |  1 +
 firewall_gui/static/js/project.js |  3 +++
 firewall_gui/views.py             | 14 ++++++++++++++
 3 files changed, 18 insertions(+)

diff --git a/cloud/urls.py b/cloud/urls.py
index 01470b8..743bb3e 100644
--- a/cloud/urls.py
+++ b/cloud/urls.py
@@ -98,4 +98,5 @@ urlpatterns = patterns('',
     url(r'^firewall/hosts/$', 'firewall_gui.views.list_hosts'),
     url(r'^firewall/vlans/$', 'firewall_gui.views.list_vlans'),
     url(r'^firewall/vlangroups/$', 'firewall_gui.views.list_vlangroups'),
+    url(r'^firewall/hostgroups/$', 'firewall_gui.views.list_hostgroups'),
 )
diff --git a/firewall_gui/static/js/project.js b/firewall_gui/static/js/project.js
index d71121c..9368564 100644
--- a/firewall_gui/static/js/project.js
+++ b/firewall_gui/static/js/project.js
@@ -12,6 +12,9 @@ var module = angular.module('firewall', []).config(
     }).when('/vlangroups/', {
         templateUrl: '/static/partials/vlangroup-list.html',
         controller: ListController('/firewall/vlangroups/')
+    }).when('/hostgroups/', {
+        templateUrl: '/static/partials/hostgroup-list.html',
+        controller: ListController('/firewall/hostgroups/')
     }).
     otherwise({
         redirectTo: '/rules/'
diff --git a/firewall_gui/views.py b/firewall_gui/views.py
index e1e9310..c393a61 100644
--- a/firewall_gui/views.py
+++ b/firewall_gui/views.py
@@ -112,3 +112,17 @@ def list_vlangroups(request):
     } for group in VlanGroup.objects.all()]
     return HttpResponse(json.dumps(vlangroups), content_type="application/json")
 
+def list_hostgroups(request):
+    groups = [{
+        "id": group.id,
+        "name": group.name,
+        "description": group.description,
+        "owner": {
+            "id": group.owner.id,
+            "name": str(group.owner),
+        },
+        "created_at": group.created_at.isoformat(),
+        "modified_at": group.modified_at.isoformat()
+    } for group in Group.objects.all()]
+    return HttpResponse(json.dumps(groups), content_type="application/json")
+
--
libgit2 0.26.0