Commit f3f433d7 by Kálmán Viktor

network: add blacklist views

parent f4ef13d8
...@@ -5,7 +5,7 @@ from crispy_forms.helper import FormHelper ...@@ -5,7 +5,7 @@ from crispy_forms.helper import FormHelper
from crispy_forms.layout import Layout, Fieldset, Row, HTML from crispy_forms.layout import Layout, Fieldset, Row, HTML
from crispy_forms.layout import Div, ButtonHolder, Submit, BaseInput from crispy_forms.layout import Div, ButtonHolder, Submit, BaseInput
from firewall.models import Host, Vlan, Domain, Group, Record from firewall.models import Host, Vlan, Domain, Group, Record, Blacklist
class LinkButton(BaseInput): class LinkButton(BaseInput):
...@@ -25,6 +25,35 @@ class LinkButton(BaseInput): ...@@ -25,6 +25,35 @@ class LinkButton(BaseInput):
super(LinkButton, self).__init__(name, text, *args, **kwargs) super(LinkButton, self).__init__(name, text, *args, **kwargs)
class BlacklistForm(ModelForm):
helper = FormHelper()
helper.layout = Layout(
Div(
Row(
Div(
Fieldset(
'Blacklist detail',
'ipv4',
'host',
'reason',
'type',
),
css_class='span8'),
Div(
HTML('<p>hello</p>'),
css_class='span4'),
),
ButtonHolder(
Submit('submit', 'Save'),
LinkButton('back', 'Back', reverse_lazy(
'network.domain_list'))
),
css_class="form-horizontal"))
class Meta:
model = Blacklist
class DomainForm(ModelForm): class DomainForm(ModelForm):
helper = FormHelper() helper = FormHelper()
helper.layout = Layout( helper.layout = Layout(
......
...@@ -4,6 +4,16 @@ from django_tables2.columns import LinkColumn ...@@ -4,6 +4,16 @@ from django_tables2.columns import LinkColumn
from firewall.models import Host, Vlan, Domain, Group, Record from firewall.models import Host, Vlan, Domain, Group, Record
class BlacklistTable(Table):
ipv4 = LinkColumn('network.blacklist', args=[A('pk')])
class Meta:
model = Domain
attrs = {'class': 'table table-striped table-condensed'}
fields = ('ipv4', 'host', 'reason', 'type')
order_by = ('ipv4', )
class DomainTable(Table): class DomainTable(Table):
name = LinkColumn('network.domain', args=[A('pk')]) name = LinkColumn('network.domain', args=[A('pk')])
......
{% 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-heading">
<h1>{{ form.ipv4.value }} <small>details of restriction</small></h1>
</div>
{% crispy form %}
{% endblock %}
{% extends "network/base.html" %}
{% load render_table from django_tables2 %}
{% load i18n %}
{% load l10n %}
{% load staticfiles %}
{% block content %}
<div class="page-heading">
<h1>Blacklist <small></small></h1>
</div>
{% render_table table %}
{% endblock %}
...@@ -11,8 +11,10 @@ ...@@ -11,8 +11,10 @@
{% include "network/menu-item.html" with href=u text="Groups" %} {% include "network/menu-item.html" with href=u text="Groups" %}
{% url network.record_list as u %} {% url network.record_list as u %}
{% include "network/menu-item.html" with href=u text="Records" %} {% include "network/menu-item.html" with href=u text="Records" %}
{% url network.blacklist_list as u %}
{% include "network/menu-item.html" with href=u text="Blacklists" %}
{# <li><a href="/vlans/">{% trans "Vlans" %}</a></li> #} {# <li><a href="/vlans/">{% trans "Vlans" %}</a></li> #}
{# <li><a href="/vlangroups/">{% trans "Vlan groups" %}</a></li> #} {# <li><a href="/vlangroups/">{% trans "Vlan groups" %}</a></li> #}
{# <li><a href="/hostgroups/">{% trans "Host groups" %}</a></li> #} {# <li><a href="/hostgroups/">{% trans "Host groups" %}</a></li> #}
{# <li><a href="/hosts/">{% trans "Hosts" %}</a></li> #} {# <li><a href="/hosts/">{% trans "Hosts" %}</a></li> #}
......
...@@ -2,12 +2,16 @@ from django.conf.urls import patterns, url ...@@ -2,12 +2,16 @@ from django.conf.urls import patterns, url
from .views import (IndexView, HostList, HostDetail, VlanList, VlanDetail, from .views import (IndexView, HostList, HostDetail, VlanList, VlanDetail,
DomainList, DomainDetail, GroupList, GroupDetail, DomainList, DomainDetail, GroupList, GroupDetail,
RecordList, RecordDetail) RecordList, RecordDetail, BlacklistList, BlacklistDetail)
urlpatterns = patterns( urlpatterns = patterns(
'', '',
url('^$', IndexView.as_view(), name='network.index'), url('^$', IndexView.as_view(), name='network.index'),
url('^blacklists/$', BlacklistList.as_view(),
name='network.blacklist_list'),
url('^blacklists/(?P<pk>\d+)/$', BlacklistDetail.as_view(),
name='network.blacklist'),
url('^domains/$', DomainList.as_view(), name='network.domain_list'), url('^domains/$', DomainList.as_view(), name='network.domain_list'),
url('^domains/(?P<pk>\d+)/$', DomainDetail.as_view(), url('^domains/(?P<pk>\d+)/$', DomainDetail.as_view(),
name='network.domain'), name='network.domain'),
......
...@@ -4,16 +4,33 @@ from django.core.urlresolvers import reverse_lazy ...@@ -4,16 +4,33 @@ from django.core.urlresolvers import reverse_lazy
from django_tables2 import SingleTableView from django_tables2 import SingleTableView
from firewall.models import Host, Vlan, Domain, Group, Record from firewall.models import Host, Vlan, Domain, Group, Record, Blacklist
from .tables import (HostTable, VlanTable, SmallHostTable, DomainTable, from .tables import (HostTable, VlanTable, SmallHostTable, DomainTable,
GroupTable, RecordTable) GroupTable, RecordTable, BlacklistTable)
from .forms import HostForm, VlanForm, DomainForm, GroupForm, RecordForm from .forms import (HostForm, VlanForm, DomainForm, GroupForm, RecordForm,
BlacklistForm)
class IndexView(TemplateView): class IndexView(TemplateView):
template_name = "network/index.html" template_name = "network/index.html"
class BlacklistList(SingleTableView):
model = Blacklist
table_class = BlacklistTable
template_name = "network/blacklist-list.html"
class BlacklistDetail(UpdateView):
model = Blacklist
template_name = "network/blacklist-edit.html"
form_class = BlacklistForm
def get_success_url(self):
if 'pk' in self.kwargs:
return reverse_lazy('network.blacklist', kwargs=self.kwargs)
class DomainList(SingleTableView): class DomainList(SingleTableView):
model = Domain model = Domain
table_class = DomainTable table_class = DomainTable
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment