diff --git a/.djlintrc b/.djlintrc
new file mode 100644
index 0000000000..58e7fe1c0d
--- /dev/null
+++ b/.djlintrc
@@ -0,0 +1,3 @@
+{
+ "ignore": "D018,H006,H008,H020,H021,H023,H025,H030,H031,T002"
+}
diff --git a/.github/workflows/qc_checks.yaml b/.github/workflows/qc_checks.yaml
index 6084c28e55..ff8a7cc695 100644
--- a/.github/workflows/qc_checks.yaml
+++ b/.github/workflows/qc_checks.yaml
@@ -76,22 +76,6 @@ jobs:
python InvenTree/manage.py prerender
npx eslint InvenTree/InvenTree/static_i18n/i18n/*.js
- html:
- name: Style [HTML]
- runs-on: ubuntu-20.04
-
- needs: pep_style
-
- steps:
- - uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # pin@v3.1.0
- - name: Enviroment Setup
- uses: ./.github/actions/setup
- with:
- npm: true
- install: true
- - name: Check HTML Files
- run: npx markuplint **/templates/*.html
-
pre-commit:
name: Style [pre-commit]
runs-on: ubuntu-20.04
@@ -194,7 +178,7 @@ jobs:
name: Tests - DB [SQLite] + Coverage
runs-on: ubuntu-20.04
- needs: [ 'javascript', 'html', 'pre-commit' ]
+ needs: [ 'javascript', 'pre-commit' ]
continue-on-error: true # continue if a step fails so that coverage gets pushed
env:
@@ -227,7 +211,7 @@ jobs:
postgres:
name: Tests - DB [PostgreSQL]
runs-on: ubuntu-20.04
- needs: [ 'javascript', 'html', 'pre-commit' ]
+ needs: [ 'javascript', 'pre-commit' ]
env:
INVENTREE_DB_ENGINE: django.db.backends.postgresql
@@ -271,7 +255,7 @@ jobs:
name: Tests - DB [MySQL]
runs-on: ubuntu-20.04
- needs: [ 'javascript', 'html', 'pre-commit' ]
+ needs: [ 'javascript', 'pre-commit' ]
if: github.event_name == 'push'
env:
diff --git a/.markuplintrc b/.markuplintrc
deleted file mode 100644
index 858d05f3b2..0000000000
--- a/.markuplintrc
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "overrides": {
- "**/templates/*.html": {
- "rules": {
- "[[character-reference]]": false
- }
- }
- }
-}
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 9ed3e281f1..d8e11a1211 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -40,3 +40,7 @@ repos:
name: pip-compile requirements.txt
args: [requirements.in, -o, requirements.txt]
files: ^requirements\.(in|txt)$
+- repo: https://github.com/Riverside-Healthcare/djLint
+ rev: v1.25.0
+ hooks:
+ - id: djlint-django
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 1d417fdb62..0702815af2 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -128,6 +128,24 @@ The various github actions can be found in the `./github/workflows` directory
Sumbitted Python code is automatically checked against PEP style guidelines. Locally you can run `invoke style` to ensure the style checks will pass, before submitting the PR.
Please write docstrings for each function and class - we follow the [google doc-style](https://google.github.io/styleguide/pyguide.html#38-comments-and-docstrings) for python. Docstrings for general javascript code is encouraged! Docstyles are checked by `invoke style`.
+### Django templates
+
+Django are checked by [djlint](https://github.com/Riverside-Healthcare/djlint) through pre-commit.
+
+The following rules out of the [default set](https://djlint.com/docs/linter/) are not applied:
+```bash
+D018: (Django) Internal links should use the {% url ... %} pattern
+H006: Img tag should have height and width attributes
+H008: Attributes should be double quoted
+H021: Inline styles should be avoided
+H023: Do not use entity references
+H025: Tag seems to be an orphan
+H030: Consider adding a meta description
+H031: Consider adding meta keywords
+T002: Double quotes should be used in tags
+```
+
+
## Documentation
New features or updates to existing features should be accompanied by user documentation.
diff --git a/InvenTree/build/templates/build/build_base.html b/InvenTree/build/templates/build/build_base.html
index f0aff38766..fecc6638f6 100644
--- a/InvenTree/build/templates/build/build_base.html
+++ b/InvenTree/build/templates/build/build_base.html
@@ -7,7 +7,7 @@
{% block page_title %}
{% inventree_title %} | {% trans "Build Order" %} - {{ build }}
-{% endblock %}
+{% endblock page_title %}
{% block breadcrumbs %}
{% trans "Build Orders" %}
@@ -25,7 +25,7 @@ src="{% static 'img/blank_image.png' %}"
{% block heading %}
{% trans "Build Order" %} {{ build }}
-{% endblock %}
+{% endblock heading %}
{% block actions %}
@@ -147,7 +147,7 @@ src="{% static 'img/blank_image.png' %}"
{% endif %}
{% endif %}
-{% endblock %}
+{% endblock details %}
{% block details_right %}
@@ -219,7 +219,7 @@ src="{% static 'img/blank_image.png' %}"
{% endif %}
-{% endblock %}
+{% endblock details_right %}
{% block page_data %}
@@ -231,8 +231,7 @@ src="{% static 'img/blank_image.png' %}"
{{ build.title }}
-
-{% endblock %}
+{% endblock page_data %}
{% block js_ready %}
@@ -288,7 +287,7 @@ src="{% static 'img/blank_image.png' %}"
$('#show-qr-code').click(function() {
showQRDialog(
'{% trans "Build Order QR Code" %}',
- '{"build": {{ build.pk }}}'
+ '{"build": {{ build.pk }} }'
);
});
@@ -312,4 +311,4 @@ src="{% static 'img/blank_image.png' %}"
{% endif %}
{% endif %}
-{% endblock %}
+{% endblock js_ready %}
diff --git a/InvenTree/build/templates/build/detail.html b/InvenTree/build/templates/build/detail.html
index 9e4d7c1afb..2e727b4014 100644
--- a/InvenTree/build/templates/build/detail.html
+++ b/InvenTree/build/templates/build/detail.html
@@ -6,7 +6,7 @@
{% block sidebar %}
{% include "build/sidebar.html" %}
-{% endblock %}
+{% endblock sidebar %}
{% block page_content %}
@@ -22,12 +22,12 @@
{% trans "Description" %}
- {{ build.title }}{% include "clip.html"%}
+ {{ build.title }}{% include "clip.html" %}
{% trans "Part" %}
- {{ build.part.full_name }} {% include "clip.html"%}
+ {{ build.part.full_name }} {% include "clip.html" %}
@@ -38,7 +38,7 @@
{% trans "Stock Source" %}
{% if build.take_from %}
- {{ build.take_from }} {% include "clip.html"%}
+ {{ build.take_from }} {% include "clip.html" %}
{% else %}
{% trans "Stock can be taken from any available location." %}
{% endif %}
@@ -51,7 +51,7 @@
{% if build.destination %}
{{ build.destination }}
- {% include "clip.html"%}
+ {% include "clip.html" %}
{% else %}
{% trans "Destination location not specified" %}
{% endif %}
@@ -78,14 +78,14 @@
{% trans "Batch" %}
- {{ build.batch }}{% include "clip.html"%}
+ {{ build.batch }}{% include "clip.html" %}
{% endif %}
{% if build.parent %}
{% trans "Parent Build" %}
- {{ build.parent }} {% include "clip.html"%}
+ {{ build.parent }} {% include "clip.html" %}
{% endif %}
{% if build.priority != 0 %}
@@ -99,7 +99,7 @@
{% trans "Sales Order" %}
- {{ build.sales_order }} {% include "clip.html"%}
+ {{ build.sales_order }} {% include "clip.html" %}
{% endif %}
{% if build.link %}
@@ -319,8 +319,7 @@
-
-{% endblock %}
+{% endblock page_content %}
{% block js_ready %}
{{ block.super }}
@@ -519,4 +518,4 @@ $('#allocate-selected-items').click(function() {
enableSidebar('buildorder');
-{% endblock %}
+{% endblock js_ready %}
diff --git a/InvenTree/build/templates/build/index.html b/InvenTree/build/templates/build/index.html
index 6f08348f44..5094c6a45a 100644
--- a/InvenTree/build/templates/build/index.html
+++ b/InvenTree/build/templates/build/index.html
@@ -6,11 +6,11 @@
{% block page_title %}
{% inventree_title %} | {% trans "Build Orders" %}
-{% endblock %}
+{% endblock page_title %}
{% block heading %}
{% trans "Build Orders" %}
-{% endblock %}
+{% endblock heading %}
{% block actions %}
{% if roles.build.add %}
@@ -18,7 +18,7 @@
{% trans "New Build Order" %}
{% endif %}
-{% endblock %}
+{% endblock actions %}
{% block page_info %}
@@ -35,7 +35,7 @@
-{% endblock %}
+{% endblock page_info %}
{% block js_ready %}
{{ block.super }}
@@ -48,4 +48,4 @@ loadBuildTable($("#build-table"), {
locale: '{{ request.LANGUAGE_CODE }}',
});
-{% endblock %}
+{% endblock js_ready %}
diff --git a/InvenTree/company/templates/company/company_base.html b/InvenTree/company/templates/company/company_base.html
index 2bf017b506..7953635671 100644
--- a/InvenTree/company/templates/company/company_base.html
+++ b/InvenTree/company/templates/company/company_base.html
@@ -6,11 +6,11 @@
{% block page_title %}
{% inventree_title %} | {% trans "Company" %} - {{ company.name }}
-{% endblock %}
+{% endblock page_title %}
{% block heading %}
{% trans "Company" %}: {{ company.name }}
-{% endblock %}
+{% endblock heading %}
{% block actions %}
@@ -45,7 +45,7 @@
{% block thumbnail %}
-
-{% endblock %}
+{% endblock thumbnail %}
{% block details %}
@@ -74,7 +74,7 @@
- {%trans "Manufacturer" %}
+ {% trans "Manufacturer" %}
{% include "yesnolabel.html" with value=company.is_manufacturer %}
@@ -89,7 +89,7 @@
-{% endblock %}
+{% endblock details %}
{% block details_right %}
@@ -99,7 +99,7 @@
{% trans "Website" %}
- {{ company.website }} {% include "clip.html"%}
+ {{ company.website }} {% include "clip.html" %}
{% endif %}
@@ -117,7 +117,7 @@
{% trans "Address" %}
- {{ company.address }}{% include "clip.html"%}
+ {{ company.address }}{% include "clip.html" %}
{% endif %}
{% if company.phone %}
@@ -138,11 +138,11 @@
{% trans "Contact" %}
- {{ company.contact }}{% include "clip.html"%}
+ {{ company.contact }}{% include "clip.html" %}
{% endif %}
-{% endblock %}
+{% endblock details_right %}
{% block js_ready %}
{{ block.super }}
@@ -262,4 +262,4 @@
});
}
-{% endblock %}
+{% endblock js_ready %}
diff --git a/InvenTree/company/templates/company/detail.html b/InvenTree/company/templates/company/detail.html
index 0f3bc6e203..513aaff775 100644
--- a/InvenTree/company/templates/company/detail.html
+++ b/InvenTree/company/templates/company/detail.html
@@ -5,7 +5,7 @@
{% block sidebar %}
{% include 'company/sidebar.html' %}
-{% endblock %}
+{% endblock sidebar %}
{% block page_content %}
@@ -270,7 +270,7 @@
-{% endblock %}
+{% endblock page_content %}
{% block js_ready %}
{{ block.super }}
@@ -542,4 +542,4 @@
enableSidebar('company');
-{% endblock %}
+{% endblock js_ready %}
diff --git a/InvenTree/company/templates/company/index.html b/InvenTree/company/templates/company/index.html
index f9790a9a1d..b255137114 100644
--- a/InvenTree/company/templates/company/index.html
+++ b/InvenTree/company/templates/company/index.html
@@ -6,11 +6,11 @@
{% block page_title %}
{% inventree_title %} | {% trans "Supplier List" %}
-{% endblock %}
+{% endblock page_title %}
{% block heading %}
{{ title }}
-{% endblock %}
+{% endblock heading %}
{% block actions %}
{% if pagetype == 'manufacturers' and roles.purchase_order.add or pagetype == 'suppliers' and roles.purchase_order.add or pagetype == 'customers' and roles.sales_order.add %}
@@ -18,7 +18,7 @@
{{ button_text }}
{% endif %}
-{% endblock %}
+{% endblock actions %}
{% block page_info %}
@@ -32,7 +32,7 @@
-{% endblock %}
+{% endblock page_info %}
{% block js_ready %}
{{ block.super }}
@@ -59,4 +59,4 @@
}
);
-{% endblock %}
+{% endblock js_ready %}
diff --git a/InvenTree/company/templates/company/manufacturer_part.html b/InvenTree/company/templates/company/manufacturer_part.html
index 50663c620f..c26e828558 100644
--- a/InvenTree/company/templates/company/manufacturer_part.html
+++ b/InvenTree/company/templates/company/manufacturer_part.html
@@ -5,7 +5,7 @@
{% block page_title %}
{% inventree_title %} | {% trans "Manufacturer Part" %}
-{% endblock %}
+{% endblock page_title %}
{% block sidebar %}
{% include "company/manufacturer_part_sidebar.html" %}
@@ -48,7 +48,7 @@
{% endblock actions %}
{% block thumbnail %}
- {% trans "Internal Part" %}
{% if part.part %}
- {{ part.part.full_name }} {% include "clip.html"%}
+ {{ part.part.full_name }} {% include "clip.html" %}
{% endif %}
@@ -73,7 +73,7 @@ src="{% static 'img/blank_image.png' %}"
{% trans "Description" %}
- {{ part.description }}{% include "clip.html"%}
+ {{ part.description }}{% include "clip.html" %}
{% endif %}
@@ -90,7 +90,7 @@ src="{% static 'img/blank_image.png' %}"
{% trans "Manufacturer" %}
{% if part.manufacturer %}
- {{ part.manufacturer.name }} {% include "clip.html"%}
+ {{ part.manufacturer.name }} {% include "clip.html" %}
{% else %}
{% trans "No manufacturer information available" %}
{% endif %}
@@ -99,7 +99,7 @@ src="{% static 'img/blank_image.png' %}"
{% trans "MPN" %}
- {{ part.MPN }}{% include "clip.html"%}
+ {{ part.MPN }}{% include "clip.html" %}
{% if part.link %}
@@ -191,8 +191,7 @@ src="{% static 'img/blank_image.png' %}"
-{% endblock %}
-
+{% endblock page_content %}
{% block js_ready %}
{{ block.super }}
@@ -325,7 +324,7 @@ $('#delete-part').click(function() {
success: function() {
{% if part.manufacturer %}
window.location.href = "{% url 'company-detail' part.manufacturer.id %}";
- {% else%}
+ {% else %}
window.location.href = "{% url 'index' %}";
{% endif %}
}
@@ -338,4 +337,4 @@ $('#delete-part').click(function() {
enableSidebar('manufacturerpart');
-{% endblock %}
+{% endblock js_ready %}
diff --git a/InvenTree/company/templates/company/supplier_part.html b/InvenTree/company/templates/company/supplier_part.html
index 90f85faed8..87fc1f0f10 100644
--- a/InvenTree/company/templates/company/supplier_part.html
+++ b/InvenTree/company/templates/company/supplier_part.html
@@ -81,13 +81,13 @@
{% endblock actions %}
{% block thumbnail %}
-
-{% endblock %}
+{% endblock thumbnail %}
{% block details %}
@@ -98,7 +98,7 @@ src="{% static 'img/blank_image.png' %}"
{% trans "Internal Part" %}
{% if part.part %}
- {{ part.part.full_name }} {% include "clip.html"%}
+ {{ part.part.full_name }} {% include "clip.html" %}
{% endif %}
@@ -106,7 +106,7 @@ src="{% static 'img/blank_image.png' %}"
{% trans "Description" %}
- {{ part.description }}{% include "clip.html"%}
+ {{ part.description }}{% include "clip.html" %}
{% endif %}
{% if part.availability_updated %}
@@ -129,7 +129,7 @@ src="{% static 'img/blank_image.png' %}"
{% trans "Supplier" %}
{% if part.supplier %}
- {{ part.supplier.name }} {% include "clip.html"%}
+ {{ part.supplier.name }} {% include "clip.html" %}
{% else %}
{% trans "No supplier information available" %}
{% endif %}
@@ -138,28 +138,28 @@ src="{% static 'img/blank_image.png' %}"
{% trans "SKU" %}
- {{ part.SKU }}{% include "clip.html"%}
+ {{ part.SKU }}{% include "clip.html" %}
{% if part.manufacturer_part.manufacturer %}
{% trans "Manufacturer" %}
- {{ part.manufacturer_part.manufacturer.name }} {% include "clip.html"%}
+ {{ part.manufacturer_part.manufacturer.name }}{% include "clip.html" %}
{% endif %}
{% if part.manufacturer_part.MPN %}
{% trans "MPN" %}
- {{ part.manufacturer_part.MPN }} {% include "clip.html"%}
+ {{ part.manufacturer_part.MPN }} {% include "clip.html" %}
{% endif %}
{% if part.packaging %}
{% trans "Packaging" %}
- {{ part.packaging }}{% include "clip.html"%}
+ {{ part.packaging }}{% include "clip.html" %}
{% endif %}
{% if part.pack_size != 1.0 %}
@@ -173,7 +173,7 @@ src="{% static 'img/blank_image.png' %}"
{% trans "Note" %}
- {{ part.note }}{% include "clip.html"%}
+ {{ part.note }}{% include "clip.html" %}
{% endif %}
{% if part.link %}
@@ -184,7 +184,7 @@ src="{% static 'img/blank_image.png' %}"
{% endif %}
-{% endblock %}
+{% endblock details_right %}
{% block page_content %}
@@ -256,7 +256,7 @@ src="{% static 'img/blank_image.png' %}"
-{% endblock %}
+{% endblock page_content %}
{% block js_ready %}
{{ block.super }}
@@ -266,7 +266,7 @@ src="{% static 'img/blank_image.png' %}"
$("#show-qr-code").click(function() {
showQRDialog(
'{% trans "Supplier Part QR Code" %}',
- '{"supplierpart": {{ part.pk }}}'
+ '{"supplierpart": {{ part.pk }} }'
);
});
@@ -397,4 +397,4 @@ $('#delete-part').click(function() {
enableSidebar('supplierpart');
-{% endblock %}
+{% endblock js_ready %}
diff --git a/InvenTree/label/templates/label/label_base.html b/InvenTree/label/templates/label/label_base.html
index 79913c946f..6ee1c42575 100644
--- a/InvenTree/label/templates/label/label_base.html
+++ b/InvenTree/label/templates/label/label_base.html
@@ -10,7 +10,7 @@
{% endlocalize %}
{% block margin %}
margin: 0mm;
- {% endblock %}
+ {% endblock margin %}
}
body {
@@ -35,7 +35,7 @@
{% block style %}
/* User-defined styles can go here */
- {% endblock %}
+ {% endblock style %}
@@ -44,6 +44,6 @@
{% block content %}
- {% endblock %}
+ {% endblock content %}
@@ -59,13 +58,12 @@
-
@@ -73,14 +71,14 @@
{% block content %}
- {% endblock %}
+ {% endblock content %}
{% block extra_body %}
- {% endblock %}
+ {% endblock extra_body %}
diff --git a/InvenTree/templates/account/email_confirm.html b/InvenTree/templates/account/email_confirm.html
index b602126366..3144a86e60 100644
--- a/InvenTree/templates/account/email_confirm.html
+++ b/InvenTree/templates/account/email_confirm.html
@@ -3,8 +3,7 @@
{% load i18n %}
{% load account %}
-{% block head_title %}{% trans "Confirm Email Address" %}{% endblock %}
-
+{% block head_title %}{% trans "Confirm Email Address" %}{% endblock head_title %}
{% block content %}
{% trans "Confirm Email Address" %}
@@ -31,4 +30,4 @@
{% endif %}
-{% endblock %}
+{% endblock content %}
diff --git a/InvenTree/templates/account/login.html b/InvenTree/templates/account/login.html
index 3e9d62865c..b31b183b31 100644
--- a/InvenTree/templates/account/login.html
+++ b/InvenTree/templates/account/login.html
@@ -3,7 +3,7 @@
{% load inventree_extras %}
{% load i18n account socialaccount crispy_forms_tags inventree_extras %}
-{% block head_title %}{% trans "Sign In" %}{% endblock %}
+{% block head_title %}{% trans "Sign In" %}{% endblock head_title %}
{% block content %}
@@ -26,7 +26,7 @@
{% endif %}
-
@@ -60,4 +60,4 @@
{% include "socialaccount/snippets/login_extra.html" %}
{% endif %}
-{% endblock %}
+{% endblock content %}
diff --git a/InvenTree/templates/account/logout.html b/InvenTree/templates/account/logout.html
index 37df8d7577..9ff5b5e8e1 100644
--- a/InvenTree/templates/account/logout.html
+++ b/InvenTree/templates/account/logout.html
@@ -2,7 +2,7 @@
{% load i18n %}
-{% block head_title %}{% trans "Sign Out" %}{% endblock %}
+{% block head_title %}{% trans "Sign Out" %}{% endblock head_title %}
{% block content %}
{% trans "Sign Out" %}
@@ -28,4 +28,4 @@
-{% endblock %}
+{% endblock content %}
diff --git a/InvenTree/templates/account/password_reset.html b/InvenTree/templates/account/password_reset.html
index 1eeb5c6179..61e2c5cf76 100644
--- a/InvenTree/templates/account/password_reset.html
+++ b/InvenTree/templates/account/password_reset.html
@@ -2,7 +2,7 @@
{% load i18n account crispy_forms_tags inventree_extras %}
-{% block head_title %}{% trans "Password Reset" %}{% endblock %}
+{% block head_title %}{% trans "Password Reset" %}{% endblock head_title %}
{% block content %}
@@ -17,7 +17,7 @@
{% if mail_conf and enable_pwd_forgot %}
{% trans "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it." %}
-
-{% endblock %}
+{% endblock content %}
diff --git a/InvenTree/templates/allauth_2fa/backup_tokens.html b/InvenTree/templates/allauth_2fa/backup_tokens.html
index fac32e3e2c..35cc8c5b42 100644
--- a/InvenTree/templates/allauth_2fa/backup_tokens.html
+++ b/InvenTree/templates/allauth_2fa/backup_tokens.html
@@ -36,4 +36,4 @@
-{% endblock %}
+{% endblock content %}
diff --git a/InvenTree/templates/allauth_2fa/remove.html b/InvenTree/templates/allauth_2fa/remove.html
index aab3915fa8..67c9c05286 100644
--- a/InvenTree/templates/allauth_2fa/remove.html
+++ b/InvenTree/templates/allauth_2fa/remove.html
@@ -24,4 +24,4 @@
{% trans "Return to Site" %}
-{% endblock %}
+{% endblock content %}
diff --git a/InvenTree/templates/allauth_2fa/setup.html b/InvenTree/templates/allauth_2fa/setup.html
index 027cef905d..1fd4635fc0 100644
--- a/InvenTree/templates/allauth_2fa/setup.html
+++ b/InvenTree/templates/allauth_2fa/setup.html
@@ -15,7 +15,7 @@
-
+
@@ -44,4 +44,4 @@
{% trans "Return to Site" %}
-{% endblock %}
+{% endblock content %}
diff --git a/InvenTree/templates/barcode_data.html b/InvenTree/templates/barcode_data.html
index 4e95bbd9d1..dd3845dcee 100644
--- a/InvenTree/templates/barcode_data.html
+++ b/InvenTree/templates/barcode_data.html
@@ -4,7 +4,7 @@
{% trans "Barcode Identifier" %}
- {{ instance.barcode_hash}}
+ {{ instance.barcode_hash }}
{% endif %}
diff --git a/InvenTree/templates/base.html b/InvenTree/templates/base.html
index 7dcf7ea7ba..0e395c3168 100644
--- a/InvenTree/templates/base.html
+++ b/InvenTree/templates/base.html
@@ -59,15 +59,15 @@
{% block head %}
-{% endblock %}
+{% endblock head %}
{% block page_title %}
{% inventree_title %}
-{% endblock %}
+{% endblock page_title %}
@@ -84,7 +84,7 @@
@@ -107,28 +107,28 @@
{% endif %}
- {% endblock %}
+ {% endblock alerts %}
{% block breadcrumb_list %}
{% block breadcrumbs %}
- {% endblock %}
+ {% endblock breadcrumbs %}
{% block breadcrumb_tree %}
- {% endblock %}
+ {% endblock breadcrumb_tree %}
- {% endblock %}
+ {% endblock breadcrumb_list %}
{% block content %}
- {% endblock %}
+ {% endblock content %}
@@ -180,7 +180,7 @@
{% block js_load %}
-{% endblock %}
+{% endblock js_load %}
{% block js %}
-{% endblock %}
+{% endblock js %}