diff --git a/franklincce/explorer/models.py b/franklincce/explorer/models.py index 29972c9..5f0f5ff 100644 --- a/franklincce/explorer/models.py +++ b/franklincce/explorer/models.py @@ -1,5 +1,6 @@ from django.db import models from django.utils.translation import gettext_lazy as _ +from django.urls import reverse from .leglib import HSYIG24, HSMUN23 import io @@ -26,6 +27,10 @@ class School(models.Model): def __str__(self): return self.name + def get_absolute_url(self): + our_name = __class__.__name__ + return reverse("{}.detail".format(our_name), kwargs={"model_id": self.id}) + class Country(models.Model): name = models.CharField(max_length=256) @@ -35,6 +40,10 @@ class Country(models.Model): def __str__(self): return self.name + def get_absolute_url(self): + our_name = __class__.__name__ + return reverse("{}.detail".format(our_name), kwargs={"model_id": self.id}) + class LegislationBook(models.Model): class Meta: verbose_name = "Book" diff --git a/franklincce/explorer/templates/explorer/base.html b/franklincce/explorer/templates/explorer/base.html index ed192dc..c6061dc 100644 --- a/franklincce/explorer/templates/explorer/base.html +++ b/franklincce/explorer/templates/explorer/base.html @@ -18,7 +18,7 @@
all - by topic + by group search stats
diff --git a/franklincce/explorer/templates/explorer/by_group.html b/franklincce/explorer/templates/explorer/by_group.html new file mode 100644 index 0000000..307f20a --- /dev/null +++ b/franklincce/explorer/templates/explorer/by_group.html @@ -0,0 +1,14 @@ +{% extends "explorer/base.html" %} + +{% block content %} + + +
+

View legislation

+ + +
+{% endblock content %} \ No newline at end of file diff --git a/franklincce/explorer/templates/explorer/listing.html b/franklincce/explorer/templates/explorer/listing.html new file mode 100644 index 0000000..ec4e6e0 --- /dev/null +++ b/franklincce/explorer/templates/explorer/listing.html @@ -0,0 +1,15 @@ +{% extends "explorer/base.html" %} + +{% block content %} + + +
+

{{ result_name }}

+ + +
+{% endblock content %} \ No newline at end of file diff --git a/franklincce/explorer/urls.py b/franklincce/explorer/urls.py index efa00ce..146f4f1 100644 --- a/franklincce/explorer/urls.py +++ b/franklincce/explorer/urls.py @@ -10,6 +10,11 @@ urlpatterns = [ path("conference//", views.view_conference, name="viewconf"), path("topics//", views.get_all_classified_by_id, name="classificationview"), path("topics/", views.get_all_classifications, name="classificationsview"), - path("schools//", views.get_all_by_school, name="schoolview"), - path("countries//", views.get_all_by_country, name="countryview"), + + # these are named weirdly -- see models.py School and Country definitions + path("schools//", views.get_all_by_school, name="School.detail"), + path("countries//", views.get_all_by_country, name="Country.detail"), + path("schools/", views.get_all_schools, name="School"), + path("countries/", views.get_all_countries, name="Country"), + path("groups/", views.return_groups, name="Groups") ] diff --git a/franklincce/explorer/views.py b/franklincce/explorer/views.py index cdcc968..285eafe 100644 --- a/franklincce/explorer/views.py +++ b/franklincce/explorer/views.py @@ -91,5 +91,29 @@ def get_all_by_x(model): return wrapped +def get_all_xs(model): + def wrapper(request): + instances = model.objects.all() + try: + # what the heck, django????? + plural = model._meta.verbose_name_plural + except: + plural = model.__name__ + "s" + + plural = plural.lower() + + return render(request, "explorer/listing.html", { + "result_name": "All {}".format(plural), + "instances": instances, + }) + + return wrapper + +def return_groups(request): + return render(request, "explorer/by_group.html", {}) + get_all_by_school = get_all_by_x(School) -get_all_by_country = get_all_by_x(Country) \ No newline at end of file +get_all_by_country = get_all_by_x(Country) + +get_all_schools = get_all_xs(School) +get_all_countries = get_all_xs(Country) \ No newline at end of file