From 154f8fdb4b2ca746831d307ebbbd86d69e06a9fd Mon Sep 17 00:00:00 2001
From: Kálmán Viktor <kviktor@cloud.bme.hu>
Date: Mon, 26 Aug 2013 15:21:42 +0200
Subject: [PATCH] network: object creation

---
 network/templates/network/blacklist-create.html  | 17 +++++++++++++++++
 network/templates/network/blacklist-list.html    |  5 +++--
 network/templates/network/domain-create.html     | 18 ++++++++++++++++++
 network/templates/network/domain-list.html       |  5 +++--
 network/templates/network/group-create.html      | 18 ++++++++++++++++++
 network/templates/network/group-list.html        |  5 +++--
 network/templates/network/host-list.html         |  5 +----
 network/templates/network/record-list.html       |  2 +-
 network/templates/network/rule-create.html       | 18 ++++++++++++++++++
 network/templates/network/rule-list.html         |  3 ++-
 network/templates/network/vlan-create.html       | 21 +++++++++++++++++++++
 network/templates/network/vlan-group-create.html | 18 ++++++++++++++++++
 network/templates/network/vlan-group-edit.html   |  2 +-
 network/templates/network/vlan-group-list.html   |  3 ++-
 network/templates/network/vlan-list.html         |  5 +++--
 network/urls.py                                  | 22 +++++++++++++++++-----
 network/views.py                                 | 36 ++++++++++++++++++++++++++++++++++++
 17 files changed, 182 insertions(+), 21 deletions(-)
 create mode 100644 network/templates/network/blacklist-create.html
 create mode 100644 network/templates/network/domain-create.html
 create mode 100644 network/templates/network/group-create.html
 create mode 100644 network/templates/network/rule-create.html
 create mode 100644 network/templates/network/vlan-create.html
 create mode 100644 network/templates/network/vlan-group-create.html

diff --git a/network/templates/network/blacklist-create.html b/network/templates/network/blacklist-create.html
new file mode 100644
index 0000000..5c7491c
--- /dev/null
+++ b/network/templates/network/blacklist-create.html
@@ -0,0 +1,17 @@
+{% extends "network/base.html" %}
+{% load render_table from django_tables2 %}
+{% load i18n %}
+{% load l10n %}
+{% load staticfiles %}
+{% load crispy_forms_tags %}
+
+{% block content %}
+<div class="page-header">
+    <h1>Create a blacklist</h1>
+</div>
+<div class="row">
+    <div class="col-sm-4">
+        {% crispy form %}
+    </div>
+</div>
+{% endblock %}
diff --git a/network/templates/network/blacklist-list.html b/network/templates/network/blacklist-list.html
index 2cf999b..cd9e8dd 100644
--- a/network/templates/network/blacklist-list.html
+++ b/network/templates/network/blacklist-list.html
@@ -5,8 +5,9 @@
 {% load staticfiles %}
 
 {% block content %}
-<div class="page-header">
-  <h1>Blacklist <small></small></h1>
+<div class="page-header">   
+    <a href="{% url network.blacklist_create %}" class="btn btn-success pull-right"><i class="icon-plus-sign"></i> Create a new blacklist</a>
+    <h1>Blacklist <small></small></h1>
 </div>
 
 {% render_table table %}
diff --git a/network/templates/network/domain-create.html b/network/templates/network/domain-create.html
new file mode 100644
index 0000000..169bfe9
--- /dev/null
+++ b/network/templates/network/domain-create.html
@@ -0,0 +1,18 @@
+{% extends "network/base.html" %}
+{% load render_table from django_tables2 %}
+{% load i18n %}
+{% load l10n %}
+{% load staticfiles %}
+{% load crispy_forms_tags %}
+
+{% block content %}
+<div class="page-header">
+    <h1>Create a new domain <small></small></h1>
+</div>
+
+<div class="row">
+    <div class="col-sm-4">
+        {% crispy form %}
+    </div>
+</div>
+{% endblock %}
diff --git a/network/templates/network/domain-list.html b/network/templates/network/domain-list.html
index ffca73d..a2f2578 100644
--- a/network/templates/network/domain-list.html
+++ b/network/templates/network/domain-list.html
@@ -5,8 +5,9 @@
 {% load staticfiles %}
 
 {% block content %}
-<div class="page-header">
-  <h1>Domains <small>list of all domains</small></h1>
+<div class="page-header"> 
+    <a href="{% url network.domain_create %}" class="btn btn-success pull-right"><i class="icon-plus-sign"></i> Create a new domain</a>
+    <h1>Domains <small>list of all domains</small></h1>
 </div>
 
 {% render_table table %}
diff --git a/network/templates/network/group-create.html b/network/templates/network/group-create.html
new file mode 100644
index 0000000..99257e0
--- /dev/null
+++ b/network/templates/network/group-create.html
@@ -0,0 +1,18 @@
+{% extends "network/base.html" %}
+{% load render_table from django_tables2 %}
+{% load i18n %}
+{% load l10n %}
+{% load staticfiles %}
+{% load crispy_forms_tags %}
+
+{% block content %}
+<div class="page-header">
+    <h1>Create a new host group</small></h1>
+</div>
+
+<div class="row">
+    <div class="col-sm-6">
+        {% crispy form %}
+    </div>
+</div>
+{% endblock %}
diff --git a/network/templates/network/group-list.html b/network/templates/network/group-list.html
index 79f1dbf..1d6c1b4 100644
--- a/network/templates/network/group-list.html
+++ b/network/templates/network/group-list.html
@@ -5,8 +5,9 @@
 {% load staticfiles %}
 
 {% block content %}
-<div class="page-header">
-  <h1>Host groups <small>list of all host groups</small></h1>
+<div class="page-header"> 
+    <a href="{% url network.group_create %}" class="btn btn-success pull-right"><i class="icon-plus-sign"></i> Create a new host group</a>
+    <h1>Host groups <small>list of all host groups</small></h1>
 </div>
 
 {% render_table table %}
diff --git a/network/templates/network/host-list.html b/network/templates/network/host-list.html
index fe567a2..387ca89 100644
--- a/network/templates/network/host-list.html
+++ b/network/templates/network/host-list.html
@@ -5,15 +5,12 @@
 {% load staticfiles %}
 
 {% block content %}
-<style>
-
-</style>
 <div class="page-header">
+    <a href="{% url network.host_create %}" class="btn btn-success pull-right"><i class="icon-plus-sign"></i> Create a new host</a>
     <h1>
         Hosts 
         <small>
             list of all hosts
-            <a href="{% url network.host_create %}"><i class="icon-plus"></i></a>
         </small>
     </h1>
 </div>
diff --git a/network/templates/network/record-list.html b/network/templates/network/record-list.html
index 57091a6..2016b4a 100644
--- a/network/templates/network/record-list.html
+++ b/network/templates/network/record-list.html
@@ -6,11 +6,11 @@
 
 {% block content %}
 <div class="page-header">
+ <a href="{% url network.record_create %}" class="btn btn-success pull-right"><i class="icon-plus-sign"></i> Create a new record</a>
     <h1>
         Records
         <small>
             list of all records
-            <a href="{% url network.record_create %}"><i class="icon-plus"></i></a>
         </small>
     </h1>
 </div>
diff --git a/network/templates/network/rule-create.html b/network/templates/network/rule-create.html
new file mode 100644
index 0000000..d5f446e
--- /dev/null
+++ b/network/templates/network/rule-create.html
@@ -0,0 +1,18 @@
+{% extends "network/base.html" %}
+{% load render_table from django_tables2 %}
+{% load i18n %}
+{% load l10n %}
+{% load staticfiles %}
+{% load crispy_forms_tags %}
+
+{% block content %}
+<div class="page-header">
+    <h3>Create a new rule</h3>
+</div>
+
+<div class="row">
+    <div class="col-sm-7">
+        {% crispy form %}
+    </div>
+</div>
+{% endblock %}
diff --git a/network/templates/network/rule-list.html b/network/templates/network/rule-list.html
index ed2c712..c568efc 100644
--- a/network/templates/network/rule-list.html
+++ b/network/templates/network/rule-list.html
@@ -6,7 +6,8 @@
 
 {% block content %}
 <div class="page-header">
-  <h1>Rules <small>list of all rules</small></h1>
+    <a href="{% url network.rule_create %}" class="btn btn-success pull-right"><i class="icon-plus-sign"></i> Create a new rule</a>
+    <h1>Rules <small>list of all rules</small></h1>
 </div>
 
 
diff --git a/network/templates/network/vlan-create.html b/network/templates/network/vlan-create.html
new file mode 100644
index 0000000..bd57b0c
--- /dev/null
+++ b/network/templates/network/vlan-create.html
@@ -0,0 +1,21 @@
+{% extends "network/base.html" %}
+{% load render_table from django_tables2 %}
+{% load i18n %}
+{% load l10n %}
+{% load staticfiles %}
+{% load crispy_forms_tags %}
+
+{% block content %}
+<div class="page-header">
+    <h1>Create a new Vlan</h1>
+</div>
+
+<div class="row">
+    <div class="col-sm-8">
+        {% crispy form %}
+    </div>
+    <div class="col-sm-4">
+        Halp
+    </div>
+</div>
+{% endblock %}
diff --git a/network/templates/network/vlan-group-create.html b/network/templates/network/vlan-group-create.html
new file mode 100644
index 0000000..f7a4ed4
--- /dev/null
+++ b/network/templates/network/vlan-group-create.html
@@ -0,0 +1,18 @@
+{% extends "network/base.html" %}
+{% load render_table from django_tables2 %}
+{% load i18n %}
+{% load l10n %}
+{% load staticfiles %}
+{% load crispy_forms_tags %}
+
+{% block content %}
+<div class="page-header">
+    <h1>Create a new vlan group</h1>
+</div>
+
+<div class="row">
+    <div class="col-sm-6">
+        {% crispy form %}
+    </div>
+</div>
+{% endblock %}
diff --git a/network/templates/network/vlan-group-edit.html b/network/templates/network/vlan-group-edit.html
index fac3618..35615ef 100644
--- a/network/templates/network/vlan-group-edit.html
+++ b/network/templates/network/vlan-group-edit.html
@@ -7,7 +7,7 @@
 
 {% block content %}
 <div class="page-header">
-    <a href="{% url network.vlangroup_delete pk=vlangroup_pk %}" class="btn btn-danger pull-right"><i class="icon-remove-sign"></i> Delete this group</a>
+    <a href="{% url network.vlan_group_delete pk=vlangroup_pk %}" class="btn btn-danger pull-right"><i class="icon-remove-sign"></i> Delete this group</a>
     <h1>{{ form.name.value }} <small>details of vlan group</small></h1>
 </div>
 
diff --git a/network/templates/network/vlan-group-list.html b/network/templates/network/vlan-group-list.html
index 3df138b..24e2ac6 100644
--- a/network/templates/network/vlan-group-list.html
+++ b/network/templates/network/vlan-group-list.html
@@ -6,7 +6,8 @@
 
 {% block content %}
 <div class="page-header">
-  <h1>Vlan groups <small>list of all vlan groups</small></h1>
+    <a href="{% url network.vlan_group_create %}" class="btn btn-success pull-right"><i class="icon-plus-sign"></i> Create a new vlan group</a>
+    <h1>Vlan groups <small>list of all vlan groups</small></h1>
 </div>
 
 {% render_table table %}
diff --git a/network/templates/network/vlan-list.html b/network/templates/network/vlan-list.html
index e409074..b21166e 100644
--- a/network/templates/network/vlan-list.html
+++ b/network/templates/network/vlan-list.html
@@ -5,8 +5,9 @@
 {% load staticfiles %}
 
 {% block content %}
-<div class="page-header">
-<h1>Vlans <small>list of all vlans</small></h1>
+<div class="page-header"> 
+    <a href="{% url network.vlan_create %}" class="btn btn-success pull-right"><i class="icon-plus-sign"></i> Create a new vlan</a>
+    <h1>Vlans <small>list of all vlans</small></h1>
 </div>
 
 {% render_table table %}
diff --git a/network/urls.py b/network/urls.py
index 0bf98ff..3a83878 100644
--- a/network/urls.py
+++ b/network/urls.py
@@ -2,13 +2,15 @@ from django.conf.urls import patterns, url
 
 from .views import (IndexView,
                     HostList, HostDetail, HostCreate, HostDelete,
-                    VlanList, VlanDetail, VlanDelete,
-                    DomainList, DomainDetail, DomainDelete,
-                    GroupList, GroupDetail, GroupDelete,
+                    VlanList, VlanDetail, VlanDelete, VlanCreate,
+                    DomainList, DomainDetail, DomainDelete, DomainCreate,
+                    GroupList, GroupDetail, GroupDelete, GroupCreate,
                     RecordList, RecordDetail, RecordCreate, RecordDelete,
                     BlacklistList, BlacklistDetail, BlacklistDelete,
-                    RuleList, RuleDetail, RuleDelete,
+                    BlacklistCreate,
+                    RuleList, RuleDetail, RuleDelete, RuleCreate,
                     VlanGroupList, VlanGroupDetail, VlanGroupDelete,
+                    VlanGroupCreate,
                     remove_host_group, add_host_group)
 
 js_info_dict = {
@@ -20,16 +22,22 @@ urlpatterns = patterns(
     url('^$', IndexView.as_view(), name='network.index'),
     url('^blacklists/$', BlacklistList.as_view(),
         name='network.blacklist_list'),
+    url('^blacklists/create$', BlacklistCreate.as_view(),
+        name='network.blacklist_create'),
     url('^blacklists/(?P<pk>\d+)/$', BlacklistDetail.as_view(),
         name='network.blacklist'),
     url('^blacklists/delete/(?P<pk>\d+)/$', BlacklistDelete.as_view(),
         name="network.blacklist_delete"),
     url('^domains/$', DomainList.as_view(), name='network.domain_list'),
+    url('^domains/create$', DomainCreate.as_view(),
+        name='network.domain_create'),
     url('^domains/(?P<pk>\d+)/$', DomainDetail.as_view(),
         name='network.domain'),
     url('^domains/delete/(?P<pk>\d+)/$', DomainDelete.as_view(),
         name="network.domain_delete"),
     url('^groups/$', GroupList.as_view(), name='network.group_list'),
+    url('^groups/create$', GroupCreate.as_view(),
+        name='network.group_create'),
     url('^groups/(?P<pk>\d+)/$', GroupDetail.as_view(), name='network.group'),
     url('^groups/delete/(?P<pk>\d+)/$', GroupDelete.as_view(),
         name="network.group_delete"),
@@ -46,18 +54,22 @@ urlpatterns = patterns(
     url('^records/delete/(?P<pk>\d+)/$', RecordDelete.as_view(),
         name="network.record_delete"),
     url('^rules/$', RuleList.as_view(), name='network.rule_list'),
+    url('^rules/create$', RuleCreate.as_view(), name='network.rule_create'),
     url('^rules/(?P<pk>\d+)/$', RuleDetail.as_view(),
         name='network.rule'),
     url('^vlans/$', VlanList.as_view(), name='network.vlan_list'),
+    url('^vlans/create$', VlanCreate.as_view(), name='network.vlan_create'),
     url('^vlans/(?P<vid>\d+)/$', VlanDetail.as_view(), name='network.vlan'),
     url('^vlans/delete/(?P<vid>\d+)/$', VlanDelete.as_view(),
         name="network.vlan_delete"),
     url('^vlangroups/$', VlanGroupList.as_view(),
         name='network.vlan_group_list'),
+    url('^vlangroups/create$', VlanGroupCreate.as_view(),
+        name='network.vlan_group_create'),
     url('^vlangroups/(?P<pk>\d+)/$', VlanGroupDetail.as_view(),
         name='network.vlan_group'),
     url('^vlangroups/delete/(?P<pk>\d+)/$', VlanGroupDelete.as_view(),
-        name="network.vlangroup_delete"),
+        name="network.vlan_group_delete"),
     url('^rules/delete/(?P<pk>\d+)/$', RuleDelete.as_view(),
         name="network.rule_delete"),
     url('^hosts/(?P<pk>\d+)/remove/(?P<group_pk>\d+)/$', remove_host_group,
diff --git a/network/views.py b/network/views.py
index 11a0e45..eb6962b 100644
--- a/network/views.py
+++ b/network/views.py
@@ -76,6 +76,12 @@ class BlacklistDetail(UpdateView):
         return context
 
 
+class BlacklistCreate(CreateView):
+    model = Blacklist
+    template_name = "network/blacklist-create.html"
+    form_class = BlacklistForm
+
+
 class BlacklistDelete(DeleteView):
     model = Blacklist
     template_name = "network/confirm/base_delete.html"
@@ -120,6 +126,12 @@ class DomainDetail(UpdateView):
         return context
 
 
+class DomainCreate(CreateView):
+    model = Domain
+    template_name = "network/domain-create.html"
+    form_class = DomainForm
+
+
 class DomainDelete(DeleteView):
     model = Domain
     template_name = "network/confirm/base_delete.html"
@@ -139,6 +151,12 @@ class GroupList(SingleTableView):
     table_pagination = False
 
 
+class GroupCreate(CreateView):
+    model = Group
+    template_name = "network/group-create.html"
+    form_class = GroupForm
+
+
 class GroupDetail(UpdateView):
     model = Group
     template_name = "network/group-edit.html"
@@ -360,6 +378,12 @@ class RuleDetail(UpdateView):
         return context
 
 
+class RuleCreate(CreateView):
+    model = Rule
+    template_name = "network/rule-create.html"
+    form_class = RuleForm
+
+
 class RuleDelete(DeleteView):
     model = Rule
     template_name = "network/confirm/base_delete.html"
@@ -396,6 +420,12 @@ class VlanDetail(UpdateView):
     success_url = reverse_lazy('network.vlan_list')
 
 
+class VlanCreate(CreateView):
+    model = Vlan
+    template_name = "network/vlan-create.html"
+    form_class = VlanForm
+
+
 class VlanDelete(DeleteView):
     model = Vlan
     template_name = "network/confirm/base_delete.html"
@@ -466,6 +496,12 @@ class VlanGroupDetail(UpdateView):
         return context
 
 
+class VlanGroupCreate(CreateView):
+    model = VlanGroup
+    template_name = "network/vlan-group-create.html"
+    form_class = VlanGroupForm
+
+
 class VlanGroupDelete(DeleteView):
     model = VlanGroup
     template_name = "network/confirm/base_delete.html"
--
libgit2 0.26.0