From 36c558821d52e2e86788eb40fc2901932911797c Mon Sep 17 00:00:00 2001 From: stupidcomputer Date: Tue, 30 Jul 2024 16:48:41 -0500 Subject: [PATCH] feature: refactor bill display into components --- .../templates/explorer/comp_legislation.html | 38 +++++++++++++++++++ .../explorer/templates/explorer/results.html | 4 +- franklincce/explorer/views.py | 24 ++++++++---- 3 files changed, 58 insertions(+), 8 deletions(-) create mode 100644 franklincce/explorer/templates/explorer/comp_legislation.html diff --git a/franklincce/explorer/templates/explorer/comp_legislation.html b/franklincce/explorer/templates/explorer/comp_legislation.html new file mode 100644 index 0000000..e78b3f0 --- /dev/null +++ b/franklincce/explorer/templates/explorer/comp_legislation.html @@ -0,0 +1,38 @@ +{% comment %} +This is a component -- I'm only using this because: + 1. I'm too lazy to install django-components, and + 2. This is the only time a component is necessary, so it doesn't make + any sense to take on an extra dependancy. +{% endcomment %} +
+

{{ legislation.legislation_title }}

+ + +
\ No newline at end of file diff --git a/franklincce/explorer/templates/explorer/results.html b/franklincce/explorer/templates/explorer/results.html index a3a8b2d..d3a4caa 100644 --- a/franklincce/explorer/templates/explorer/results.html +++ b/franklincce/explorer/templates/explorer/results.html @@ -6,10 +6,12 @@

{{ result_name }}

+ {% autoescape off %} + {% endautoescape %}
{% endblock content %} diff --git a/franklincce/explorer/views.py b/franklincce/explorer/views.py index 6b7db90..685273c 100644 --- a/franklincce/explorer/views.py +++ b/franklincce/explorer/views.py @@ -1,4 +1,5 @@ from django.shortcuts import get_object_or_404, render +from django.template.loader import render_to_string from django.urls import reverse from django.http import HttpResponse @@ -34,6 +35,11 @@ def all(request): } return render(request, "explorer/all.html", context) +def legislation_to_html(legislation): + return render_to_string("explorer/comp_legislation.html", { + "legislation": legislation, + }) + def view_legislation(request, legislation_id): legislation = get_object_or_404(LegislativeText, pk=legislation_id) context = { @@ -92,9 +98,11 @@ def get_all_classified_by_id(request, model_id): def get_all_by_x(model): def wrapped(request, model_id): instance = get_object_or_404(model, pk=model_id) + legislation = instance.legislativetext_set.all() + legislation = [legislation_to_html(i) for i in legislation] return render(request, "explorer/results.html", { "result_name": "All legislation by {}".format(instance.name), - "legislation": instance.legislativetext_set.all() + "legislation": legislation }) return wrapped @@ -144,15 +152,17 @@ def handle_search(request): sponsor_results = f(sponsors__name__icontains=query) country_results = f(country__name__icontains=query) + results = text_results.union( + title_results, + school_results, + sponsor_results, + country_results + ) + results = [legislation_to_html(i) for i in results] return render(request, "explorer/results.html", { "result_name": "Results for search term '{}'".format(query), - "legislation": text_results.union( - title_results, - school_results, - sponsor_results, - country_results - ) + "legislation": results }) get_all_by_school = get_all_by_x(School)