diff --git a/network/templates/network/host-list.html b/network/templates/network/host-list.html index e4229e6..9820db1 100644 --- a/network/templates/network/host-list.html +++ b/network/templates/network/host-list.html @@ -9,5 +9,13 @@ <h1>Hosts <small>list of all hosts</small></h1> </div> +<ul class="nav nav-pills"> + <li class="disabled"><a href="#">Filter by vlans</a></li> + <li {% if not request.GET.vlan %} class="active"{% endif %}><a href="{{ request.path }}">ALL</a></li> + {% for vlan in vlans %} + <li{% if request.GET.vlan|add:"0" == vlan.id %} class="active"{% endif %}><a href="?vlan={{ vlan.id }}">{{ vlan.name }}</a></li> + {% endfor %} +</ul> + {% render_table table %} {% endblock %} diff --git a/network/views.py b/network/views.py index 453fad5..0a2e980 100644 --- a/network/views.py +++ b/network/views.py @@ -34,6 +34,22 @@ class HostList(SingleTableView): table_class = HostTable template_name = "network/host-list.html" + def get_context_data(self, **kwargs): + context = super(HostList, self).get_context_data(**kwargs) + q = Vlan.objects.all().order_by("name") + context['vlans'] = q + return context + + def get_table_data(self): + vlan_id = self.request.GET.get('vlan') + print vlan_id + if vlan_id: + data = Host.objects.filter(vlan=vlan_id).all() + else: + data = Host.objects.all() + + return data + class HostDetail(UpdateView): model = Host