From a527e555076a002a880e98fefb319be8a45dc51f Mon Sep 17 00:00:00 2001 From: Sander van Nielen Date: Wed, 19 Nov 2025 11:32:23 +0100 Subject: [PATCH 01/55] Copy admin layout templates --- mysite/dpp/templates/adminlike/404.html | 12 ++ mysite/dpp/templates/adminlike/500.html | 17 +++ mysite/dpp/templates/adminlike/actions.html | 23 ++++ mysite/dpp/templates/adminlike/app_index.html | 20 +++ mysite/dpp/templates/adminlike/app_list.html | 51 +++++++ .../adminlike/auth/user/add_form.html | 16 +++ .../adminlike/auth/user/change_password.html | 81 +++++++++++ mysite/dpp/templates/adminlike/base.html | 90 +++++++++++++ .../dpp/templates/adminlike/base_backup.html | 126 ++++++++++++++++++ mysite/dpp/templates/adminlike/base_site.html | 12 ++ .../dpp/templates/adminlike/change_form.html | 82 ++++++++++++ .../adminlike/change_form_object_tools.html | 8 ++ .../dpp/templates/adminlike/change_list.html | 94 +++++++++++++ .../adminlike/change_list_object_tools.html | 12 ++ .../adminlike/change_list_results.html | 36 +++++ .../adminlike/color_theme_toggle.html | 15 +++ .../templates/adminlike/date_hierarchy.html | 14 ++ .../adminlike/delete_confirmation.html | 50 +++++++ .../delete_selected_confirmation.html | 47 +++++++ .../adminlike/edit_inline/stacked.html | 38 ++++++ .../adminlike/edit_inline/tabular.html | 69 ++++++++++ mysite/dpp/templates/adminlike/filter.html | 12 ++ .../adminlike/includes/fieldset.html | 39 ++++++ .../includes/object_delete_summary.html | 7 + mysite/dpp/templates/adminlike/index.html | 51 +++++++ .../templates/adminlike/invalid_setup.html | 13 ++ mysite/dpp/templates/adminlike/login.html | 69 ++++++++++ .../dpp/templates/adminlike/nav_sidebar.html | 8 ++ .../templates/adminlike/object_history.html | 56 ++++++++ .../dpp/templates/adminlike/pagination.html | 12 ++ .../templates/adminlike/popup_response.html | 10 ++ .../adminlike/prepopulated_fields_js.html | 5 + .../dpp/templates/adminlike/search_form.html | 20 +++ .../dpp/templates/adminlike/submit_line.html | 17 +++ .../widgets/clearable_file_input.html | 6 + .../dpp/templates/adminlike/widgets/date.html | 3 + .../adminlike/widgets/foreign_key_raw_id.html | 2 + .../widgets/many_to_many_raw_id.html | 1 + .../templates/adminlike/widgets/radio.html | 1 + .../widgets/related_widget_wrapper.html | 41 ++++++ .../adminlike/widgets/split_datetime.html | 4 + .../dpp/templates/adminlike/widgets/time.html | 3 + .../dpp/templates/adminlike/widgets/url.html | 1 + mysite/dpp/templates/dpp/index.html | 19 +++ 44 files changed, 1313 insertions(+) create mode 100644 mysite/dpp/templates/adminlike/404.html create mode 100644 mysite/dpp/templates/adminlike/500.html create mode 100644 mysite/dpp/templates/adminlike/actions.html create mode 100644 mysite/dpp/templates/adminlike/app_index.html create mode 100644 mysite/dpp/templates/adminlike/app_list.html create mode 100644 mysite/dpp/templates/adminlike/auth/user/add_form.html create mode 100644 mysite/dpp/templates/adminlike/auth/user/change_password.html create mode 100644 mysite/dpp/templates/adminlike/base.html create mode 100644 mysite/dpp/templates/adminlike/base_backup.html create mode 100644 mysite/dpp/templates/adminlike/base_site.html create mode 100644 mysite/dpp/templates/adminlike/change_form.html create mode 100644 mysite/dpp/templates/adminlike/change_form_object_tools.html create mode 100644 mysite/dpp/templates/adminlike/change_list.html create mode 100644 mysite/dpp/templates/adminlike/change_list_object_tools.html create mode 100644 mysite/dpp/templates/adminlike/change_list_results.html create mode 100644 mysite/dpp/templates/adminlike/color_theme_toggle.html create mode 100644 mysite/dpp/templates/adminlike/date_hierarchy.html create mode 100644 mysite/dpp/templates/adminlike/delete_confirmation.html create mode 100644 mysite/dpp/templates/adminlike/delete_selected_confirmation.html create mode 100644 mysite/dpp/templates/adminlike/edit_inline/stacked.html create mode 100644 mysite/dpp/templates/adminlike/edit_inline/tabular.html create mode 100644 mysite/dpp/templates/adminlike/filter.html create mode 100644 mysite/dpp/templates/adminlike/includes/fieldset.html create mode 100644 mysite/dpp/templates/adminlike/includes/object_delete_summary.html create mode 100644 mysite/dpp/templates/adminlike/index.html create mode 100644 mysite/dpp/templates/adminlike/invalid_setup.html create mode 100644 mysite/dpp/templates/adminlike/login.html create mode 100644 mysite/dpp/templates/adminlike/nav_sidebar.html create mode 100644 mysite/dpp/templates/adminlike/object_history.html create mode 100644 mysite/dpp/templates/adminlike/pagination.html create mode 100644 mysite/dpp/templates/adminlike/popup_response.html create mode 100644 mysite/dpp/templates/adminlike/prepopulated_fields_js.html create mode 100644 mysite/dpp/templates/adminlike/search_form.html create mode 100644 mysite/dpp/templates/adminlike/submit_line.html create mode 100644 mysite/dpp/templates/adminlike/widgets/clearable_file_input.html create mode 100644 mysite/dpp/templates/adminlike/widgets/date.html create mode 100644 mysite/dpp/templates/adminlike/widgets/foreign_key_raw_id.html create mode 100644 mysite/dpp/templates/adminlike/widgets/many_to_many_raw_id.html create mode 100644 mysite/dpp/templates/adminlike/widgets/radio.html create mode 100644 mysite/dpp/templates/adminlike/widgets/related_widget_wrapper.html create mode 100644 mysite/dpp/templates/adminlike/widgets/split_datetime.html create mode 100644 mysite/dpp/templates/adminlike/widgets/time.html create mode 100644 mysite/dpp/templates/adminlike/widgets/url.html create mode 100644 mysite/dpp/templates/dpp/index.html diff --git a/mysite/dpp/templates/adminlike/404.html b/mysite/dpp/templates/adminlike/404.html new file mode 100644 index 0000000..a290b99 --- /dev/null +++ b/mysite/dpp/templates/adminlike/404.html @@ -0,0 +1,12 @@ +{% extends "adminlike/base_site.html" %} +{% load i18n %} + +{% block title %}{% translate 'Page not found' %}{% endblock %} + +{% block content %} + +

{% translate 'Page not found' %}

+ +

{% translate 'We’re sorry, but the requested page could not be found.' %}

+ +{% endblock %} diff --git a/mysite/dpp/templates/adminlike/500.html b/mysite/dpp/templates/adminlike/500.html new file mode 100644 index 0000000..6bd99e7 --- /dev/null +++ b/mysite/dpp/templates/adminlike/500.html @@ -0,0 +1,17 @@ +{% extends "adminlike/base_site.html" %} +{% load i18n %} + +{% block breadcrumbs %} + +{% endblock %} + +{% block title %}{% translate 'Server error (500)' %}{% endblock %} + +{% block content %} +

{% translate 'Server Error (500)' %}

+

{% translate 'There’s been an error. It’s been reported to the site administrators via email and should be fixed shortly. Thanks for your patience.' %}

+ +{% endblock %} diff --git a/mysite/dpp/templates/adminlike/actions.html b/mysite/dpp/templates/adminlike/actions.html new file mode 100644 index 0000000..f506c92 --- /dev/null +++ b/mysite/dpp/templates/adminlike/actions.html @@ -0,0 +1,23 @@ +{% load i18n %} +
+ {% block actions %} + {% block actions-form %} + {% for field in action_form %}{% if field.label %}{% else %}{{ field }}{% endif %}{% endfor %} + {% endblock %} + {% block actions-submit %} + + {% endblock %} + {% block actions-counter %} + {% if actions_selection_counter %} + {{ selection_note }} + {% if cl.result_count != cl.result_list|length %} + + + + {% endif %} + {% endif %} + {% endblock %} + {% endblock %} +
diff --git a/mysite/dpp/templates/adminlike/app_index.html b/mysite/dpp/templates/adminlike/app_index.html new file mode 100644 index 0000000..1f7c4bd --- /dev/null +++ b/mysite/dpp/templates/adminlike/app_index.html @@ -0,0 +1,20 @@ +{% extends "adminlike/index.html" %} +{% load i18n %} + +{% block bodyclass %}{{ block.super }} app-{{ app_label }}{% endblock %} + +{% if not is_popup %} +{% block nav-breadcrumbs %} + +{% endblock %} +{% endif %} + +{% block sidebar %}{% endblock %} diff --git a/mysite/dpp/templates/adminlike/app_list.html b/mysite/dpp/templates/adminlike/app_list.html new file mode 100644 index 0000000..60d874b --- /dev/null +++ b/mysite/dpp/templates/adminlike/app_list.html @@ -0,0 +1,51 @@ +{% load i18n %} + +{% if app_list %} + {% for app in app_list %} +
+ + + + + + + + + + {% for model in app.models %} + {% with model_name=model.object_name|lower %} + + + + {% if model.add_url %} + + {% else %} + + {% endif %} + + {% if model.admin_url and show_changelinks %} + {% if model.view_only %} + + {% else %} + + {% endif %} + {% elif show_changelinks %} + + {% endif %} + + {% endwith %} + {% endfor %} +
+ {{ app.name }} +
{% translate 'Model name' %}{% translate 'Add link' %}{% translate 'Change or view list link' %}
+ {% if model.admin_url %} + {{ model.name }} + {% else %} + {{ model.name }} + {% endif %} + {% translate 'Add' %}{% translate 'View' %}{% translate 'Change' %}
+
+ {% endfor %} +{% else %} +

{% translate 'You don’t have permission to view or edit anything.' %}

+{% endif %} diff --git a/mysite/dpp/templates/adminlike/auth/user/add_form.html b/mysite/dpp/templates/adminlike/auth/user/add_form.html new file mode 100644 index 0000000..9ac8ade --- /dev/null +++ b/mysite/dpp/templates/adminlike/auth/user/add_form.html @@ -0,0 +1,16 @@ +{% extends "adminlike/change_form.html" %} +{% load i18n static %} + +{% block form_top %} + {% if not is_popup %} +

{% translate "After you’ve created a user, you’ll be able to edit more user options." %}

+ {% endif %} +{% endblock %} +{% block extrahead %} + {{ block.super }} + +{% endblock %} +{% block admin_change_form_document_ready %} + {{ block.super }} + +{% endblock %} diff --git a/mysite/dpp/templates/adminlike/auth/user/change_password.html b/mysite/dpp/templates/adminlike/auth/user/change_password.html new file mode 100644 index 0000000..fa9707b --- /dev/null +++ b/mysite/dpp/templates/adminlike/auth/user/change_password.html @@ -0,0 +1,81 @@ +{% extends "adminlike/base_site.html" %} +{% load i18n static %} +{% load admin_urls %} + +{% block title %}{% if form.errors %}{% translate "Error:" %} {% endif %}{{ block.super }}{% endblock %} +{% block extrastyle %} + {{ block.super }} + + +{% endblock %} +{% block bodyclass %}{{ block.super }} {{ opts.app_label }}-{{ opts.model_name }} change-form{% endblock %} +{% if not is_popup %} +{% block breadcrumbs %} + +{% endblock %} +{% endif %} +{% block content %}
+{% csrf_token %}{% block form_top %}{% endblock %} + +
+{% if is_popup %}{% endif %} +{% if form.errors %} +

+ {% blocktranslate count counter=form.errors.items|length %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktranslate %} +

+{% endif %} + +

{% blocktranslate with username=original %}Enter a new password for the user {{ username }}.{% endblocktranslate %}

+{% if not form.user.has_usable_password %} +

{% blocktranslate %}This action will enable password-based authentication for this user.{% endblocktranslate %}

+{% endif %} + +
+ +
+ {{ form.usable_password.errors }} +
{{ form.usable_password.label_tag }} {{ form.usable_password }}
+ {% if form.usable_password.help_text %} +
+

{{ form.usable_password.help_text|safe }}

+
+ {% endif %} +
+ +
+ {{ form.password1.errors }} +
{{ form.password1.label_tag }} {{ form.password1 }}
+ {% if form.password1.help_text %} +
{{ form.password1.help_text|safe }}
+ {% endif %} +
+ +
+ {{ form.password2.errors }} +
{{ form.password2.label_tag }} {{ form.password2 }}
+ {% if form.password2.help_text %} +
{{ form.password2.help_text|safe }}
+ {% endif %} +
+ +
+ +
+ {% if form.user.has_usable_password %} + + + {% else %} + + {% endif %} +
+ +
+
+ +{% endblock %} diff --git a/mysite/dpp/templates/adminlike/base.html b/mysite/dpp/templates/adminlike/base.html new file mode 100644 index 0000000..34f8adc --- /dev/null +++ b/mysite/dpp/templates/adminlike/base.html @@ -0,0 +1,90 @@ +{% load static %} + + + + + + + {% block title %}{{ title|default:"My App" }} — My App{% endblock %} + + {% block extrastyle %} + + + + + {% endblock %} + + {% block extrahead %}{% endblock %} + + + +{% block header %} + +{% endblock %} + +
+
+ + {% block breadcrumbs %} + + {% endblock %} + +

{% block pagetitle %}{{ title }}{% endblock %}

+ + {% if messages %} + {% for message in messages %} +
{{ message }}
+ {% endfor %} + {% endif %} + + {% block content %} + {{ block.super }} + {% endblock %} +
+
+ +{% block footer %} + +{% endblock %} + +{% block extrajs %} + + + + + + + +{% endblock %} + + + \ No newline at end of file diff --git a/mysite/dpp/templates/adminlike/base_backup.html b/mysite/dpp/templates/adminlike/base_backup.html new file mode 100644 index 0000000..dd02328 --- /dev/null +++ b/mysite/dpp/templates/adminlike/base_backup.html @@ -0,0 +1,126 @@ +{% load i18n static %} +{% get_current_language as LANGUAGE_CODE %}{% get_current_language_bidi as LANGUAGE_BIDI %} + + +{% block title %}{% endblock %} + +{% block dark-mode-vars %} + + +{% endblock %} +{% if not is_popup and is_nav_sidebar_enabled %} + + +{% endif %} +{% block extrastyle %}{% endblock %} +{% if LANGUAGE_BIDI %}{% endif %} +{% block extrahead %}{% endblock %} +{% block responsive %} + + + {% if LANGUAGE_BIDI %}{% endif %} +{% endblock %} +{% block blockbots %}{% endblock %} + + + +{% translate 'Skip to main content' %} + +
+ + {% if not is_popup %} + + {% block header %} + + {% endblock %} + + {% block nav-breadcrumbs %} + + {% endblock %} + {% endif %} + +
+ {% if not is_popup and is_nav_sidebar_enabled %} + {% block nav-sidebar %} + {% include "admin/nav_sidebar.html" %} + {% endblock %} + {% endif %} +
+ {% block messages %} + {% if messages %} +
    {% for message in messages %} + {{ message|capfirst }} + {% endfor %}
+ {% endif %} + {% endblock messages %} + +
+ {% block pretitle %}{% endblock %} + {% block content_title %}{% if title %}

{{ title }}

{% endif %}{% endblock %} + {% block content_subtitle %}{% if subtitle %}

{{ subtitle }}

{% endif %}{% endblock %} + {% block content %} + {% block object-tools %}{% endblock %} + {{ content }} + {% endblock %} + {% block sidebar %}{% endblock %} +
+
+ +
+
+
{% block footer %}{% endblock %}
+
+ + + + + + + + + +{% block extrabody %}{% endblock extrabody %} + + diff --git a/mysite/dpp/templates/adminlike/base_site.html b/mysite/dpp/templates/adminlike/base_site.html new file mode 100644 index 0000000..f3c6b9d --- /dev/null +++ b/mysite/dpp/templates/adminlike/base_site.html @@ -0,0 +1,12 @@ +{% extends "adminlike/base.html" %} + +{% block title %}{% if subtitle %}{{ subtitle }} | {% endif %}{{ title }} | {{ site_title|default:_('Django site admin') }}{% endblock %} + +{% block branding %} +
{{ site_header|default:_('Django administration') }}
+{% if user.is_anonymous %} + {% include "admin/color_theme_toggle.html" %} +{% endif %} +{% endblock %} + +{% block nav-global %}{% endblock %} diff --git a/mysite/dpp/templates/adminlike/change_form.html b/mysite/dpp/templates/adminlike/change_form.html new file mode 100644 index 0000000..86df39f --- /dev/null +++ b/mysite/dpp/templates/adminlike/change_form.html @@ -0,0 +1,82 @@ +{% extends "adminlike/base_site.html" %} +{% load i18n admin_urls static admin_modify %} + +{% block title %}{% if errors %}{% translate "Error:" %} {% endif %}{{ block.super }}{% endblock %} +{% block extrahead %}{{ block.super }} + +{{ media }} +{% endblock %} + +{% block extrastyle %}{{ block.super }}{% endblock %} + +{% block coltype %}colM{% endblock %} + +{% block bodyclass %}{{ block.super }} app-{{ opts.app_label }} model-{{ opts.model_name }} change-form{% endblock %} + +{% if not is_popup %} +{% block breadcrumbs %} + +{% endblock %} +{% endif %} + +{% block content %}
+{% block object-tools %} +{% if change and not is_popup %} + +{% endif %} +{% endblock %} +
{% csrf_token %}{% block form_top %}{% endblock %} +
+{% if is_popup %}{% endif %} +{% if to_field %}{% endif %} +{% if save_on_top %}{% block submit_buttons_top %}{% submit_row %}{% endblock %}{% endif %} +{% if errors %} +

+ {% blocktranslate count counter=errors|length %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktranslate %} +

+ {{ adminform.form.non_field_errors }} +{% endif %} + +{% block field_sets %} +{% for fieldset in adminform %} + {% include "admin/includes/fieldset.html" with heading_level=2 prefix="fieldset" id_prefix=0 id_suffix=forloop.counter0 %} +{% endfor %} +{% endblock %} + +{% block after_field_sets %}{% endblock %} + +{% block inline_field_sets %} +{% for inline_admin_formset in inline_admin_formsets %} + {% include inline_admin_formset.opts.template %} +{% endfor %} +{% endblock %} + +{% block after_related_objects %}{% endblock %} + +{% block submit_buttons_bottom %}{% submit_row %}{% endblock %} + +{% block admin_change_form_document_ready %} + +{% endblock %} + +{# JavaScript for prepopulated fields #} +{% prepopulated_fields_js %} + +
+
+{% endblock %} diff --git a/mysite/dpp/templates/adminlike/change_form_object_tools.html b/mysite/dpp/templates/adminlike/change_form_object_tools.html new file mode 100644 index 0000000..067ae83 --- /dev/null +++ b/mysite/dpp/templates/adminlike/change_form_object_tools.html @@ -0,0 +1,8 @@ +{% load i18n admin_urls %} +{% block object-tools-items %} +
  • + {% url opts|admin_urlname:'history' original.pk|admin_urlquote as history_url %} + {% translate "History" %} +
  • +{% if has_absolute_url %}
  • {% translate "View on site" %}
  • {% endif %} +{% endblock %} diff --git a/mysite/dpp/templates/adminlike/change_list.html b/mysite/dpp/templates/adminlike/change_list.html new file mode 100644 index 0000000..446c278 --- /dev/null +++ b/mysite/dpp/templates/adminlike/change_list.html @@ -0,0 +1,94 @@ +{% extends "adminlike/base_site.html" %} +{% load i18n admin_urls static admin_list %} + +{% block title %}{% if cl.formset and cl.formset.errors %}{% translate "Error:" %} {% endif %}{{ block.super }}{% endblock %} +{% block extrastyle %} + {{ block.super }} + + {% if cl.formset %} + + {% endif %} + {% if cl.formset or action_form %} + + {% endif %} + {{ media.css }} + {% if not actions_on_top and not actions_on_bottom %} + + {% endif %} +{% endblock %} + +{% block extrahead %} +{{ block.super }} +{{ media.js }} + +{% endblock %} + +{% block bodyclass %}{{ block.super }} app-{{ opts.app_label }} model-{{ opts.model_name }} change-list{% endblock %} + +{% if not is_popup %} +{% block breadcrumbs %} + +{% endblock %} +{% endif %} + +{% block coltype %}{% endblock %} + +{% block content %} +
    + {% block object-tools %} + + {% endblock %} + {% if cl.formset and cl.formset.errors %} +

    + {% blocktranslate count counter=cl.formset.total_error_count %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktranslate %} +

    + {{ cl.formset.non_form_errors }} + {% endif %} +
    +
    + {% block search %}{% search_form cl %}{% endblock %} + {% block date_hierarchy %}{% if cl.date_hierarchy %}{% date_hierarchy cl %}{% endif %}{% endblock %} + +
    {% csrf_token %} + {% if cl.formset %} +
    {{ cl.formset.management_form }}
    + {% endif %} + + {% block result_list %} + {% if action_form and actions_on_top and cl.show_admin_actions %}{% admin_actions %}{% endif %} + {% result_list cl %} + {% if action_form and actions_on_bottom and cl.show_admin_actions %}{% admin_actions %}{% endif %} + {% endblock %} + {% block pagination %}{% pagination cl %}{% endblock %} +
    +
    + {% block filters %} + {% if cl.has_filters %} + + {% endif %} + {% endblock %} +
    +
    +{% endblock %} diff --git a/mysite/dpp/templates/adminlike/change_list_object_tools.html b/mysite/dpp/templates/adminlike/change_list_object_tools.html new file mode 100644 index 0000000..11cc6fa --- /dev/null +++ b/mysite/dpp/templates/adminlike/change_list_object_tools.html @@ -0,0 +1,12 @@ +{% load i18n admin_urls %} + +{% block object-tools-items %} + {% if has_add_permission %} +
  • + {% url cl.opts|admin_urlname:'add' as add_url %} + + {% blocktranslate with cl.opts.verbose_name as name %}Add {{ name }}{% endblocktranslate %} + +
  • + {% endif %} +{% endblock %} diff --git a/mysite/dpp/templates/adminlike/change_list_results.html b/mysite/dpp/templates/adminlike/change_list_results.html new file mode 100644 index 0000000..d2a9fee --- /dev/null +++ b/mysite/dpp/templates/adminlike/change_list_results.html @@ -0,0 +1,36 @@ +{% load i18n %} +{% if result_hidden_fields %} +
    {# DIV for HTML validation #} +{% for item in result_hidden_fields %}{{ item }}{% endfor %} +
    +{% endif %} +{% if results %} +
    + + + +{% for header in result_headers %} +{% endfor %} + + + +{% for result in results %} +{% if result.form and result.form.non_field_errors %} + +{% endif %} +{% for item in result %}{{ item }}{% endfor %} +{% endfor %} + +
    + {% if header.sortable and header.sort_priority > 0 %} +
    + + {% if num_sorted_fields > 1 %}{{ header.sort_priority }}{% endif %} + +
    + {% endif %} +
    {% if header.sortable %}{{ header.text|capfirst }}{% else %}{{ header.text|capfirst }}{% endif %}
    +
    +
    {{ result.form.non_field_errors }}
    +
    +{% endif %} diff --git a/mysite/dpp/templates/adminlike/color_theme_toggle.html b/mysite/dpp/templates/adminlike/color_theme_toggle.html new file mode 100644 index 0000000..2caa19e --- /dev/null +++ b/mysite/dpp/templates/adminlike/color_theme_toggle.html @@ -0,0 +1,15 @@ +{% load i18n %} + diff --git a/mysite/dpp/templates/adminlike/date_hierarchy.html b/mysite/dpp/templates/adminlike/date_hierarchy.html new file mode 100644 index 0000000..c508856 --- /dev/null +++ b/mysite/dpp/templates/adminlike/date_hierarchy.html @@ -0,0 +1,14 @@ +{% if show %} + +{% endif %} diff --git a/mysite/dpp/templates/adminlike/delete_confirmation.html b/mysite/dpp/templates/adminlike/delete_confirmation.html new file mode 100644 index 0000000..9592386 --- /dev/null +++ b/mysite/dpp/templates/adminlike/delete_confirmation.html @@ -0,0 +1,50 @@ +{% extends "adminlike/base_site.html" %} +{% load i18n admin_urls static %} + +{% block extrahead %} + {{ block.super }} + {{ media }} + +{% endblock %} + +{% block bodyclass %}{{ block.super }} app-{{ opts.app_label }} model-{{ opts.model_name }} delete-confirmation{% endblock %} + +{% block breadcrumbs %} + +{% endblock %} + +{% block content %} +{% if perms_lacking %} + {% block delete_forbidden %} +

    {% blocktranslate with escaped_object=object %}Deleting the {{ object_name }} '{{ escaped_object }}' would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:{% endblocktranslate %}

    + + {% endblock %} +{% elif protected %} + {% block delete_protected %} +

    {% blocktranslate with escaped_object=object %}Deleting the {{ object_name }} '{{ escaped_object }}' would require deleting the following protected related objects:{% endblocktranslate %}

    + + {% endblock %} +{% else %} + {% block delete_confirm %} +

    {% blocktranslate with escaped_object=object %}Are you sure you want to delete the {{ object_name }} "{{ escaped_object }}"? All of the following related items will be deleted:{% endblocktranslate %}

    + {% include "admin/includes/object_delete_summary.html" %} +

    {% translate "Objects" %}

    + +
    {% csrf_token %} +
    + + {% if is_popup %}{% endif %} + {% if to_field %}{% endif %} + + {% translate "No, take me back" %} +
    +
    + {% endblock %} +{% endif %} +{% endblock content %} diff --git a/mysite/dpp/templates/adminlike/delete_selected_confirmation.html b/mysite/dpp/templates/adminlike/delete_selected_confirmation.html new file mode 100644 index 0000000..ec21729 --- /dev/null +++ b/mysite/dpp/templates/adminlike/delete_selected_confirmation.html @@ -0,0 +1,47 @@ +{% extends "adminlike/base_site.html" %} +{% load i18n l10n admin_urls static %} + +{% block extrahead %} + {{ block.super }} + {{ media }} + +{% endblock %} + +{% block bodyclass %}{{ block.super }} app-{{ opts.app_label }} model-{{ opts.model_name }} delete-confirmation delete-selected-confirmation{% endblock %} + +{% block breadcrumbs %} + +{% endblock %} + +{% block content %} +{% if perms_lacking %} +

    {% blocktranslate %}Deleting the selected {{ objects_name }} would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:{% endblocktranslate %}

    + +{% elif protected %} +

    {% blocktranslate %}Deleting the selected {{ objects_name }} would require deleting the following protected related objects:{% endblocktranslate %}

    + +{% else %} +

    {% blocktranslate %}Are you sure you want to delete the selected {{ objects_name }}? All of the following objects and their related items will be deleted:{% endblocktranslate %}

    + {% include "admin/includes/object_delete_summary.html" %} +

    {% translate "Objects" %}

    + {% for deletable_object in deletable_objects %} + + {% endfor %} +
    {% csrf_token %} +
    + {% for obj in queryset %} + + {% endfor %} + + + + {% translate "No, take me back" %} +
    +
    +{% endif %} +{% endblock %} diff --git a/mysite/dpp/templates/adminlike/edit_inline/stacked.html b/mysite/dpp/templates/adminlike/edit_inline/stacked.html new file mode 100644 index 0000000..a6939f4 --- /dev/null +++ b/mysite/dpp/templates/adminlike/edit_inline/stacked.html @@ -0,0 +1,38 @@ +{% load i18n admin_urls %} +
    +
    + {% if inline_admin_formset.is_collapsible %}
    {% endif %} +

    + {% if inline_admin_formset.formset.max_num == 1 %} + {{ inline_admin_formset.opts.verbose_name|capfirst }} + {% else %} + {{ inline_admin_formset.opts.verbose_name_plural|capfirst }} + {% endif %} +

    + {% if inline_admin_formset.is_collapsible %}
    {% endif %} +{{ inline_admin_formset.formset.management_form }} +{{ inline_admin_formset.formset.non_form_errors }} + +{% for inline_admin_form in inline_admin_formset %}
    +

    {{ inline_admin_formset.opts.verbose_name|capfirst }}: {% if inline_admin_form.original %}{{ inline_admin_form.original }}{% if inline_admin_form.model_admin.show_change_link and inline_admin_form.model_admin.has_registered_model %} {% if inline_admin_formset.has_change_permission %}{% translate "Change" %}{% else %}{% translate "View" %}{% endif %}{% endif %} +{% else %}#{{ forloop.counter }}{% endif %} + {% if inline_admin_form.show_url %}{% translate "View on site" %}{% endif %} + {% if inline_admin_formset.formset.can_delete and inline_admin_formset.has_delete_permission and inline_admin_form.original %}{{ inline_admin_form.deletion_field.field }} {{ inline_admin_form.deletion_field.label_tag }}{% endif %} +

    + {% if inline_admin_form.form.non_field_errors %}{{ inline_admin_form.form.non_field_errors }}{% endif %} + + {% with parent_counter=forloop.counter0 %} + {% for fieldset in inline_admin_form %} + {% include "admin/includes/fieldset.html" with heading_level=4 prefix=fieldset.formset.prefix id_prefix=parent_counter id_suffix=forloop.counter0 %} + {% endfor %} + {% endwith %} + + {% if inline_admin_form.needs_explicit_pk_field %}{{ inline_admin_form.pk_field.field }}{% endif %} + {% if inline_admin_form.fk_field %}{{ inline_admin_form.fk_field.field }}{% endif %} +
    {% endfor %} + {% if inline_admin_formset.is_collapsible %}
    {% endif %} +
    +
    diff --git a/mysite/dpp/templates/adminlike/edit_inline/tabular.html b/mysite/dpp/templates/adminlike/edit_inline/tabular.html new file mode 100644 index 0000000..9367ac9 --- /dev/null +++ b/mysite/dpp/templates/adminlike/edit_inline/tabular.html @@ -0,0 +1,69 @@ +{% load i18n admin_urls static admin_modify %} +
    + +
    diff --git a/mysite/dpp/templates/adminlike/filter.html b/mysite/dpp/templates/adminlike/filter.html new file mode 100644 index 0000000..a6094ec --- /dev/null +++ b/mysite/dpp/templates/adminlike/filter.html @@ -0,0 +1,12 @@ +{% load i18n %} +
    + + {% blocktranslate with filter_title=title %} By {{ filter_title }} {% endblocktranslate %} + + +
    diff --git a/mysite/dpp/templates/adminlike/includes/fieldset.html b/mysite/dpp/templates/adminlike/includes/fieldset.html new file mode 100644 index 0000000..9c9b319 --- /dev/null +++ b/mysite/dpp/templates/adminlike/includes/fieldset.html @@ -0,0 +1,39 @@ +
    + {% if fieldset.name %} + {% if fieldset.is_collapsible %}
    {% endif %} + {{ fieldset.name }} + {% if fieldset.is_collapsible %}{% endif %} + {% endif %} + {% if fieldset.description %} +
    {{ fieldset.description|safe }}
    + {% endif %} + {% for line in fieldset %} +
    + {% if line.fields|length == 1 %}{{ line.errors }}{% else %}
    {% endif %} + {% for field in line %} +
    + {% if not line.fields|length == 1 and not field.is_readonly %}{{ field.errors }}{% endif %} +
    + {% if field.is_checkbox %} + {{ field.field }}{{ field.label_tag }} + {% else %} + {{ field.label_tag }} + {% if field.is_readonly %} +
    {{ field.contents }}
    + {% else %} + {{ field.field }} + {% endif %} + {% endif %} +
    + {% if field.field.help_text %} +
    +
    {{ field.field.help_text|safe }}
    +
    + {% endif %} +
    + {% endfor %} + {% if not line.fields|length == 1 %}
    {% endif %} +
    + {% endfor %} + {% if fieldset.name and fieldset.is_collapsible %}
    {% endif %} +
    diff --git a/mysite/dpp/templates/adminlike/includes/object_delete_summary.html b/mysite/dpp/templates/adminlike/includes/object_delete_summary.html new file mode 100644 index 0000000..9ad97db --- /dev/null +++ b/mysite/dpp/templates/adminlike/includes/object_delete_summary.html @@ -0,0 +1,7 @@ +{% load i18n %} +

    {% translate "Summary" %}

    + diff --git a/mysite/dpp/templates/adminlike/index.html b/mysite/dpp/templates/adminlike/index.html new file mode 100644 index 0000000..99d3836 --- /dev/null +++ b/mysite/dpp/templates/adminlike/index.html @@ -0,0 +1,51 @@ +{% extends "adminlike/base_site.html" %} +{% load i18n static %} + +{% block extrastyle %}{{ block.super }}{% endblock %} + +{% block coltype %}colMS{% endblock %} + +{% block bodyclass %}{{ block.super }} dashboard{% endblock %} + +{% block nav-breadcrumbs %}{% endblock %} + +{% block nav-sidebar %}{% endblock %} + +{% block content %} +
    + {% include "admin/app_list.html" with app_list=app_list show_changelinks=True %} +
    +{% endblock %} + +{% block sidebar %} + +{% endblock %} diff --git a/mysite/dpp/templates/adminlike/invalid_setup.html b/mysite/dpp/templates/adminlike/invalid_setup.html new file mode 100644 index 0000000..d8bb153 --- /dev/null +++ b/mysite/dpp/templates/adminlike/invalid_setup.html @@ -0,0 +1,13 @@ +{% extends "adminlike/base_site.html" %} +{% load i18n %} + +{% block breadcrumbs %} + +{% endblock %} + +{% block content %} +

    {% translate 'Something’s wrong with your database installation. Make sure the appropriate database tables have been created, and make sure the database is readable by the appropriate user.' %}

    +{% endblock %} diff --git a/mysite/dpp/templates/adminlike/login.html b/mysite/dpp/templates/adminlike/login.html new file mode 100644 index 0000000..e01e2de --- /dev/null +++ b/mysite/dpp/templates/adminlike/login.html @@ -0,0 +1,69 @@ +{% extends "adminlike/base_site.html" %} +{% load i18n static %} + +{% block title %}{% if form.errors %}{% translate "Error:" %} {% endif %}{{ block.super }}{% endblock %} +{% block extrastyle %}{{ block.super }} +{{ form.media }} +{% endblock %} + +{% block bodyclass %}{{ block.super }} login{% endblock %} + +{% block usertools %}{% endblock %} + +{% block nav-global %}{% endblock %} + +{% block nav-sidebar %}{% endblock %} + +{% block content_title %}{% endblock %} + +{% block nav-breadcrumbs %}{% endblock %} + +{% block content %} +{% if form.errors and not form.non_field_errors %} +

    +{% blocktranslate count counter=form.errors.items|length %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktranslate %} +

    +{% endif %} + +{% if form.non_field_errors %} +{% for error in form.non_field_errors %} +

    + {{ error }} +

    +{% endfor %} +{% endif %} + +
    + +{% if user.is_authenticated %} +

    +{% blocktranslate trimmed %} + You are authenticated as {{ username }}, but are not authorized to + access this page. Would you like to login to a different account? +{% endblocktranslate %} +

    +{% endif %} + +
    {% csrf_token %} +
    + {{ form.username.errors }} + {{ form.username.label_tag }} {{ form.username }} +
    +
    + {{ form.password.errors }} + {{ form.password.label_tag }} {{ form.password }} + +
    + {% url 'admin_password_reset' as password_reset_url %} + {% if password_reset_url %} + + {% endif %} +
    + +
    +
    + +
    +{% endblock %} diff --git a/mysite/dpp/templates/adminlike/nav_sidebar.html b/mysite/dpp/templates/adminlike/nav_sidebar.html new file mode 100644 index 0000000..a413e23 --- /dev/null +++ b/mysite/dpp/templates/adminlike/nav_sidebar.html @@ -0,0 +1,8 @@ +{% load i18n %} + + diff --git a/mysite/dpp/templates/adminlike/object_history.html b/mysite/dpp/templates/adminlike/object_history.html new file mode 100644 index 0000000..4bb22d1 --- /dev/null +++ b/mysite/dpp/templates/adminlike/object_history.html @@ -0,0 +1,56 @@ +{% extends "adminlike/base_site.html" %} +{% load i18n admin_urls %} + +{% block breadcrumbs %} + +{% endblock %} + +{% block content %} +
    +
    + +{% if action_list %} + + + + + + + + + + {% for action in action_list %} + + + + + + {% endfor %} + +
    {% translate 'Date/time' %}{% translate 'User' %}{% translate 'Action' %}
    {{ action.action_time|date:"DATETIME_FORMAT" }}{{ action.user.get_username }}{% if action.user.get_full_name %} ({{ action.user.get_full_name }}){% endif %}{{ action.get_change_message }}
    +

    + {% if pagination_required %} + {% for i in page_range %} + {% if i == action_list.paginator.ELLIPSIS %} + {{ action_list.paginator.ELLIPSIS }} + {% elif i == action_list.number %} + {{ i }} + {% else %} + {{ i }} + {% endif %} + {% endfor %} + {% endif %} + {{ action_list.paginator.count }} {% blocktranslate count counter=action_list.paginator.count %}entry{% plural %}entries{% endblocktranslate %} +

    +{% else %} +

    {% translate 'This object doesn’t have a change history. It probably wasn’t added via this admin site.' %}

    +{% endif %} +
    +
    +{% endblock %} diff --git a/mysite/dpp/templates/adminlike/pagination.html b/mysite/dpp/templates/adminlike/pagination.html new file mode 100644 index 0000000..bc3117b --- /dev/null +++ b/mysite/dpp/templates/adminlike/pagination.html @@ -0,0 +1,12 @@ +{% load admin_list %} +{% load i18n %} +

    +{% if pagination_required %} +{% for i in page_range %} + {% paginator_number cl i %} +{% endfor %} +{% endif %} +{{ cl.result_count }} {% if cl.result_count == 1 %}{{ cl.opts.verbose_name }}{% else %}{{ cl.opts.verbose_name_plural }}{% endif %} +{% if show_all_url %}{% translate 'Show all' %}{% endif %} +{% if cl.formset and cl.result_count %}{% endif %} +

    diff --git a/mysite/dpp/templates/adminlike/popup_response.html b/mysite/dpp/templates/adminlike/popup_response.html new file mode 100644 index 0000000..57a1ae3 --- /dev/null +++ b/mysite/dpp/templates/adminlike/popup_response.html @@ -0,0 +1,10 @@ +{% load i18n static %} + + {% translate 'Popup closing…' %} + + + + diff --git a/mysite/dpp/templates/adminlike/prepopulated_fields_js.html b/mysite/dpp/templates/adminlike/prepopulated_fields_js.html new file mode 100644 index 0000000..dd6e561 --- /dev/null +++ b/mysite/dpp/templates/adminlike/prepopulated_fields_js.html @@ -0,0 +1,5 @@ +{% load static %} + diff --git a/mysite/dpp/templates/adminlike/search_form.html b/mysite/dpp/templates/adminlike/search_form.html new file mode 100644 index 0000000..447b803 --- /dev/null +++ b/mysite/dpp/templates/adminlike/search_form.html @@ -0,0 +1,20 @@ +{% load i18n static %} +{% if cl.search_fields %} +
    +{% endif %} diff --git a/mysite/dpp/templates/adminlike/submit_line.html b/mysite/dpp/templates/adminlike/submit_line.html new file mode 100644 index 0000000..b2b2054 --- /dev/null +++ b/mysite/dpp/templates/adminlike/submit_line.html @@ -0,0 +1,17 @@ +{% load i18n admin_urls %} +
    +{% block submit-row %} +{% if show_save %}{% endif %} +{% if show_save_as_new %}{% endif %} +{% if show_save_and_add_another %}{% endif %} +{% if show_save_and_continue %}{% endif %} +{% if show_close %} + {% url opts|admin_urlname:'changelist' as changelist_url %} + {% translate 'Close' %} +{% endif %} +{% if show_delete_link and original %} + {% url opts|admin_urlname:'delete' original.pk|admin_urlquote as delete_url %} + {% translate "Delete" %} +{% endif %} +{% endblock %} +
    diff --git a/mysite/dpp/templates/adminlike/widgets/clearable_file_input.html b/mysite/dpp/templates/adminlike/widgets/clearable_file_input.html new file mode 100644 index 0000000..8b42f19 --- /dev/null +++ b/mysite/dpp/templates/adminlike/widgets/clearable_file_input.html @@ -0,0 +1,6 @@ +{% if widget.is_initial %}

    {{ widget.initial_text }}: {{ widget.value }}{% if not widget.required %} + + +{% endif %}
    +{{ widget.input_text }}:{% endif %} +{% if widget.is_initial %}

    {% endif %} diff --git a/mysite/dpp/templates/adminlike/widgets/date.html b/mysite/dpp/templates/adminlike/widgets/date.html new file mode 100644 index 0000000..acd5d5f --- /dev/null +++ b/mysite/dpp/templates/adminlike/widgets/date.html @@ -0,0 +1,3 @@ +

    + {% include "django/forms/widgets/date.html" %} +

    diff --git a/mysite/dpp/templates/adminlike/widgets/foreign_key_raw_id.html b/mysite/dpp/templates/adminlike/widgets/foreign_key_raw_id.html new file mode 100644 index 0000000..a6eba93 --- /dev/null +++ b/mysite/dpp/templates/adminlike/widgets/foreign_key_raw_id.html @@ -0,0 +1,2 @@ +{% if related_url %}
    {% endif %}{% include 'django/forms/widgets/input.html' %}{% if related_url %}{% endif %}{% if link_label %} +{% if link_url %}{{ link_label }}{% else %}{{ link_label }}{% endif %}{% endif %}{% if related_url %}
    {% endif %} diff --git a/mysite/dpp/templates/adminlike/widgets/many_to_many_raw_id.html b/mysite/dpp/templates/adminlike/widgets/many_to_many_raw_id.html new file mode 100644 index 0000000..0dd0331 --- /dev/null +++ b/mysite/dpp/templates/adminlike/widgets/many_to_many_raw_id.html @@ -0,0 +1 @@ +{% include 'admin/widgets/foreign_key_raw_id.html' %} diff --git a/mysite/dpp/templates/adminlike/widgets/radio.html b/mysite/dpp/templates/adminlike/widgets/radio.html new file mode 100644 index 0000000..780899a --- /dev/null +++ b/mysite/dpp/templates/adminlike/widgets/radio.html @@ -0,0 +1 @@ +{% include "django/forms/widgets/multiple_input.html" %} diff --git a/mysite/dpp/templates/adminlike/widgets/related_widget_wrapper.html b/mysite/dpp/templates/adminlike/widgets/related_widget_wrapper.html new file mode 100644 index 0000000..9251527 --- /dev/null +++ b/mysite/dpp/templates/adminlike/widgets/related_widget_wrapper.html @@ -0,0 +1,41 @@ +{% load i18n static %} + diff --git a/mysite/dpp/templates/adminlike/widgets/split_datetime.html b/mysite/dpp/templates/adminlike/widgets/split_datetime.html new file mode 100644 index 0000000..7fc7bf6 --- /dev/null +++ b/mysite/dpp/templates/adminlike/widgets/split_datetime.html @@ -0,0 +1,4 @@ +

    + {{ date_label }} {% with widget=widget.subwidgets.0 %}{% include widget.template_name %}{% endwith %}
    + {{ time_label }} {% with widget=widget.subwidgets.1 %}{% include widget.template_name %}{% endwith %} +

    diff --git a/mysite/dpp/templates/adminlike/widgets/time.html b/mysite/dpp/templates/adminlike/widgets/time.html new file mode 100644 index 0000000..e4eaca6 --- /dev/null +++ b/mysite/dpp/templates/adminlike/widgets/time.html @@ -0,0 +1,3 @@ +

    + {% include "django/forms/widgets/time.html" %} +

    diff --git a/mysite/dpp/templates/adminlike/widgets/url.html b/mysite/dpp/templates/adminlike/widgets/url.html new file mode 100644 index 0000000..69dc401 --- /dev/null +++ b/mysite/dpp/templates/adminlike/widgets/url.html @@ -0,0 +1 @@ +{% if url_valid %}

    {{ current_label }} {{ widget.value }}
    {{ change_label }} {% endif %}{% include "django/forms/widgets/input.html" %}{% if url_valid %}

    {% endif %} diff --git a/mysite/dpp/templates/dpp/index.html b/mysite/dpp/templates/dpp/index.html new file mode 100644 index 0000000..9d8b9c0 --- /dev/null +++ b/mysite/dpp/templates/dpp/index.html @@ -0,0 +1,19 @@ + + + + + Welcome to the Lasers4MaaS project. + + + {% if latest_lines %} +

    Recently modified production lines:

    + + {% else %} +

    No production lines created yet.

    + {% endif %} + + \ No newline at end of file From 8600a7fbb20f55d74186880670b6e60d448c7d98 Mon Sep 17 00:00:00 2001 From: Sander van Nielen Date: Wed, 19 Nov 2025 18:24:33 +0100 Subject: [PATCH 02/55] Correct a typo in many files --- mysite/api/serializers.py | 6 +++--- mysite/api/serializers.txt | 6 +++--- mysite/api/urls.py | 2 +- mysite/api/urls.txt | 2 +- mysite/api/views.py | 10 +++++----- mysite/api/views.txt | 10 +++++----- mysite/dpp/admin.py | 2 +- mysite/dpp/models.py | 6 +++--- 8 files changed, 22 insertions(+), 22 deletions(-) diff --git a/mysite/api/serializers.py b/mysite/api/serializers.py index 3f960cd..c2fd915 100644 --- a/mysite/api/serializers.py +++ b/mysite/api/serializers.py @@ -1,5 +1,5 @@ from rest_framework import serializers -from dpp.models import Institution, Company, Importer, ServiceOperator, Metadata, Instruction, Document, Material, HazardousMaterial, CriticalRawMaterial, ProductType, Packaging, SecondaryProduct, Emission, Composition, Product, ProductionLine, Process, SharedProcess, ProductExchange, EnvExchange, BillOfMaterials, PackagingInfo, ServiceEvent, ServiceRecord, ReplacedComponents, EndOfLife, ImpactCategory, SustainablityEvaluation, SustainabilityScore, CircularityEvaluation, OldCircularityIndicator, CircularityIndicator, CircularityScore, CircularityEnabler, CircularityTracker +from dpp.models import Institution, Company, Importer, ServiceOperator, Metadata, Instruction, Document, Material, HazardousMaterial, CriticalRawMaterial, ProductType, Packaging, SecondaryProduct, Emission, Composition, Product, ProductionLine, Process, SharedProcess, ProductExchange, EnvExchange, BillOfMaterials, PackagingInfo, ServiceEvent, ServiceRecord, ReplacedComponents, EndOfLife, ImpactCategory, SustainabilityEvaluation, SustainabilityScore, CircularityEvaluation, OldCircularityIndicator, CircularityIndicator, CircularityScore, CircularityEnabler, CircularityTracker class InstitutionSerializer(serializers.ModelSerializer): @@ -137,9 +137,9 @@ class Meta: model = ImpactCategory fields = ['name', 'description', 'unit', 'is_environmental'] -class SustainablityEvaluationSerializer(serializers.ModelSerializer): +class SustainabilityEvaluationSerializer(serializers.ModelSerializer): class Meta: - model = SustainablityEvaluation + model = SustainabilityEvaluation fields = ['product_line', 'functional_amount', 'system_boundaries', 'geographical_scope', 'temporal_scope', 'impact_assessment_method', 'software_used', 'allocation_method', 'assessment_date', 'assessed_by'] class SustainabilityScoreSerializer(serializers.ModelSerializer): diff --git a/mysite/api/serializers.txt b/mysite/api/serializers.txt index 8749270..2a89119 100644 --- a/mysite/api/serializers.txt +++ b/mysite/api/serializers.txt @@ -1,5 +1,5 @@ from rest_framework import serializers -from .models import Organization, Institution, Company, Importer, ServiceOperator, Metadata, Instruction, Document, Material, HazardousMaterial, CriticalRawMaterial, ProductType, Packaging, SecondaryProduct, Emission, Composition, Product, ProductionLine, Process, SharedProcess, Exchange, ProductExchange, EnvExchange, BillOfMaterials, PackagingInfo, ServiceEvent, ServiceRecord, ReplacedComponents, Modification, CorrectiveMaintenance, EndOfLife, ImpactCategory, SustainablityEvaluation, SustainabilityScore, CircularityEvaluation, OldCircularityIndicator, CircularityIndicator, CircularityScore, CircularityEnabler, CircularityTracker +from .models import Organization, Institution, Company, Importer, ServiceOperator, Metadata, Instruction, Document, Material, HazardousMaterial, CriticalRawMaterial, ProductType, Packaging, SecondaryProduct, Emission, Composition, Product, ProductionLine, Process, SharedProcess, Exchange, ProductExchange, EnvExchange, BillOfMaterials, PackagingInfo, ServiceEvent, ServiceRecord, ReplacedComponents, Modification, CorrectiveMaintenance, EndOfLife, ImpactCategory, SustainabilityEvaluation, SustainabilityScore, CircularityEvaluation, OldCircularityIndicator, CircularityIndicator, CircularityScore, CircularityEnabler, CircularityTracker class OrganizationSerializer(serializers.ModelSerializer): class Meta: @@ -161,9 +161,9 @@ class ImpactCategorySerializer(serializers.ModelSerializer): model = ImpactCategory fields = ['name', 'description', 'unit', 'is_environmental'] -class SustainablityEvaluationSerializer(serializers.ModelSerializer): +class SustainabilityEvaluationSerializer(serializers.ModelSerializer): class Meta: - model = SustainablityEvaluation + model = SustainabilityEvaluation fields = ['product_line', 'functional_amount', 'system_boundaries', 'geographical_scope', 'temporal_scope', 'impact_assessment_method', 'software_used', 'allocation_method', 'assessment_date', 'assessed_by'] class SustainabilityScoreSerializer(serializers.ModelSerializer): diff --git a/mysite/api/urls.py b/mysite/api/urls.py index d98fe51..7a0ac77 100644 --- a/mysite/api/urls.py +++ b/mysite/api/urls.py @@ -31,7 +31,7 @@ router.register(r'replacedcomponents', views.ReplacedComponentsViewSet, basename='ReplacedComponents') router.register(r'endoflife', views.EndOfLifeViewSet, basename='EndOfLife') router.register(r'impactcategory', views.ImpactCategoryViewSet, basename='ImpactCategory') -router.register(r'sustainablityevaluation', views.SustainablityEvaluationViewSet, basename='SustainablityEvaluation') +router.register(r'sustainabilityevaluation', views.SustainabilityEvaluationViewSet, basename='SustainabilityEvaluation') router.register(r'sustainabilityscore', views.SustainabilityScoreViewSet, basename='SustainabilityScore') router.register(r'circularityevaluation', views.CircularityEvaluationViewSet, basename='CircularityEvaluation') router.register(r'circularityindicator', views.CircularityIndicatorViewSet, basename='CircularityIndicator') diff --git a/mysite/api/urls.txt b/mysite/api/urls.txt index d2a2f32..2a56fa2 100644 --- a/mysite/api/urls.txt +++ b/mysite/api/urls.txt @@ -30,7 +30,7 @@ router.register(r'modification', views.ModificationViewSet, basename='Modificati router.register(r'correctivemaintenance', views.CorrectiveMaintenanceViewSet, basename='CorrectiveMaintenance') router.register(r'endoflife', views.EndOfLifeViewSet, basename='EndOfLife') router.register(r'impactcategory', views.ImpactCategoryViewSet, basename='ImpactCategory') -router.register(r'sustainablityevaluation', views.SustainablityEvaluationViewSet, basename='SustainablityEvaluation') +router.register(r'sustainabilityevaluation', views.SustainabilityEvaluationViewSet, basename='SustainabilityEvaluation') router.register(r'sustainabilityscore', views.SustainabilityScoreViewSet, basename='SustainabilityScore') router.register(r'circularityevaluation', views.CircularityEvaluationViewSet, basename='CircularityEvaluation') router.register(r'oldcircularityindicator', views.OldCircularityIndicatorViewSet, basename='OldCircularityIndicator') diff --git a/mysite/api/views.py b/mysite/api/views.py index 52b2872..84b1750 100644 --- a/mysite/api/views.py +++ b/mysite/api/views.py @@ -41,8 +41,8 @@ def get(self, request, *args, **kwargs): return Response(serializer.data, status=status.HTTP_200_OK) from rest_framework.viewsets import ModelViewSet -from dpp.models import Institution, Company, Importer, ServiceOperator, Metadata, Document, Material, HazardousMaterial, CriticalRawMaterial, ProductType, Packaging, SecondaryProduct, Emission, Composition, Product, ProductionLine, Process, SharedProcess, Exchange, ProductExchange, EnvExchange, BillOfMaterials, PackagingInfo, ServiceEvent, ServiceRecord, ReplacedComponents, EndOfLife, ImpactCategory, SustainablityEvaluation, SustainabilityScore, CircularityEvaluation, OldCircularityIndicator, CircularityIndicator, CircularityScore, CircularityEnabler, CircularityTracker -from .serializers import InstitutionSerializer, CompanySerializer, ImporterSerializer, ServiceOperatorSerializer, MetadataSerializer, DocumentSerializer, MaterialSerializer, HazardousMaterialSerializer, CriticalRawMaterialSerializer, ProductTypeSerializer, PackagingSerializer, SecondaryProductSerializer, EmissionSerializer, CompositionSerializer, ProductSerializer, ProductionLineSerializer, ProcessSerializer, SharedProcessSerializer, ProductExchangeSerializer, EnvExchangeSerializer, BillOfMaterialsSerializer, PackagingInfoSerializer, ServiceEventSerializer, ServiceRecordSerializer, ReplacedComponentsSerializer, EndOfLifeSerializer, ImpactCategorySerializer, SustainablityEvaluationSerializer, SustainabilityScoreSerializer, CircularityEvaluationSerializer, OldCircularityIndicatorSerializer, CircularityIndicatorSerializer, CircularityScoreSerializer, CircularityEnablerSerializer +from dpp.models import Institution, Company, Importer, ServiceOperator, Metadata, Document, Material, HazardousMaterial, CriticalRawMaterial, ProductType, Packaging, SecondaryProduct, Emission, Composition, Product, ProductionLine, Process, SharedProcess, Exchange, ProductExchange, EnvExchange, BillOfMaterials, PackagingInfo, ServiceEvent, ServiceRecord, ReplacedComponents, EndOfLife, ImpactCategory, SustainabilityEvaluation, SustainabilityScore, CircularityEvaluation, OldCircularityIndicator, CircularityIndicator, CircularityScore, CircularityEnabler, CircularityTracker +from .serializers import InstitutionSerializer, CompanySerializer, ImporterSerializer, ServiceOperatorSerializer, MetadataSerializer, DocumentSerializer, MaterialSerializer, HazardousMaterialSerializer, CriticalRawMaterialSerializer, ProductTypeSerializer, PackagingSerializer, SecondaryProductSerializer, EmissionSerializer, CompositionSerializer, ProductSerializer, ProductionLineSerializer, ProcessSerializer, SharedProcessSerializer, ProductExchangeSerializer, EnvExchangeSerializer, BillOfMaterialsSerializer, PackagingInfoSerializer, ServiceEventSerializer, ServiceRecordSerializer, ReplacedComponentsSerializer, EndOfLifeSerializer, ImpactCategorySerializer, SustainabilityEvaluationSerializer, SustainabilityScoreSerializer, CircularityEvaluationSerializer, OldCircularityIndicatorSerializer, CircularityIndicatorSerializer, CircularityScoreSerializer, CircularityEnablerSerializer class InstitutionViewSet(ModelViewSet): @@ -153,9 +153,9 @@ class ImpactCategoryViewSet(ModelViewSet): queryset = ImpactCategory.objects.all() serializer_class = ImpactCategorySerializer -class SustainablityEvaluationViewSet(ModelViewSet): - queryset = SustainablityEvaluation.objects.all() - serializer_class = SustainablityEvaluationSerializer +class SustainabilityEvaluationViewSet(ModelViewSet): + queryset = SustainabilityEvaluation.objects.all() + serializer_class = SustainabilityEvaluationSerializer class SustainabilityScoreViewSet(ModelViewSet): queryset = SustainabilityScore.objects.all() diff --git a/mysite/api/views.txt b/mysite/api/views.txt index 7dfed30..ac03a63 100644 --- a/mysite/api/views.txt +++ b/mysite/api/views.txt @@ -1,6 +1,6 @@ from rest_framework.viewsets import ModelViewSet -from .models import Organization, Institution, Company, Importer, ServiceOperator, Metadata, Instruction, Document, Material, HazardousMaterial, CriticalRawMaterial, ProductType, Packaging, SecondaryProduct, Emission, Composition, Product, ProductionLine, Process, SharedProcess, Exchange, ProductExchange, EnvExchange, BillOfMaterials, PackagingInfo, ServiceEvent, ServiceRecord, ReplacedComponents, Modification, CorrectiveMaintenance, EndOfLife, ImpactCategory, SustainablityEvaluation, SustainabilityScore, CircularityEvaluation, OldCircularityIndicator, CircularityIndicator, CircularityScore, CircularityEnabler, CircularityTracker -from .serializers import OrganizationSerializer, InstitutionSerializer, CompanySerializer, ImporterSerializer, ServiceOperatorSerializer, MetadataSerializer, InstructionSerializer, DocumentSerializer, MaterialSerializer, HazardousMaterialSerializer, CriticalRawMaterialSerializer, ProductTypeSerializer, PackagingSerializer, SecondaryProductSerializer, EmissionSerializer, CompositionSerializer, ProductSerializer, ProductionLineSerializer, ProcessSerializer, SharedProcessSerializer, ExchangeSerializer, ProductExchangeSerializer, EnvExchangeSerializer, BillOfMaterialsSerializer, PackagingInfoSerializer, ServiceEventSerializer, ServiceRecordSerializer, ReplacedComponentsSerializer, ModificationSerializer, CorrectiveMaintenanceSerializer, EndOfLifeSerializer, ImpactCategorySerializer, SustainablityEvaluationSerializer, SustainabilityScoreSerializer, CircularityEvaluationSerializer, OldCircularityIndicatorSerializer, CircularityIndicatorSerializer, CircularityScoreSerializer, CircularityEnablerSerializer, CircularityTracker +from .models import Organization, Institution, Company, Importer, ServiceOperator, Metadata, Instruction, Document, Material, HazardousMaterial, CriticalRawMaterial, ProductType, Packaging, SecondaryProduct, Emission, Composition, Product, ProductionLine, Process, SharedProcess, Exchange, ProductExchange, EnvExchange, BillOfMaterials, PackagingInfo, ServiceEvent, ServiceRecord, ReplacedComponents, Modification, CorrectiveMaintenance, EndOfLife, ImpactCategory, SustainabilityEvaluation, SustainabilityScore, CircularityEvaluation, OldCircularityIndicator, CircularityIndicator, CircularityScore, CircularityEnabler, CircularityTracker +from .serializers import OrganizationSerializer, InstitutionSerializer, CompanySerializer, ImporterSerializer, ServiceOperatorSerializer, MetadataSerializer, InstructionSerializer, DocumentSerializer, MaterialSerializer, HazardousMaterialSerializer, CriticalRawMaterialSerializer, ProductTypeSerializer, PackagingSerializer, SecondaryProductSerializer, EmissionSerializer, CompositionSerializer, ProductSerializer, ProductionLineSerializer, ProcessSerializer, SharedProcessSerializer, ExchangeSerializer, ProductExchangeSerializer, EnvExchangeSerializer, BillOfMaterialsSerializer, PackagingInfoSerializer, ServiceEventSerializer, ServiceRecordSerializer, ReplacedComponentsSerializer, ModificationSerializer, CorrectiveMaintenanceSerializer, EndOfLifeSerializer, ImpactCategorySerializer, SustainabilityEvaluationSerializer, SustainabilityScoreSerializer, CircularityEvaluationSerializer, OldCircularityIndicatorSerializer, CircularityIndicatorSerializer, CircularityScoreSerializer, CircularityEnablerSerializer, CircularityTracker class OrganizationViewSet(ModelViewSet): queryset = Organization.objects.all() @@ -130,9 +130,9 @@ class ImpactCategoryViewSet(ModelViewSet): queryset = ImpactCategory.objects.all() serializer_class = ImpactCategorySerializer -class SustainablityEvaluationViewSet(ModelViewSet): - queryset = SustainablityEvaluation.objects.all() - serializer_class = SustainablityEvaluationSerializer +class SustainabilityEvaluationViewSet(ModelViewSet): + queryset = SustainabilityEvaluation.objects.all() + serializer_class = SustainabilityEvaluationSerializer class SustainabilityScoreViewSet(ModelViewSet): queryset = SustainabilityScore.objects.all() diff --git a/mysite/dpp/admin.py b/mysite/dpp/admin.py index 3b597e0..339230b 100644 --- a/mysite/dpp/admin.py +++ b/mysite/dpp/admin.py @@ -1,5 +1,5 @@ from django.contrib import admin -from .models import Institution, Company, Importer, ServiceOperator, Metadata, Instruction, Document, Material, HazardousMaterial, CriticalRawMaterial, ProductType, Packaging, SecondaryProduct, Emission, Composition, Product, ProductionLine, Process, SharedProcess, ProductExchange, EnvExchange, BillOfMaterials, PackagingInfo, ServiceEvent, ServiceRecord, ReplacedComponents, EndOfLife, ImpactCategory, SustainablityEvaluation, SustainabilityScore, CircularityEvaluation, OldCircularityIndicator, CircularityIndicator, CircularityScore, CircularityEnabler, CircularityTracker +from .models import Institution, Company, Importer, ServiceOperator, Metadata, Instruction, Document, Material, HazardousMaterial, CriticalRawMaterial, ProductType, Packaging, SecondaryProduct, Emission, Composition, Product, ProductionLine, Process, SharedProcess, ProductExchange, EnvExchange, BillOfMaterials, PackagingInfo, ServiceEvent, ServiceRecord, ReplacedComponents, EndOfLife, ImpactCategory, SustainabilityEvaluation, SustainabilityScore, CircularityEvaluation, OldCircularityIndicator, CircularityIndicator, CircularityScore, CircularityEnabler, CircularityTracker # Models that can be modified by admin: admin.site.register(Company) diff --git a/mysite/dpp/models.py b/mysite/dpp/models.py index a7ff666..9eeb7e6 100644 --- a/mysite/dpp/models.py +++ b/mysite/dpp/models.py @@ -486,7 +486,7 @@ class ImpactCategory(models.Model): def __str__(self): return self.name -class SustainablityEvaluation(models.Model): # including metadata +class SustainabilityEvaluation(models.Model): # including metadata """ A sustainability evaluation is defined by a scope definition, a functional unit (the final product of a production line), and its amount. @@ -524,11 +524,11 @@ def __str__(self): class SustainabilityScore(models.Model): """ - The indicator results for one impact category in a SustainablityEvaluation, + The indicator results for one impact category in a SustainabilityEvaluation, plus contribution analysis data. """ impact_category = models.ForeignKey(ImpactCategory, on_delete=models.CASCADE) - evaluation = models.ForeignKey(SustainablityEvaluation, on_delete=models.CASCADE) + evaluation = models.ForeignKey(SustainabilityEvaluation, on_delete=models.CASCADE) impact_value = models.FloatField() # cradle-to-gate total (unit = impact_category.unit) upstream_phase = models.FloatField(default=0, validators=FRACTION_VALIDATOR) manufacturing_phase = models.FloatField(default=0, validators=FRACTION_VALIDATOR) From 1f355908960775a3036a6504864a7266871fe102 Mon Sep 17 00:00:00 2001 From: Sander van Nielen Date: Wed, 19 Nov 2025 18:25:55 +0100 Subject: [PATCH 03/55] Refer to DPP home instead of Admin home --- mysite/dpp/templates/adminlike/500.html | 2 +- mysite/dpp/templates/adminlike/app_index.html | 2 +- .../dpp/templates/adminlike/auth/user/change_password.html | 2 +- mysite/dpp/templates/adminlike/base.html | 6 +++--- mysite/dpp/templates/adminlike/base_backup.html | 2 +- mysite/dpp/templates/adminlike/base_site.html | 2 +- mysite/dpp/templates/adminlike/change_form.html | 2 +- mysite/dpp/templates/adminlike/change_list.html | 2 +- mysite/dpp/templates/adminlike/delete_confirmation.html | 2 +- .../templates/adminlike/delete_selected_confirmation.html | 2 +- mysite/dpp/templates/adminlike/invalid_setup.html | 2 +- mysite/dpp/templates/adminlike/object_history.html | 2 +- 12 files changed, 14 insertions(+), 14 deletions(-) diff --git a/mysite/dpp/templates/adminlike/500.html b/mysite/dpp/templates/adminlike/500.html index 6bd99e7..802761d 100644 --- a/mysite/dpp/templates/adminlike/500.html +++ b/mysite/dpp/templates/adminlike/500.html @@ -3,7 +3,7 @@ {% block breadcrumbs %} {% endblock %} diff --git a/mysite/dpp/templates/adminlike/app_index.html b/mysite/dpp/templates/adminlike/app_index.html index 1f7c4bd..2dc2d8f 100644 --- a/mysite/dpp/templates/adminlike/app_index.html +++ b/mysite/dpp/templates/adminlike/app_index.html @@ -7,7 +7,7 @@ {% block nav-breadcrumbs %}