oacpl/case_law/views.py

42 lines
1.2 KiB
Python
Raw Normal View History

2017-09-05 02:24:11 -04:00
from django.shortcuts import render
2017-09-05 19:29:42 -04:00
from .models import Decision, Subtitle
def browser(request):
2017-09-05 22:13:47 -04:00
headers = {}
path = request.GET.get('path')
2017-09-05 19:29:42 -04:00
filter = request.GET.get('filter')
decisions = Decision.objects.all()
if filter:
filter = filter.split('/')
2017-09-05 22:13:47 -04:00
print(filter)
ids = Subtitle.objects.filter(name__in=filter).values_list('id')
for id in ids:
decisions = decisions.filter(headers__in=id)
elif path:
path = path.split('/')
ids = Subtitle.objects.filter(name__in=path).values_list('id')
2017-09-05 19:29:42 -04:00
for id in ids:
decisions = decisions.filter(headers__in=id)
2017-09-05 22:13:47 -04:00
headers = set()
for decision in decisions:
headers = headers.union(decision.headers.all().values_list('name', flat=True))
if path: headers = headers.difference(path)
2017-09-05 19:29:42 -04:00
return render(request, 'browser.html', {
'allHeaders': Subtitle.objects.all().order_by('name'),
'decisions': decisions.order_by('synopsis'),
'decisionsCount': len(decisions),
2017-09-05 22:13:47 -04:00
'filter': filter,
2017-09-05 19:29:42 -04:00
'headers': sorted(headers),
'headersCount': len(headers),
'url': request.GET.get('path'),
'urls': path
})
def case(request, id):
return render(request)