Skip to content

Commit

Permalink
Add by-laws on lawlibrary
Browse files Browse the repository at this point in the history
  • Loading branch information
nickmwangemi committed Aug 15, 2023
1 parent 2dfb94d commit be88c4e
Show file tree
Hide file tree
Showing 12 changed files with 114 additions and 124 deletions.
1 change: 1 addition & 0 deletions lawlibrary/constants.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
PROVINCIAL_CODES = ["ec", "fs", "gp", "lp", "mp", "nc", "nw", "wc", "kzn", "transvaal"]
10 changes: 10 additions & 0 deletions lawlibrary/context_processors.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
from lawlibrary.constants import PROVINCIAL_CODES


def lawlibrary(request):
"""
Add some useful context to templates.
"""
return {
"PROVINCIAL_CODES": PROVINCIAL_CODES,
}
4 changes: 4 additions & 0 deletions lawlibrary/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,7 @@
JAZZMIN_SETTINGS["site_title"] = "Lawlibrary" # noqa
JAZZMIN_SETTINGS["site_header"] = "Lawlibrary" # noqa
JAZZMIN_SETTINGS["site_brand"] = "Lawlibrary.org.za" # noqa

TEMPLATES[0]["OPTIONS"]["context_processors"].append( # noqa
"lawlibrary.context_processors.lawlibrary"
)
23 changes: 0 additions & 23 deletions lawlibrary/templates/liiweb/municipal_legislation.html

This file was deleted.

34 changes: 0 additions & 34 deletions lawlibrary/templates/open_by_laws/municipal_by_laws_list.html

This file was deleted.

27 changes: 19 additions & 8 deletions lawlibrary/templates/peachjam/legislation_detail.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,25 @@
{% block breadcrumbs %}
<nav aria-label="breadcrumb">
{% if document.locality %}
<ol class="breadcrumb">
<li class="breadcrumb-item">
<a href="{% url 'locality_legislation' %}">{% trans 'Provincial Legislation' %}</a>
</li>
<li class="breadcrumb-item">
<a href="{% url 'locality_legislation_list' document.locality.code %}">{{ document.locality.name }}</a>
</li>
</ol>
{% if document.locality.code in PROVINCIAL_CODES %}
<ol class="breadcrumb">
<li class="breadcrumb-item">
<a href="{% url 'locality_legislation' %}">{% trans 'Provincial Legislation' %}</a>
</li>
<li class="breadcrumb-item">
<a href="{% url 'locality_legislation_list' document.locality.code %}">{{ document.locality.name }}</a>
</li>
</ol>
{% else %}
<ol class="breadcrumb">
<li class="breadcrumb-item">
<a href="{% url 'locality_legislation' %}">{% trans 'Municipal By-laws' %}</a>
</li>
<li class="breadcrumb-item">
<a href="{% url 'locality_legislation_list' document.locality.code %}">{{ document.locality.name }}</a>
</li>
</ol>
{% endif %}
{% else %}
<ol class="breadcrumb">
<li class="breadcrumb-item">
Expand Down
16 changes: 0 additions & 16 deletions lawlibrary/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

from lawlibrary import views
from liiweb.views import LocalityLegislationListView
from open_by_laws.views import MunicipalByLawsView

urlpatterns = [
path("", views.HomePageView.as_view(), name="home_page"),
Expand Down Expand Up @@ -47,20 +46,5 @@
views.MunicipalLegislationView.as_view(),
name="municipal_legislation",
),
path(
"bylaws/<str:code>",
MunicipalByLawsView.as_view(),
name="municipal_by_laws",
),
path(
"bylaws/<str:code>/repealed",
MunicipalByLawsView.as_view(variant="repealed"),
name="municipal_by_laws_legislation_list_repealed",
),
path(
"bylaws/<str:code>/all",
MunicipalByLawsView.as_view(variant="all"),
name="municipal_by_laws_legislation_list_all",
),
path("", include("liiweb.urls")),
]
19 changes: 12 additions & 7 deletions lawlibrary/views/legislation.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from lawlibrary.constants import PROVINCIAL_CODES
from liiweb.views import LegislationListView as BaseLegislationListView
from liiweb.views import LocalityLegislationView as BaseLocalityLegislationView
from peachjam.helpers import chunks
Expand All @@ -11,19 +12,23 @@ def get_queryset(self):

class LocalityLegislationView(BaseLocalityLegislationView):
def get_context_data(self, **kwargs):
return super().get_context_data(
locality_legislation_title="Provincial Legislation", **kwargs
)
context = super().get_context_data(**kwargs)
provincial_codes = PROVINCIAL_CODES
localities = Locality.objects.filter(code__in=provincial_codes)
context["locality_groups"] = list(chunks(localities, 2))
context["locality_legislation_title"] = "Provincial Legislation"
return context


class MunicipalLegislationView(BaseLocalityLegislationView):
navbar_link = "legislation/municipal"
template_name = "liiweb/municipal_legislation.html"
template_name = "liiweb/locality_legislation.html"
provincial_codes = PROVINCIAL_CODES

def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context["locality_legislation_title"] = "Municipal By-laws"
codes = "cpt eth jhb wc015 wc041 wc023 wc013 wc033 wc012 ec443 wc011".split()
municipalities = Locality.objects.filter(code__in=codes)
context["municipality_groups"] = list(chunks(municipalities, 2))
municipalities = Locality.objects.exclude(code__in=self.provincial_codes)
context["locality_groups"] = list(chunks(municipalities, 2))
context["locality_legislation_title"] = "Municipal Legislation"
return context
36 changes: 36 additions & 0 deletions liiweb/templates/liiweb/_legislation_nav.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
{% if locality_type == "province" %}
<nav class="nav nav-tabs mb-3 border-bottom">
<li class="nav-item">
<a class="nav-link {% if view.variant == 'current' %}active{% endif %}"
href="{% url 'locality_legislation_list' locality.code %}">Current legislation</a>
</li>
<li class="nav-item">
<a class="nav-link {% if view.variant == 'repealed' %}active{% endif %}"
href="{% url 'locality_legislation_list_repealed' locality.code %}">Repealed legislation</a>
</li>
<li class="nav-item">
<a class="nav-link {% if view.variant == 'subleg' %}active{% endif %}"
href="{% url 'locality_legislation_list_subsidiary' locality.code %}">{{ PEACHJAM_SETTINGS.subleg_label }}</a>
</li>
<li class="nav-item">
<a class="nav-link {% if view.variant == 'all' %}active{% endif %}"
href="{% url 'locality_legislation_list_all' locality.code %}">All legislation</a>
</li>
</nav>
{% endif %}
{% if locality_type == "municipality" %}
<nav class="nav nav-tabs mb-3 border-bottom">
<li class="nav-item">
<a class="nav-link {% if view.variant == 'current' %}active{% endif %}"
href="{% url 'locality_legislation_list' locality.code %}">Current legislation</a>
</li>
<li class="nav-item">
<a class="nav-link {% if view.variant == 'repealed' %}active{% endif %}"
href="{% url 'locality_legislation_list_repealed' locality.code %}">Repealed legislation</a>
</li>
<li class="nav-item">
<a class="nav-link {% if view.variant == 'all' %}active{% endif %}"
href="{% url 'locality_legislation_list_all' locality.code %}">All legislation</a>
</li>
</nav>
{% endif %}
2 changes: 1 addition & 1 deletion liiweb/templates/liiweb/locality_legislation.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<div class="container">
<h1 class="my-4">{{ locality_legislation_title }}</h1>
<div class="row">
{% for group in province_groups %}
{% for group in locality_groups %}
<div class="col-lg">
<ul class="list-unstyled mb-0">
{% for locality in group %}
Expand Down
41 changes: 18 additions & 23 deletions liiweb/templates/liiweb/locality_legislation_list.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,34 +3,29 @@
{% block title %}{{ locality_legislation_title }}{% endblock %}
{% block breadcrumbs %}
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item">
<a href="{% url 'locality_legislation' %}">{{ locality_legislation_title }}</a>
</li>
</ol>
{% if locality.code in PROVINCIAL_CODES %}
<ol class="breadcrumb">
<li class="breadcrumb-item">
<a href="{% url 'locality_legislation' %}">{{ locality_legislation_title }}</a>
</li>
<li class="breadcrumb-item active" aria-current="page">{{ locality.name }}</li>
</ol>
{% else %}
<ol class="breadcrumb">
<li class="breadcrumb-item">
<a href="{% url 'municipal_legislation' %}">{{ locality_legislation_title }}</a>
</li>
<li class="breadcrumb-item active" aria-current="page">{{ locality.name }}</li>
</ol>
{% endif %}
</nav>
{% endblock %}
{% block page-heading %}
<h1 class="my-4">{% blocktrans with locality=locality.name %}{{ locality }} Legislation{% endblocktrans %}</h1>
{% include 'lawlibrary/_legislation_alert.html' %}
{% endblock %}
{% block legislation-nav %}
<nav class="nav nav-tabs mb-3 border-bottom">
<li class="nav-item">
<a class="nav-link {% if view.variant == 'current' %}active{% endif %}"
href="{% url 'locality_legislation_list' locality.code %}">Current legislation</a>
</li>
<li class="nav-item">
<a class="nav-link {% if view.variant == 'repealed' %}active{% endif %}"
href="{% url 'locality_legislation_list_repealed' locality.code %}">Repealed legislation</a>
</li>
<li class="nav-item">
<a class="nav-link {% if view.variant == 'subleg' %}active{% endif %}"
href="{% url 'locality_legislation_list_subsidiary' locality.code %}">{{ PEACHJAM_SETTINGS.subleg_label }}</a>
</li>
<li class="nav-item">
<a class="nav-link {% if view.variant == 'all' %}active{% endif %}"
href="{% url 'locality_legislation_list_all' locality.code %}">All legislation</a>
</li>
</nav>
{% if locality_type %}
{% include 'liiweb/_legislation_nav.html' %}
{% endif %}
{% endblock %}
25 changes: 13 additions & 12 deletions liiweb/views/legislation.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
from django.shortcuts import get_object_or_404
from django.views.generic import TemplateView

from peachjam.helpers import chunks, get_language
from lawlibrary.constants import PROVINCIAL_CODES
from peachjam.helpers import get_language
from peachjam.models import Legislation, Locality
from peachjam_api.serializers import LegislationSerializer

Expand Down Expand Up @@ -73,16 +74,11 @@ class LocalityLegislationView(TemplateView):
template_name = "liiweb/locality_legislation.html"
navbar_link = "legislation/locality"

def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
localities = Locality.objects.all()
context["province_groups"] = list(chunks(localities, 2))
return context


class LocalityLegislationListView(LegislationListView):
template_name = "liiweb/locality_legislation_list.html"
navbar_link = "legislation/locality"
provincial_codes = PROVINCIAL_CODES

def get(self, *args, **kwargs):
self.locality = get_object_or_404(Locality, code=kwargs["code"])
Expand All @@ -92,8 +88,13 @@ def get_queryset(self):
return super().get_queryset().filter(locality=self.locality)

def get_context_data(self, **kwargs):
return super().get_context_data(
locality=self.locality,
locality_legislation_title="Provincial Legislation",
**kwargs
)
context = super().get_context_data(**kwargs)
context["locality"] = self.locality
if self.locality.code in self.provincial_codes:
context["locality_legislation_title"] = "Provincial Legislation"
context["locality_type"] = "province"
else:
context["locality_legislation_title"] = "Municipal Legislation"
context["locality_type"] = "municipality"
self.navbar_link = "legislation/municipal"
return context

0 comments on commit be88c4e

Please sign in to comment.