def network_list(request, page=None): search_phrase = request.GET.get('s') if search_phrase and search != None: nets = search(Network, search_phrase) # TODO # filter search results by user access else: nets = Network.shared_objects(request.user) paginator = Paginator(list(nets), 10) page = page or request.GET.get('page', 1) try: nets = paginator.page(page) except PageNotAnInteger: nets = paginator.page(1) except EmptyPage: nets = paginator.page(paginator.num_pages) extra_context = { 'networks': nets, 'url': '/network/network/list/' } return direct_to_template(request, 'networks/network_list.html', extra_context=extra_context)
def network_events(request, object_id): """Display events related to a network """ network = Network.objects.get(pk=object_id) if not network.has_access(request.user): return Http404() queryset = Network.shared_objects(request.user) related_hosts = [nh.host.pk for nh in NetworkHost.objects.filter(network=network)] events = Event.objects.filter(source_host__pk__in=related_hosts) extra_context = { 'events': events, 'can_edit': network.can_edit(request.user) } return object_detail(request, queryset, object_id, extra_context=extra_context, template_name='networks/network_events.html')