df_site 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- df_site/__init__.py +1 -0
- df_site/__main__.py +37 -0
- df_site/admin.py +130 -0
- df_site/apps.py +57 -0
- df_site/components/__init__.py +1 -0
- df_site/components/base.py +82 -0
- df_site/components/detail.py +191 -0
- df_site/components/list.py +446 -0
- df_site/components/list_filters.py +74 -0
- df_site/components/registry.py +55 -0
- df_site/constants.py +71 -0
- df_site/context_processors.py +61 -0
- df_site/defaults.py +319 -0
- df_site/dynamic_settings.py +37 -0
- df_site/form_fields.py +138 -0
- df_site/management/__init__.py +1 -0
- df_site/management/commands/__init__.py +1 -0
- df_site/management/commands/add_image.py +104 -0
- df_site/management/commands/generate_favicon.py +47 -0
- df_site/middleware.py +20 -0
- df_site/migrations/0001_initial.py +220 -0
- df_site/migrations/0002_alter_alertribbon_message_alter_alertribbon_summary.py +23 -0
- df_site/migrations/__init__.py +0 -0
- df_site/model_fields.py +35 -0
- df_site/models.py +130 -0
- df_site/postman/__init__.py +1 -0
- df_site/postman/forms.py +38 -0
- df_site/postman/urls.py +75 -0
- df_site/postman/views.py +65 -0
- df_site/static/css/app.css +0 -0
- df_site/static/css/base.css +22208 -0
- df_site/static/css/ckeditor5.css +422 -0
- df_site/static/favicon/android-chrome-192x192.png +0 -0
- df_site/static/favicon/android-chrome-512x512.png +0 -0
- df_site/static/favicon/apple-touch-icon.png +0 -0
- df_site/static/favicon/favicon-16x16.png +0 -0
- df_site/static/favicon/favicon-32x32.png +0 -0
- df_site/static/favicon/favicon.ico +0 -0
- df_site/static/favicon/mstile-150x150.png +0 -0
- df_site/static/favicon/safari-pinned-tab.svg +46 -0
- df_site/static/images/accessibility.svg +1 -0
- df_site/static/images/align-bottom.svg +1 -0
- df_site/static/images/align-center.svg +1 -0
- df_site/static/images/align-justify.svg +1 -0
- df_site/static/images/align-left.svg +1 -0
- df_site/static/images/align-middle.svg +1 -0
- df_site/static/images/align-right.svg +1 -0
- df_site/static/images/align-top.svg +1 -0
- df_site/static/images/bold.svg +1 -0
- df_site/static/images/browse-files.svg +1 -0
- df_site/static/images/bulletedlist.svg +1 -0
- df_site/static/images/cancel.svg +1 -0
- df_site/static/images/caption.svg +1 -0
- df_site/static/images/check.svg +1 -0
- df_site/static/images/code.svg +1 -0
- df_site/static/images/codeblock.svg +1 -0
- df_site/static/images/cog.svg +1 -0
- df_site/static/images/color-palette.svg +1 -0
- df_site/static/images/color-tile-check.svg +1 -0
- df_site/static/images/drag-handle.svg +1 -0
- df_site/static/images/drag-indicator.svg +1 -0
- df_site/static/images/dropdown-arrow.svg +1 -0
- df_site/static/images/eraser.svg +1 -0
- df_site/static/images/file-arrow-up-solid.svg +1 -0
- df_site/static/images/find-replace.svg +1 -0
- df_site/static/images/font-background.svg +1 -0
- df_site/static/images/font-color.svg +1 -0
- df_site/static/images/font-family.svg +1 -0
- df_site/static/images/font-size.svg +1 -0
- df_site/static/images/heading1.svg +1 -0
- df_site/static/images/heading2.svg +1 -0
- df_site/static/images/heading3.svg +1 -0
- df_site/static/images/heading4.svg +1 -0
- df_site/static/images/heading5.svg +1 -0
- df_site/static/images/heading6.svg +1 -0
- df_site/static/images/history.svg +1 -0
- df_site/static/images/horizontalline.svg +1 -0
- df_site/static/images/html.svg +1 -0
- df_site/static/images/image-asset-manager.svg +1 -0
- df_site/static/images/image-upload.svg +1 -0
- df_site/static/images/image-url.svg +1 -0
- df_site/static/images/image.svg +1 -0
- df_site/static/images/importexport.svg +1 -0
- df_site/static/images/indent.svg +1 -0
- df_site/static/images/italic.svg +1 -0
- df_site/static/images/link.svg +1 -0
- df_site/static/images/liststylecircle.svg +1 -0
- df_site/static/images/liststyledecimal.svg +1 -0
- df_site/static/images/liststyledecimalleadingzero.svg +1 -0
- df_site/static/images/liststyledisc.svg +1 -0
- df_site/static/images/liststylelowerlatin.svg +1 -0
- df_site/static/images/liststylelowerroman.svg +1 -0
- df_site/static/images/liststylesquare.svg +1 -0
- df_site/static/images/liststyleupperlatin.svg +1 -0
- df_site/static/images/liststyleupperroman.svg +1 -0
- df_site/static/images/loupe.svg +1 -0
- df_site/static/images/low-vision.svg +1 -0
- df_site/static/images/marker.svg +1 -0
- df_site/static/images/media-placeholder.svg +1 -0
- df_site/static/images/media.svg +1 -0
- df_site/static/images/next-arrow.svg +1 -0
- df_site/static/images/numberedlist.svg +1 -0
- df_site/static/images/object-center.svg +1 -0
- df_site/static/images/object-full-width.svg +1 -0
- df_site/static/images/object-inline-left.svg +1 -0
- df_site/static/images/object-inline-right.svg +1 -0
- df_site/static/images/object-inline.svg +1 -0
- df_site/static/images/object-left.svg +1 -0
- df_site/static/images/object-right.svg +1 -0
- df_site/static/images/object-size-custom.svg +1 -0
- df_site/static/images/object-size-full.svg +1 -0
- df_site/static/images/object-size-large.svg +1 -0
- df_site/static/images/object-size-medium.svg +1 -0
- df_site/static/images/object-size-small.svg +1 -0
- df_site/static/images/outdent.svg +1 -0
- df_site/static/images/paragraph.svg +1 -0
- df_site/static/images/pen.svg +1 -0
- df_site/static/images/pencil.svg +1 -0
- df_site/static/images/pilcrow.svg +1 -0
- df_site/static/images/plus.svg +1 -0
- df_site/static/images/previous-arrow.svg +1 -0
- df_site/static/images/project-logo.svg +1 -0
- df_site/static/images/quote.svg +1 -0
- df_site/static/images/redo.svg +1 -0
- df_site/static/images/remove-format.svg +1 -0
- df_site/static/images/return-arrow.svg +1 -0
- df_site/static/images/select-all.svg +1 -0
- df_site/static/images/show-blocks.svg +1 -0
- df_site/static/images/source-editing.svg +1 -0
- df_site/static/images/specialcharacters.svg +1 -0
- df_site/static/images/strikethrough.svg +1 -0
- df_site/static/images/subscript.svg +1 -0
- df_site/static/images/superscript.svg +1 -0
- df_site/static/images/table-cell-properties.svg +1 -0
- df_site/static/images/table-column.svg +1 -0
- df_site/static/images/table-merge-cell.svg +1 -0
- df_site/static/images/table-properties.svg +1 -0
- df_site/static/images/table-row.svg +1 -0
- df_site/static/images/table.svg +1 -0
- df_site/static/images/text-alternative.svg +1 -0
- df_site/static/images/text.svg +1 -0
- df_site/static/images/three-vertical-dots.svg +1 -0
- df_site/static/images/todolist.svg +1 -0
- df_site/static/images/underline.svg +1 -0
- df_site/static/images/undo.svg +1 -0
- df_site/static/images/unlink.svg +1 -0
- df_site/static/js/app.js +98 -0
- df_site/static/js/app.js.map +1 -0
- df_site/static/js/base.js +161181 -0
- df_site/static/js/base.js.map +1 -0
- df_site/static/translations/af.js +1 -0
- df_site/static/translations/ar.js +1 -0
- df_site/static/translations/ast.js +1 -0
- df_site/static/translations/az.js +1 -0
- df_site/static/translations/bg.js +1 -0
- df_site/static/translations/bn.js +1 -0
- df_site/static/translations/bs.js +1 -0
- df_site/static/translations/ca.js +1 -0
- df_site/static/translations/cs.js +1 -0
- df_site/static/translations/da.js +1 -0
- df_site/static/translations/de-ch.js +1 -0
- df_site/static/translations/de.js +1 -0
- df_site/static/translations/el.js +1 -0
- df_site/static/translations/en-au.js +1 -0
- df_site/static/translations/en-gb.js +1 -0
- df_site/static/translations/en.js +1 -0
- df_site/static/translations/eo.js +1 -0
- df_site/static/translations/es-co.js +1 -0
- df_site/static/translations/es.js +1 -0
- df_site/static/translations/et.js +1 -0
- df_site/static/translations/eu.js +1 -0
- df_site/static/translations/fa.js +1 -0
- df_site/static/translations/fi.js +1 -0
- df_site/static/translations/gl.js +1 -0
- df_site/static/translations/gu.js +1 -0
- df_site/static/translations/he.js +1 -0
- df_site/static/translations/hi.js +1 -0
- df_site/static/translations/hr.js +1 -0
- df_site/static/translations/hu.js +1 -0
- df_site/static/translations/hy.js +1 -0
- df_site/static/translations/id.js +1 -0
- df_site/static/translations/it.js +1 -0
- df_site/static/translations/ja.js +1 -0
- df_site/static/translations/jv.js +1 -0
- df_site/static/translations/kk.js +1 -0
- df_site/static/translations/km.js +1 -0
- df_site/static/translations/kn.js +1 -0
- df_site/static/translations/ko.js +1 -0
- df_site/static/translations/ku.js +1 -0
- df_site/static/translations/lt.js +1 -0
- df_site/static/translations/lv.js +1 -0
- df_site/static/translations/ms.js +1 -0
- df_site/static/translations/nb.js +1 -0
- df_site/static/translations/ne.js +1 -0
- df_site/static/translations/nl.js +1 -0
- df_site/static/translations/no.js +1 -0
- df_site/static/translations/oc.js +1 -0
- df_site/static/translations/pl.js +1 -0
- df_site/static/translations/pt-br.js +1 -0
- df_site/static/translations/pt.js +1 -0
- df_site/static/translations/ro.js +1 -0
- df_site/static/translations/ru.js +1 -0
- df_site/static/translations/si.js +1 -0
- df_site/static/translations/sk.js +1 -0
- df_site/static/translations/sl.js +1 -0
- df_site/static/translations/sq.js +1 -0
- df_site/static/translations/sr-latn.js +1 -0
- df_site/static/translations/sr.js +1 -0
- df_site/static/translations/sv.js +1 -0
- df_site/static/translations/th.js +1 -0
- df_site/static/translations/ti.js +1 -0
- df_site/static/translations/tk.js +1 -0
- df_site/static/translations/tr.js +1 -0
- df_site/static/translations/tt.js +1 -0
- df_site/static/translations/ug.js +1 -0
- df_site/static/translations/uk.js +1 -0
- df_site/static/translations/ur.js +1 -0
- df_site/static/translations/uz.js +1 -0
- df_site/static/translations/vi.js +1 -0
- df_site/static/translations/zh-cn.js +1 -0
- df_site/static/translations/zh.js +1 -0
- df_site/static/webfonts/fa-brands-400.ttf +0 -0
- df_site/static/webfonts/fa-brands-400.woff2 +0 -0
- df_site/static/webfonts/fa-regular-400.ttf +0 -0
- df_site/static/webfonts/fa-regular-400.woff2 +0 -0
- df_site/static/webfonts/fa-solid-900.ttf +0 -0
- df_site/static/webfonts/fa-solid-900.woff2 +0 -0
- df_site/static/webfonts/fa-v4compatibility.ttf +0 -0
- df_site/static/webfonts/fa-v4compatibility.woff2 +0 -0
- df_site/templates/account/email.html +78 -0
- df_site/templates/account/password_change.html +28 -0
- df_site/templates/account/snippets/warn_no_email.html +6 -0
- df_site/templates/allauth/elements/alert.html +6 -0
- df_site/templates/allauth/elements/badge.html +4 -0
- df_site/templates/allauth/elements/button.html +14 -0
- df_site/templates/allauth/elements/button_group.html +5 -0
- df_site/templates/allauth/elements/field.html +72 -0
- df_site/templates/allauth/elements/fields.html +3 -0
- df_site/templates/allauth/elements/form.html +10 -0
- df_site/templates/allauth/elements/h1.html +1 -0
- df_site/templates/allauth/elements/h2.html +1 -0
- df_site/templates/allauth/elements/img.html +4 -0
- df_site/templates/allauth/elements/p.html +1 -0
- df_site/templates/allauth/elements/panel.html +14 -0
- df_site/templates/allauth/elements/provider.html +6 -0
- df_site/templates/allauth/elements/provider_list.html +5 -0
- df_site/templates/allauth/elements/table.html +5 -0
- df_site/templates/allauth/layouts/base.html +14 -0
- df_site/templates/allauth/layouts/entrance.html +20 -0
- df_site/templates/allauth/layouts/manage.html +1 -0
- df_site/templates/cookie_consent/_cookie_group.html +64 -0
- df_site/templates/cookie_consent/cookiegroup_list.html +23 -0
- df_site/templates/df_components/base.html +0 -0
- df_site/templates/df_components/detail.html +12 -0
- df_site/templates/df_components/detail_fieldset.html +46 -0
- df_site/templates/df_components/list.html +42 -0
- df_site/templates/df_components/list_filter.html +13 -0
- df_site/templates/df_components/list_filters.html +36 -0
- df_site/templates/df_components/list_hierarchy.html +25 -0
- df_site/templates/df_components/list_pagination.html +39 -0
- df_site/templates/df_components/list_search_form.html +38 -0
- df_site/templates/df_components/list_table.html +35 -0
- df_site/templates/df_site/app.html +1 -0
- df_site/templates/df_site/base.html +221 -0
- df_site/templates/df_site/detail.html +8 -0
- df_site/templates/df_site/humans.txt +11 -0
- df_site/templates/df_site/manage_base.html +51 -0
- df_site/templates/df_site/popup_app.html +1 -0
- df_site/templates/df_site/popup_base.html +29 -0
- df_site/templates/df_site/security.txt +5 -0
- df_site/templates/django_bootstrap5/breadcrumb.html +17 -0
- df_site/templates/django_bootstrap5/pagination.html +40 -0
- df_site/templates/django_ckeditor_5/widget.html +13 -0
- df_site/templates/favicon/browserconfig.xml +9 -0
- df_site/templates/mfa/index.html +115 -0
- df_site/templates/mfa/recovery_codes/index.html +33 -0
- df_site/templates/mfa/webauthn/authenticator_list.html +74 -0
- df_site/templates/pipeline/css.html +1 -0
- df_site/templates/pipeline/js.html +1 -0
- df_site/templates/postman/archives.html +8 -0
- df_site/templates/postman/base.html +20 -0
- df_site/templates/postman/base_folder.html +71 -0
- df_site/templates/postman/base_write.html +26 -0
- df_site/templates/postman/inbox.html +7 -0
- df_site/templates/postman/inc_subject_ex.html +21 -0
- df_site/templates/postman/trash.html +12 -0
- df_site/templates/postman/view.html +64 -0
- df_site/templates/users/settings.html +26 -0
- df_site/templates/usersessions/usersession_list.html +70 -0
- df_site/templatetags/__init__.py +1 -0
- df_site/templatetags/df_site.py +241 -0
- df_site/templatetags/images.py +515 -0
- df_site/templatetags/pipeline_sri.py +97 -0
- df_site/testing/__init__.py +1 -0
- df_site/testing/multiple_views.py +369 -0
- df_site/testing/requests.py +299 -0
- df_site/urls.py +41 -0
- df_site/user_settings.py +69 -0
- df_site/users/__init__.py +1 -0
- df_site/users/forms.py +35 -0
- df_site/users/notifications.py +14 -0
- df_site/users/urls.py +17 -0
- df_site/users/views.py +75 -0
- df_site/views.py +122 -0
- df_site-0.1.0.dist-info/LICENSE +519 -0
- df_site-0.1.0.dist-info/METADATA +217 -0
- df_site-0.1.0.dist-info/RECORD +309 -0
- df_site-0.1.0.dist-info/WHEEL +4 -0
- df_site-0.1.0.dist-info/entry_points.txt +3 -0
@@ -0,0 +1,23 @@
|
|
1
|
+
{% extends "df_site/app.html" %}
|
2
|
+
|
3
|
+
{% load i18n df_site %}
|
4
|
+
|
5
|
+
{% block body_banner %}
|
6
|
+
<div class="page-header" id="banner">
|
7
|
+
<div class="row">
|
8
|
+
<div class="col-lg-8 col-md-7 col-sm-6">
|
9
|
+
<h1>{% trans "Cookies" %}</h1>
|
10
|
+
<p class="lead">{% trans 'This is a list of the categories of cookies used in our website and why we use them.' %}</p>
|
11
|
+
</div>
|
12
|
+
<div class="col-lg-4 col-md-5 col-sm-6"></div>
|
13
|
+
</div>
|
14
|
+
</div>
|
15
|
+
{% endblock body_banner %}
|
16
|
+
|
17
|
+
|
18
|
+
{% block body_content %}
|
19
|
+
{% for cookie_group in object_list %}
|
20
|
+
{% include "cookie_consent/_cookie_group.html" %}
|
21
|
+
{% endfor %}
|
22
|
+
|
23
|
+
{% endblock body_content %}
|
File without changes
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<div>
|
2
|
+
{% block field_sets %}
|
3
|
+
{% for fieldset in adminform %}
|
4
|
+
{% include "df_components/detail_fieldset.html" with heading_level=2 id_suffix=forloop.counter0 %}
|
5
|
+
{% endfor %}
|
6
|
+
{% endblock field_sets %}
|
7
|
+
{% block inline_field_sets %}
|
8
|
+
{% for inline_admin_formset in inline_admin_formsets %}
|
9
|
+
{% include inline_admin_formset.opts.template %}
|
10
|
+
{% endfor %}
|
11
|
+
{% endblock inline_field_sets %}
|
12
|
+
</div>
|
@@ -0,0 +1,46 @@
|
|
1
|
+
{% load df_site i18n %}
|
2
|
+
{% with prefix=fieldset.formset.prefix|default:"fieldset" id_prefix=id_prefix|default:"0" id_suffix=id_suffix|default:"0" name=fieldset.name|default:""|slugify %}
|
3
|
+
<fieldset class="card mb-3 aligned {{ fieldset.classes }}"{% if name %}
|
4
|
+
aria-labelledby="{{ prefix }}-{{ id_prefix }}-{{ name }}-{{ id_suffix }}-heading"{% endif %}>
|
5
|
+
{% if name or fieldset.is_collapsible %}
|
6
|
+
<h{{ heading_level|default:2 }} id="{{ prefix }}-{{ id_prefix }}-{{ name }}-{{ id_suffix }}-heading"
|
7
|
+
class="card-header fieldset-heading">{{ fieldset.name }}
|
8
|
+
{% if fieldset.is_collapsible %}
|
9
|
+
<button class="navbar-toggler float-end" type="button" data-bs-toggle="collapse"
|
10
|
+
data-bs-target="#{{ prefix }}-{{ id_prefix }}-{{ name }}-{{ id_suffix }}-body" aria-controls="{{ prefix }}-{{ id_prefix }}-{{ name }}-{{ id_suffix }}-body"
|
11
|
+
aria-expanded="false"
|
12
|
+
aria-label="{% trans 'Toggle content' %}">
|
13
|
+
{% fa6_icon 'bars' %}
|
14
|
+
</button>
|
15
|
+
|
16
|
+
{% endif %}
|
17
|
+
|
18
|
+
</h{{ heading_level|default:2 }}>
|
19
|
+
{% endif %}
|
20
|
+
<div class="{% if fieldset.is_collapsible %}collapse{% endif %}" id="{{ prefix }}-{{ id_prefix }}-{{ name }}-{{ id_suffix }}-body">
|
21
|
+
{% if fieldset.description %}
|
22
|
+
<div class="card-body description">{{ fieldset.description|safe }}</div>
|
23
|
+
{% endif %}
|
24
|
+
<div class="card-body">
|
25
|
+
{% for line in fieldset %}
|
26
|
+
<div
|
27
|
+
class="row
|
28
|
+
{% for field in line %}{% if field.field.name %} field-{{ field.field.name }}{% endif %}{% endfor %}">
|
29
|
+
{% for field in line %}
|
30
|
+
<div
|
31
|
+
class="{% if line.fields|length == 1 %}col-12{% elif line.fields|length == 2 %}col-sm-12 col-md-6{% elif line.fields|length == 3 %}col-sm-12 col-md-4{% else %}col-sm-12 col-md-3{% endif %}
|
32
|
+
flex-container{% if not line.fields|length == 1 %} fieldBox{% if field.field.name %} field-{{ field.field.name }}{% endif %}{% endif %}">
|
33
|
+
{% if field.is_checkbox %}
|
34
|
+
{{ field.field }}{{ field.label_tag }}
|
35
|
+
{% else %}
|
36
|
+
{{ field.label_tag }}
|
37
|
+
{{ field.contents }}
|
38
|
+
{% endif %}
|
39
|
+
</div>
|
40
|
+
{% endfor %}
|
41
|
+
</div>
|
42
|
+
{% endfor %}
|
43
|
+
</div>
|
44
|
+
</div>
|
45
|
+
</fieldset>
|
46
|
+
{% endwith %}
|
@@ -0,0 +1,42 @@
|
|
1
|
+
<div class="row">{% load i18n django_bootstrap5 df_site %}
|
2
|
+
{% block list_search %}{% include "df_components/list_search_form.html" %}{% endblock list_search %}
|
3
|
+
{% block date_hierarchy %}{% include 'df_components/list_hierarchy.html' %}{% endblock %}
|
4
|
+
|
5
|
+
{% block list_table %}
|
6
|
+
{% if cl.has_filters and not cl.model_admin.filters_on_right %}
|
7
|
+
<div class="filters col-md-4 col-sm-12">
|
8
|
+
{% include "df_components/list_filters.html" %}
|
9
|
+
</div>
|
10
|
+
{% endif %}
|
11
|
+
{% if results %}
|
12
|
+
<div class="results {% if cl.has_filters %}col-md-8{% else %}col-md-12{% endif %} col-sm-12">
|
13
|
+
{% block list_pagination_top %}
|
14
|
+
{% if cl.model_admin.pagination_on_top %}
|
15
|
+
{% include "df_components/list_pagination.html" %}
|
16
|
+
{% endif %}
|
17
|
+
{% endblock list_pagination_top %}
|
18
|
+
{% include "df_components/list_table.html" %}
|
19
|
+
{% block list_pagination_bottom %}
|
20
|
+
{% if cl.model_admin.pagination_on_bottom %}
|
21
|
+
{% include "df_components/list_pagination.html" %}
|
22
|
+
{% endif %}
|
23
|
+
{% endblock list_pagination_bottom %}
|
24
|
+
</div>
|
25
|
+
{% else %}
|
26
|
+
<div class="results {% if cl.has_filters %}col-md-8{% else %}col-md-12{% endif %} col-sm-12">
|
27
|
+
<nav>
|
28
|
+
<ul class="pagination justify-content-center">
|
29
|
+
<li class="page-item disabled"><span class="page-link">0 {{ cl.opts.verbose_name }}</span>
|
30
|
+
</li>
|
31
|
+
</ul>
|
32
|
+
</nav>
|
33
|
+
</div>
|
34
|
+
{% endif %}
|
35
|
+
{% if cl.model_admin.filters_on_right and cl.has_filters %}
|
36
|
+
<div class="filters col-md-4 col-sm-12">
|
37
|
+
{% include "df_components/list_filters.html" %}
|
38
|
+
</div>
|
39
|
+
{% endif %}
|
40
|
+
{% endblock list_table %}
|
41
|
+
|
42
|
+
</div>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
{% load i18n df_site %}
|
2
|
+
<details data-filter-title="{{ title }}" open class="list-group list-group-flush">
|
3
|
+
<summary class="list-group-item list-group-item-light bg-body-secondary">
|
4
|
+
{% blocktranslate with filter_title=title %} By {{ filter_title }} {% endblocktranslate %}
|
5
|
+
</summary>
|
6
|
+
{% for choice in choices %}
|
7
|
+
{% if choice.selected %}
|
8
|
+
<a class="list-group-item active d-flex justify-content-between align-items-center" href="{{ choice.query_string|iriencode }}">{% component_auto_badge choice.display extra_class='' color='light' %}</a>
|
9
|
+
{% else %}
|
10
|
+
<a class="list-group-item d-flex justify-content-between align-items-center" href="{{ choice.query_string|iriencode }}">{% component_auto_badge choice.display extra_class='' %}</a>
|
11
|
+
{% endif %}
|
12
|
+
{% endfor %}
|
13
|
+
</details>
|
@@ -0,0 +1,36 @@
|
|
1
|
+
{% load i18n admin_list df_site %}
|
2
|
+
{% block list_filters %}
|
3
|
+
{% if cl.has_filters %}
|
4
|
+
<div class="card mb-2">
|
5
|
+
{% if cl.model_admin.filters_title %}
|
6
|
+
<h2 class="card-header text-center">{{ cl.model_admin.filters_title }}
|
7
|
+
<a class="btn {% if cl.has_active_filters %}btn-primary{% else %}btn-secondary{% endif %} d-md-none" data-bs-toggle="collapse" href="#{{ cl.model_admin.id_prefix }}-filters">
|
8
|
+
{% fa6_icon 'bars' %}
|
9
|
+
</a>
|
10
|
+
</h2>
|
11
|
+
{% endif %}
|
12
|
+
<div class="collapse d-md-block" id="{{ cl.model_admin.id_prefix }}-filters">
|
13
|
+
{% if cl.is_facets_optional or cl.has_active_filters %}
|
14
|
+
<div class="card-body">
|
15
|
+
{% if cl.is_facets_optional %}
|
16
|
+
<span>
|
17
|
+
{% if cl.add_facets %}
|
18
|
+
<a href="{{ cl.remove_facet_link }}"
|
19
|
+
class="hidelink">{% fa6_icon 'eye-slash' %} {% translate "Hide counts" %}</a>
|
20
|
+
{% else %}
|
21
|
+
<a href="{{ cl.add_facet_link }}"
|
22
|
+
class="viewlink">{% fa6_icon 'eye' %} {% translate "Show counts" %}</a>{% endif %}
|
23
|
+
</span>
|
24
|
+
{% endif %}
|
25
|
+
{% if cl.has_active_filters %}
|
26
|
+
<span>
|
27
|
+
<a href="{{ cl.clear_all_filters_qs }}">{% fa6_icon 'times' %} {% translate "Clear all filters" %}</a>
|
28
|
+
</span>
|
29
|
+
{% endif %}
|
30
|
+
</div>
|
31
|
+
{% endif %}
|
32
|
+
{% for spec in cl.filter_specs %}{% admin_list_filter cl spec %}{% endfor %}
|
33
|
+
</div>
|
34
|
+
</div>
|
35
|
+
{% endif %}
|
36
|
+
{% endblock list_filters %}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
{% if show_hierarchy %}{% load df_site %}
|
2
|
+
<nav>
|
3
|
+
<ul class="pagination justify-content-center">
|
4
|
+
{% if hierarchy_title %}
|
5
|
+
<li class="page-item disabled">
|
6
|
+
<span class="page-link">
|
7
|
+
{{ hierarchy_title }}</span>
|
8
|
+
</li>
|
9
|
+
{% endif %}
|
10
|
+
{% if hierarchy_back %}
|
11
|
+
<li class="page-item">
|
12
|
+
<a href="{{ hierarchy_back.link }}"
|
13
|
+
class="page-link">{% fa6_icon 'undo' %} {{ hierarchy_back.title }}</a>
|
14
|
+
</li>
|
15
|
+
{% endif %}
|
16
|
+
{% for choice in hierarchy_choices %}
|
17
|
+
{% if choice.link %}
|
18
|
+
<li class="page-item"><a class="page-link" href="{{ choice.link }}">{{ choice.title }}</a></li>
|
19
|
+
{% else %}
|
20
|
+
<li class="page-item"><a class="page-link active" aria-disabled="true">{{ choice.title }}</a></li>
|
21
|
+
{% endif %}
|
22
|
+
{% endfor %}
|
23
|
+
</ul>
|
24
|
+
</nav>
|
25
|
+
{% endif %}
|
@@ -0,0 +1,39 @@
|
|
1
|
+
{% load df_site i18n %}
|
2
|
+
<nav>
|
3
|
+
<ul class="pagination justify-content-center">
|
4
|
+
{% if pagination_required %}
|
5
|
+
{% if cl.page_num != 1 %}
|
6
|
+
<li class="page-item">
|
7
|
+
<a class="page-link" href="{% component_list_url cl page=1 %}">«</a>
|
8
|
+
</li>
|
9
|
+
{% endif %}
|
10
|
+
{% for i in page_range %}
|
11
|
+
{% if i == cl.paginator.ELLIPSIS or i == cl.page_num %}
|
12
|
+
<li class="page-item disabled"><span class="page-link">{{ i }}</span></li>
|
13
|
+
{% else %}
|
14
|
+
<li class="page-item">
|
15
|
+
<a class="page-link" href="{% component_list_url cl page=i %}">{{ i }}</a>
|
16
|
+
</li>
|
17
|
+
{% endif %}
|
18
|
+
{% endfor %}
|
19
|
+
{% if cl.page_num != cl.paginator.num_pages %}
|
20
|
+
<li class="page-item">
|
21
|
+
<a class="page-link" href="{% component_list_url cl page=cl.paginator.num_pages %}">»</a>
|
22
|
+
</li>
|
23
|
+
{% endif %}
|
24
|
+
{% endif %}
|
25
|
+
{% if show_all_url %}
|
26
|
+
<li class="page-item">
|
27
|
+
<a href="{{ show_all_url }}" class="page-link">{% translate 'Show all' %}
|
28
|
+
<span class="badge text-bg-secondary">{{ cl.result_count }}</span>
|
29
|
+
</a>
|
30
|
+
</li>
|
31
|
+
{% else %}
|
32
|
+
<li class="page-item disabled"><span class="page-link">
|
33
|
+
{{ cl.result_count }} {% if cl.result_count == 1 %}{{ cl.opts.verbose_name }}{% else %}
|
34
|
+
{{ cl.opts.verbose_name_plural }}{% endif %}
|
35
|
+
</span>
|
36
|
+
</li>
|
37
|
+
{% endif %}
|
38
|
+
</ul>
|
39
|
+
</nav>
|
@@ -0,0 +1,38 @@
|
|
1
|
+
{% load i18n static df_site %}
|
2
|
+
{% if cl.search_fields %}
|
3
|
+
{% if cl.search_help_text %}
|
4
|
+
<div class="col-md-12 ">
|
5
|
+
<div class="alert alert-secondary" id="{{ cl.model_admin.id_prefix }}_helptext">
|
6
|
+
{{ cl.search_help_text }}
|
7
|
+
</div>
|
8
|
+
</div>
|
9
|
+
{% endif %}
|
10
|
+
<div class="col-md-12">
|
11
|
+
<form method="get" role="search">
|
12
|
+
<div class="input-group mb-3">
|
13
|
+
<input type="text" class="form-control"
|
14
|
+
name="{{ search_var }}" value="{{ cl.query }}"
|
15
|
+
placeholder="{% trans 'Search' %}"
|
16
|
+
aria-label="{% trans 'Search' %}" {% if cl.search_help_text %} aria-describedby="{{ cl.model_admin.id_prefix }}_helptext"{% endif %}>
|
17
|
+
<button type="submit" class="btn btn-primary">{% fa6_icon 'search' %}</button>
|
18
|
+
{% if show_result_count %}
|
19
|
+
<span class="input-group-text">{% blocktranslate count counter=cl.result_count %}{{ counter }} result{% plural %}{{ counter }} results{% endblocktranslate %}</span>
|
20
|
+
<span class="input-group-text">
|
21
|
+
<a class="" href="?{% if cl.is_popup %}{{ is_popup_var }}=1{% if cl.add_facets %}&{% endif %}{% endif %}{% if cl.add_facets %}{{ is_facets_var }}{% endif %}">
|
22
|
+
{% translate "Show all" %}
|
23
|
+
</a>
|
24
|
+
{% if cl.show_full_result_count %}
|
25
|
+
<span class="badge text-bg-secondary">{{ cl.full_result_count }}</span>
|
26
|
+
{% endif %}
|
27
|
+
</span>
|
28
|
+
{% endif %}
|
29
|
+
</div>
|
30
|
+
<div><!-- DIV needed for valid HTML -->
|
31
|
+
{% for pair in cl.params.items %}
|
32
|
+
{% if pair.0 != search_var %}<input type="hidden" name="{{ pair.0 }}" value="{{ pair.1 }}">
|
33
|
+
{% endif %}
|
34
|
+
{% endfor %}
|
35
|
+
</div>
|
36
|
+
</form>
|
37
|
+
</div>
|
38
|
+
{% endif %}
|
@@ -0,0 +1,35 @@
|
|
1
|
+
{% load i18n df_site %}
|
2
|
+
<table class="table table-striped">
|
3
|
+
<thead>
|
4
|
+
<tr>
|
5
|
+
{% for header in result_headers %}
|
6
|
+
<th scope="col"{{ header.class_attrib }}>
|
7
|
+
{% if header.sortable and header.sort_priority > 0 %}
|
8
|
+
<small class="sortoptions float-end">
|
9
|
+
<a class="sortremove link-primary" href="{{ header.url_remove }}"
|
10
|
+
title="{% translate "Remove from sorting" %}">{% fa6_icon 'arrows-alt-h' %}</a>
|
11
|
+
<a href="{{ header.url_toggle }}"
|
12
|
+
class="toggle link-primary {{ header.ascending|yesno:'ascending,descending' }}"
|
13
|
+
title="{% translate "Toggle sorting" %}">
|
14
|
+
{% if header.ascending %}{% fa6_icon 'sort-up' %}{% else %}
|
15
|
+
{% fa6_icon 'sort-down' %}{% endif %}</a>
|
16
|
+
{% if num_sorted_fields > 1 %}
|
17
|
+
<sub class="text-secondary"
|
18
|
+
title="{% blocktranslate with priority_number=header.sort_priority %}Sorting priority: {{ priority_number }}{% endblocktranslate %}">{{ header.sort_priority }}</sub>
|
19
|
+
{% endif %}
|
20
|
+
</small>
|
21
|
+
{% endif %}
|
22
|
+
<div class="text">{% if header.sortable %}
|
23
|
+
<a href="{{ header.url_primary }}" class="link-primary">{{ header.text|capfirst }}</a>{% else %}
|
24
|
+
<span class="text-primary">{{ header.text|capfirst }}</span>{% endif %}
|
25
|
+
</div>
|
26
|
+
<div class="clear"></div>
|
27
|
+
</th>{% endfor %}
|
28
|
+
</tr>
|
29
|
+
</thead>
|
30
|
+
<tbody>
|
31
|
+
{% for result in results %}
|
32
|
+
<tr>{% for item in result %}{{ item }}{% endfor %}</tr>
|
33
|
+
{% endfor %}
|
34
|
+
</tbody>
|
35
|
+
</table>
|
@@ -0,0 +1 @@
|
|
1
|
+
{% extends "df_site/base.html" %}
|
@@ -0,0 +1,221 @@
|
|
1
|
+
{% load static pipeline_sri df_site i18n django_bootstrap5 cookie_consent_tags %}<!doctype html>
|
2
|
+
{% get_current_language as LANGUAGE_CODE %}{% get_current_language_bidi as LANGUAGE_BIDI %}
|
3
|
+
<html lang="{{ LANGUAGE_CODE|default:"en-us" }}" dir="{{ LANGUAGE_BIDI|yesno:'rtl,ltr,auto' }}"
|
4
|
+
{% if DF_COLOR_THEMES %}data-bs-theme="{{ COLOR_THEME|default:'auto' }}"
|
5
|
+
data-df-dark-theme="{{ DF_COLOR_THEMES.2.0 }}" data-df-light-theme="{{ DF_COLOR_THEMES.1.0 }}"{% endif %}>
|
6
|
+
<head>
|
7
|
+
{% block head_meta_global %}
|
8
|
+
<meta charset="utf-8">
|
9
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
10
|
+
<meta property="og:locale" content="{{ LANGUAGE_CODE }}"/>
|
11
|
+
{% block head_meta_title %}
|
12
|
+
<title>{{ PAGE_TITLE|default:DF_SITE_TITLE }}</title>
|
13
|
+
<meta property="og:title" content="{{ PAGE_TITLE|default:DF_SITE_TITLE }}"/>
|
14
|
+
{% endblock head_meta_title %}
|
15
|
+
<meta property="og:site_name" content="{{ DF_SITE_TITLE }}">
|
16
|
+
<meta name="apple-mobile-web-app-title" content="{{ DF_SITE_TITLE }}">
|
17
|
+
<meta name="application-name" content="{{ DF_SITE_TITLE }}">
|
18
|
+
<meta name="author" content="{{ DF_SITE_AUTHOR }}">
|
19
|
+
{% if PAGE_KEYWORDS %}
|
20
|
+
<meta name="keywords" content="{{ PAGE_KEYWORDS|join:', ' }}">
|
21
|
+
{% elif DF_SITE_KEYWORDS %}
|
22
|
+
<meta name="keywords" content="{{ DF_SITE_KEYWORDS|join:', ' }}">
|
23
|
+
{% endif %}
|
24
|
+
<meta property="twitter:site" content="{{ DF_SITE_X_ACCOUNT }}"/>
|
25
|
+
<meta property="og:type" content="website"/>
|
26
|
+
{% if DF_SITE_ORGANIZATION %}
|
27
|
+
<meta property="organization.name" content="{{ DF_SITE_ORGANIZATION }}"/>{% endif %}
|
28
|
+
<meta property="organization.logo" content="{% static 'favicon/apple-touch-icon.png' %}"/>
|
29
|
+
<link rel="apple-touch-icon" sizes="180x180" href="{% static 'favicon/apple-touch-icon.png' %}">
|
30
|
+
<link rel="icon" type="image/png" sizes="32x32" href="{% static 'favicon/favicon-32x32.png' %}">
|
31
|
+
<link rel="icon" type="image/png" sizes="16x16" href="{% static 'favicon/favicon-16x16.png' %}">
|
32
|
+
<link rel="mask-icon" href="{% static 'favicon/safari-pinned-tab.svg' %}" color="{{ DF_SAFARI_PINNED_COLOR }}">
|
33
|
+
<meta name="msapplication-TileColor" content="{{ DF_MICROSOFT_BACKGROUND_COLOR }}">
|
34
|
+
<meta name="theme-color" content="{{ DF_ANDROID_THEME_COLOR }}">
|
35
|
+
<link rel="manifest" href="{% abs_url 'site_webmanifest' %}">
|
36
|
+
<meta name="msapplication-config" content="{% abs_url 'browserconfig' %}"/>
|
37
|
+
{% endblock head_meta_global %}
|
38
|
+
{% block head_meta_local %}
|
39
|
+
<meta property="twitter:creator" content="{{ DF_SITE_X_ACCOUNT }}"/>
|
40
|
+
<meta property="og:description" content="{{ PAGE_DESCRIPTION|default:DF_SITE_DESCRIPTION }}">
|
41
|
+
<meta name="description" content="{{ PAGE_DESCRIPTION|default:DF_SITE_DESCRIPTION }}">
|
42
|
+
<meta property="og:image" content="
|
43
|
+
{% if PAGE_IMAGE_URL %}{{ PAGE_IMAGE_URL }}{% else %}{% static 'favicon/favicon.ico' %}{% endif %}"/>
|
44
|
+
<link rel="canonical" href="{{ PAGE_URL|default:request.path|abs_url }}"/>
|
45
|
+
<meta property="og:url" content="{{ PAGE_URL|default:request.path|abs_url }}"/>
|
46
|
+
{% endblock head_meta_local %}
|
47
|
+
{% block media_global %}
|
48
|
+
{% sri_stylesheet "base" %}
|
49
|
+
{% sri_stylesheet "app" %}
|
50
|
+
{% sri_javascript "app" %}
|
51
|
+
{% sri_javascript "base" %}
|
52
|
+
{% endblock media_global %}
|
53
|
+
{% block media_local %}
|
54
|
+
{% endblock media_local %}
|
55
|
+
</head>
|
56
|
+
<body class="{% block body_classes %}{% endblock %}" data-admin-utc-offset="{% now "Z" %}">
|
57
|
+
{% block navbar %}
|
58
|
+
<nav class="navbar navbar-expand-lg sticky-top text-bg-primary">
|
59
|
+
<div class="container">
|
60
|
+
{% block navbar_site_title %}
|
61
|
+
<a class="navbar-brand" href="{% url 'index' %}"><img class="w-25"
|
62
|
+
src="{% static 'favicon/apple-touch-icon.png' %}"
|
63
|
+
alt="{% trans 'Site logo' %}"></a>
|
64
|
+
{% endblock navbar_site_title %}
|
65
|
+
<button class="navbar-toggler" type="button" data-bs-toggle="collapse"
|
66
|
+
data-bs-target="#navbar-content" aria-controls="navbar-content"
|
67
|
+
aria-expanded="false"
|
68
|
+
aria-label="{% trans 'Toggle navigation' %}">
|
69
|
+
{% fa6_icon 'bars' large=True %}
|
70
|
+
</button>
|
71
|
+
|
72
|
+
<div class="collapse navbar-collapse" id="navbar-content">
|
73
|
+
{% block navbar_content %}
|
74
|
+
{% endblock navbar_content %}
|
75
|
+
{% block navbar_search_form %}
|
76
|
+
{% endblock navbar_search_form %}
|
77
|
+
{% block navbar_dark_mode %}
|
78
|
+
<a class="btn btn-outline-light df-theme-switcher"
|
79
|
+
href="{% url 'users:theme_switch' %}?current={{ COLOR_THEME }}&next={{ request.get_full_path | urlencode }}"
|
80
|
+
title="{% trans 'Switch color theme' %}">
|
81
|
+
{% for color_data in DF_COLOR_THEMES %}{% if color_data.0 == COLOR_THEME %}
|
82
|
+
{% fa6_icon color_data.2 %}{% endif %}{% endfor %}
|
83
|
+
</a>
|
84
|
+
{% endblock navbar_dark_mode %}
|
85
|
+
{% block navbar_user %}
|
86
|
+
{% if user.is_authenticated %}
|
87
|
+
<span class="btn btn-outline-light dropdown">
|
88
|
+
<a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button"
|
89
|
+
aria-haspopup="true" aria-expanded="false">{% fa6_icon 'user-circle' %}</a>
|
90
|
+
<span class="dropdown-menu">
|
91
|
+
{% url 'account_logout' as logout_url %}
|
92
|
+
<a class="dropdown-item"
|
93
|
+
href="{% url 'users:settings' %}">{% trans "Settings" %}</a>
|
94
|
+
{% if logout_url %}
|
95
|
+
<a class="dropdown-item" href="{{ logout_url }}">{% trans "Sign Out" %}</a>
|
96
|
+
{% endif %}
|
97
|
+
</span>
|
98
|
+
</span>
|
99
|
+
{% else %}
|
100
|
+
<span class="btn btn-outline-light dropdown">
|
101
|
+
<a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button"
|
102
|
+
aria-haspopup="true" aria-expanded="false">{% fa6_icon 'user-circle' %}</a>
|
103
|
+
<span class="dropdown-menu">
|
104
|
+
{% url 'account_login' as login_url %}
|
105
|
+
{% url 'account_signup' as signup_url %}
|
106
|
+
{% if login_url %}
|
107
|
+
<a class="dropdown-item" href="{{ login_url }}">{% trans "Sign In" %}</a>
|
108
|
+
{% endif %}
|
109
|
+
{% if signup_url %}
|
110
|
+
<a class="dropdown-item" href="{{ signup_url }}">{% trans "Sign Up" %}</a>
|
111
|
+
{% endif %}
|
112
|
+
</span>
|
113
|
+
</span>
|
114
|
+
{% endif %}
|
115
|
+
{% endblock %}
|
116
|
+
{% block navbar_admin %}
|
117
|
+
{% if user.is_authenticated and user.is_staff %}
|
118
|
+
<a class="btn btn-outline-light" href="{% url 'admin:index' %}"
|
119
|
+
title="{% trans 'Administration' %}">{% fa6_icon 'tools' %}</a>
|
120
|
+
{% endif %}
|
121
|
+
{% endblock navbar_admin %}
|
122
|
+
</div>
|
123
|
+
</div>
|
124
|
+
</nav>
|
125
|
+
{% endblock navbar %}
|
126
|
+
|
127
|
+
{% block body %}
|
128
|
+
{% for ribbon in DF_RIBBONS %}
|
129
|
+
{% if ribbon.html_tag == "div" %}
|
130
|
+
<div class="{{ ribbon.css_classes }} my-1 text-center p-3"
|
131
|
+
title="{{ ribbon.summary|striptags }}"><h1>{{ ribbon.summary|safe }}</h1>{{ ribbon.message|safe }}</div>
|
132
|
+
{% elif ribbon.url %}
|
133
|
+
<a class="{{ ribbon.css_classes }}" href="{{ ribbon.url }}" data-ribbon="{{ ribbon.summary|safe|escape }}"
|
134
|
+
title="{{ ribbon.summary|striptags }}">{{ ribbon.summary|safe }}</a>
|
135
|
+
{% else %}
|
136
|
+
<span class="{{ ribbon.css_classes }}" data-ribbon="{{ ribbon.summary|safe|escape }}"
|
137
|
+
title="{{ ribbon.summary|striptags }}">{{ ribbon.summary|safe }}</span>
|
138
|
+
{% endif %}
|
139
|
+
{% endfor %}
|
140
|
+
<div class="container px-0">
|
141
|
+
{% block body_messages %}
|
142
|
+
{% bootstrap_messages %}
|
143
|
+
{% endblock body_messages %}
|
144
|
+
{% block body_banner %}
|
145
|
+
<div class="page-header" id="banner">
|
146
|
+
<div class="row">
|
147
|
+
<div class="col-lg-8 col-md-7 col-sm-6 mx-1 py-3">
|
148
|
+
<h1>{{ PAGE_TITLE|default:DF_SITE_TITLE }}</h1>
|
149
|
+
{% if PAGE_DESCRIPTION == "" %}
|
150
|
+
{% elif PAGE_DESCRIPTION or DF_SITE_DESCRIPTION %}
|
151
|
+
<p class="lead">{{ PAGE_DESCRIPTION|default:DF_SITE_DESCRIPTION }}</p>
|
152
|
+
{% endif %}
|
153
|
+
</div>
|
154
|
+
<div class="col-lg-4 col-md-5 col-sm-6"></div>
|
155
|
+
</div>
|
156
|
+
</div>
|
157
|
+
{% endblock body_banner %}
|
158
|
+
<div class=" min-vh-100">
|
159
|
+
{% block body_content %}
|
160
|
+
{% endblock body_content %}
|
161
|
+
</div>
|
162
|
+
|
163
|
+
{% block body_modal %}
|
164
|
+
<div id="df_site-modal" class="modal fade" tabindex="-1"></div>
|
165
|
+
{% endblock body_modal %}
|
166
|
+
|
167
|
+
{% block body_footer %}
|
168
|
+
<footer class="d-flex flex-wrap justify-content-between align-items-center py-3 my-4 border-top">
|
169
|
+
<div class="col-md-4 d-flex align-items-center">
|
170
|
+
{% block body_footer_copyright %}
|
171
|
+
{% if DF_SITE_ORGANIZATION %}
|
172
|
+
<a href="{% url 'index' %}"
|
173
|
+
class="mb-3 me-2 mb-md-0 text-body-secondary text-decoration-none lh-1">
|
174
|
+
|
175
|
+
</a>
|
176
|
+
<span
|
177
|
+
class="mb-3 mb-md-0 text-body-secondary">© {% now "Y" %} {{ DF_SITE_ORGANIZATION }}</span>
|
178
|
+
{% endif %}
|
179
|
+
{% endblock body_footer_copyright %}
|
180
|
+
</div>
|
181
|
+
<ul class="nav col-md4 ">
|
182
|
+
{% block body_footer_links %}
|
183
|
+
<li class="ms-3"><a href="{% url 'index' %}"
|
184
|
+
class="nav-link px-2 text-body-secondary">{% trans 'Home' %}</a></li>
|
185
|
+
{% endblock body_footer_links %}
|
186
|
+
</ul>
|
187
|
+
|
188
|
+
<ul class="nav col-md-4 justify-content-end list-unstyled d-flex">
|
189
|
+
{% block body_footer_social %}
|
190
|
+
{% for social in DF_SITE_SOCIAL_NETWORKS %}
|
191
|
+
<li class="ms-3"><a class="text-body-secondary" href="{{ social.1 }}">
|
192
|
+
{% fa6_icon social.0 prefix="fab" %}
|
193
|
+
</a></li>
|
194
|
+
{% endfor %}
|
195
|
+
{% endblock body_footer_social %}
|
196
|
+
</ul>
|
197
|
+
</footer>
|
198
|
+
|
199
|
+
|
200
|
+
{% endblock body_footer %}
|
201
|
+
</div>
|
202
|
+
{% endblock body %}
|
203
|
+
{% block body_cookies %}
|
204
|
+
{% all_cookie_groups 'cookie-consent__cookie-groups' %}
|
205
|
+
<template id="cookie-consent__cookie-bar" data-df-cookies-status="{% url 'cookie_consent_status' %}">
|
206
|
+
<div class="container cookie-bar footer mt-auto py-3 bg-body-tertiary fixed-bottom">
|
207
|
+
<p>
|
208
|
+
{% trans "This site uses cookies for better performance and user experience. Do you agree to use these cookies?" %}</p>
|
209
|
+
<div class="btn-group">
|
210
|
+
<button type="button"
|
211
|
+
class="btn btn-success cookie-consent__accept">{% trans 'Accept' %}</button>
|
212
|
+
<button type="button"
|
213
|
+
class="btn btn-danger cookie-consent__decline">{% trans 'Decline' %}</button>
|
214
|
+
<a class="btn btn-secondary"
|
215
|
+
href="{% url "cookie_consent_cookie_group_list" %}">{% trans 'Cookies info' %}</a>
|
216
|
+
</div>
|
217
|
+
</div>
|
218
|
+
</template>
|
219
|
+
{% endblock body_cookies %}
|
220
|
+
</body>
|
221
|
+
</html>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
/* TEAM */
|
2
|
+
Your title: {{ DF_SITE_AUTHOR }}{% if DF_SITE_ORGANIZATION and DF_SITE_ORGANIZATION != DF_SITE_AUTHOR %} ({{ DF_SITE_ORGANIZATION }}){% endif %}
|
3
|
+
Site: {{ DF_SITE_TITLE }}
|
4
|
+
{% for sn in humans_social_networks.items %}{{ sn.0|capfirst }}: {{ sn.1 }}
|
5
|
+
{% endfor %}
|
6
|
+
|
7
|
+
/* SITE */
|
8
|
+
Last update: {{ humans_update|date:"Y/m/d" }}
|
9
|
+
Keywords: {{ humans_keywords|join:", " }}
|
10
|
+
Standards: HTML5, CSS3, ES6
|
11
|
+
Components: Django 5, Bootstrap 5, FontAwesome 6
|
@@ -0,0 +1,51 @@
|
|
1
|
+
{% extends "df_site/app.html" %}{% load i18n %}
|
2
|
+
{% block body_banner %}
|
3
|
+
{% endblock body_banner %}
|
4
|
+
|
5
|
+
{% block body_content %}
|
6
|
+
<div class="d-md-flex flex-nowrap mt-5 pt-5 offset-lg-2 ">
|
7
|
+
<div class="d-flex flex-column flex-shrink-0 p-0 list-group">
|
8
|
+
{% with request.resolver_match.url_name as url_name %}
|
9
|
+
{% url 'users:settings' as settings_url %}
|
10
|
+
{% url 'postman:inbox' as pm_url %}
|
11
|
+
{% url 'account_email' as email_url %}
|
12
|
+
{% url 'account_change_password' as change_password_url %}
|
13
|
+
{% url 'socialaccount_connections' as socialaccount_url %}
|
14
|
+
{% url 'mfa_index' as mfa_url %}
|
15
|
+
{% url 'usersessions_list' as usersessions_list_url %}
|
16
|
+
<a class="list-group-item list-group-item-action {% if request.resolver_match.namespace == 'postman' %}active{% endif %}"
|
17
|
+
href="{{ pm_url }}">{% trans "Messaging" %}</a>
|
18
|
+
<a class="list-group-item list-group-item-action {% if url_name == 'settings' %}active{% endif %}"
|
19
|
+
href="{{ settings_url }}">{% trans "Settings" %}</a>
|
20
|
+
{% if email_url %}
|
21
|
+
<a class="list-group-item list-group-item-action {% if 'account_' in url_name and '_email' in url_name %}active{% endif %}"
|
22
|
+
href="{{ email_url }}">{% trans "Change Email" %}</a>
|
23
|
+
{% endif %}
|
24
|
+
{% if change_password_url %}
|
25
|
+
<a class="list-group-item list-group-item-action {% if 'account_' in url_name and '_password' in url_name %}active{% endif %}"
|
26
|
+
href="{{ change_password_url }}">{% trans "Change Password" %}</a>
|
27
|
+
{% endif %}
|
28
|
+
{% if mfa_url %}
|
29
|
+
<a class="list-group-item list-group-item-action {% if 'mfa_' in url_name %}active{% endif %}"
|
30
|
+
href="{{ mfa_url }}">{% trans "Two-Factor Authentication" %}</a>
|
31
|
+
{% endif %}
|
32
|
+
{% if socialaccount_url %}
|
33
|
+
<a class="list-group-item list-group-item-action {% if 'socialaccount_' in url_name %}active{% endif %}"
|
34
|
+
href="{{ socialaccount_url }}">{% trans "Social Accounts" %}</a>
|
35
|
+
{% endif %}
|
36
|
+
{% if usersessions_list_url %}
|
37
|
+
<a class="list-group-item list-group-item-action {% if 'usersessions_' in url_name %}active{% endif %}"
|
38
|
+
href="{{ usersessions_list_url }}">{% trans "Sessions" %}</a>
|
39
|
+
{% endif %}
|
40
|
+
{% endwith %}
|
41
|
+
</div>
|
42
|
+
<div class="d-flex flex-column flex-shrink-0 col-lg-8 col-md-10 card p-0">
|
43
|
+
{% block inner_content %}
|
44
|
+
{% block content %}
|
45
|
+
{% endblock content %}
|
46
|
+
{% endblock inner_content %}
|
47
|
+
</div>
|
48
|
+
{% block extra_body %}
|
49
|
+
{% endblock extra_body %}
|
50
|
+
</div>
|
51
|
+
{% endblock body_content %}
|
@@ -0,0 +1 @@
|
|
1
|
+
{% extends 'df_site/popup_base.html' %}
|