diff --git a/InvenTree/build/templates/build/build_base.html b/InvenTree/build/templates/build/build_base.html index 22a126fcdf..428e40649f 100644 --- a/InvenTree/build/templates/build/build_base.html +++ b/InvenTree/build/templates/build/build_base.html @@ -12,7 +12,7 @@ {% block breadcrumbs %} -{% endblock %} +{% endblock breadcrumbs %} {% block thumbnail %} -{% endblock %} +{% endblock thumbnail %} {% block heading %} {% trans "Build Order" %} {{ build }} @@ -66,11 +66,23 @@ src="{% static 'img/blank_image.png' %}" {% endif %} {% endif %} -{% endblock %} +{% endblock actions %} {% block details %} -

{{ build.title }}

+ + + + + + + + + + + + +
{% trans "Part" %}{{ build.part.full_name }}
{% trans "Build Description" %}{{ build.title }}
{% if build.sales_order %} @@ -114,11 +126,7 @@ src="{% static 'img/blank_image.png' %}" {% block details_right %} - - - - - + diff --git a/InvenTree/company/templates/company/company_base.html b/InvenTree/company/templates/company/company_base.html index b9cd650395..3903dba685 100644 --- a/InvenTree/company/templates/company/company_base.html +++ b/InvenTree/company/templates/company/company_base.html @@ -19,21 +19,26 @@ {% include "admin_button.html" with url=url %} {% endif %} {% if company.is_supplier and roles.purchase_order.add %} - {% endif %} -{% if perms.company.change_company %} - -{% endif %} -{% if perms.company.delete_company %} - -{% endif %} -{% endblock %} + +{% endblock actions %} {% block thumbnail %}
@@ -56,7 +61,29 @@ {% endblock %} {% block details %} -

{{ company.description }}

+
{% trans "Part" %}{{ build.part.full_name }}
{% trans "Quantity" %}
+ + + + + + + + + + + + + + + + + + + + + +
{% trans "Description" %}{{ company.description }}
{%trans "Manufacturer" %}{% include "yesnolabel.html" with value=company.is_manufacturer %}
{% trans "Supplier" %}{% include 'yesnolabel.html' with value=company.is_supplier %}
{% trans "Customer" %}{% include 'yesnolabel.html' with value=company.is_customer %}
{% endblock %} @@ -110,22 +137,6 @@ {{ company.contact }}{% include "clip.html"%} {% endif %} - - - - {%trans "Manufacturer" %} - {% include "yesnolabel.html" with value=company.is_manufacturer %} - - - - {% trans "Supplier" %} - {% include 'yesnolabel.html' with value=company.is_supplier %} - - - - {% trans "Customer" %} - {% include 'yesnolabel.html' with value=company.is_customer %} - {% endblock %} diff --git a/InvenTree/company/templates/company/manufacturer_part.html b/InvenTree/company/templates/company/manufacturer_part.html index fcfa22ee2d..84e8016a59 100644 --- a/InvenTree/company/templates/company/manufacturer_part.html +++ b/InvenTree/company/templates/company/manufacturer_part.html @@ -8,7 +8,7 @@ InvenTree | {% trans "Manufacturer Part" %} {% block sidebar %} {% include "company/manufacturer_part_sidebar.html" %} -{% endblock %} +{% endblock sidebar %} {% block breadcrumbs %} @@ -16,13 +16,13 @@ InvenTree | {% trans "Manufacturer Part" %} {% endif %} -{% endblock %} +{% endblock breadcrumbs %} {% block heading %}

{% trans "Manufacturer Part" %}: {{ part.part.full_name }}

-{% endblock %} +{% endblock heading %} {% block actions %} {% if user.is_staff and perms.company.change_company %} @@ -46,7 +46,7 @@ InvenTree | {% trans "Manufacturer Part" %} {% endif %} {% endif %} -{% endblock %} +{% endblock actions %} {% block thumbnail %} -{% endblock %} +{% endblock thumbnail %} {% block details %} -{% endblock %} + + + + + + + + {% if part.description %} + + + + + + {% endif %} +
{% trans "Internal Part" %} + {% if part.part %} + {{ part.part.full_name }}{% include "clip.html"%} + {% endif %} +
{% trans "Description" %}{{ part.description }}{% include "clip.html"%}
+ +{% endblock details %} {% block details_right %} - - - - - - {% if part.description %} - - - - - - {% endif %} - {% if part.link %} - - - - - - {% endif %} - - - - - - - - - + + + + + + + + + + + + {% if part.link %} + + + + + + {% endif %}
{% trans "Internal Part" %} - {% if part.part %} - {{ part.part.full_name }}{% include "clip.html"%} - {% endif %} -
{% trans "Description" %}{{ part.description }}{% include "clip.html"%}
{% trans "External Link" %}{{ part.link }}{% include "clip.html"%}
{% trans "Manufacturer" %}{{ part.manufacturer.name }}{% include "clip.html"%}
{% trans "MPN" %}{{ part.MPN }}{% include "clip.html"%}
{% trans "Manufacturer" %}{{ part.manufacturer.name }}{% include "clip.html"%}
{% trans "MPN" %}{{ part.MPN }}{% include "clip.html"%}
{% trans "External Link" %}{{ part.link }}{% include "clip.html"%}
-{% endblock %} +{% endblock details_right %} {% block page_content %} diff --git a/InvenTree/company/templates/company/supplier_part.html b/InvenTree/company/templates/company/supplier_part.html index 276a9f7ebc..89e8f91493 100644 --- a/InvenTree/company/templates/company/supplier_part.html +++ b/InvenTree/company/templates/company/supplier_part.html @@ -5,11 +5,11 @@ {% block page_title %} {% inventree_title %} | {% trans "Supplier Part" %} -{% endblock %} +{% endblock page_title %} {% block sidebar %} {% include "company/supplier_part_sidebar.html" %} -{% endblock %} +{% endblock sidebar %} {% block breadcrumbs %} @@ -17,13 +17,13 @@ {% endif %} -{% endblock %} +{% endblock breadcrumbs %} {% block heading %}

{% trans "Supplier Part" %}: {{ part.SKU }}

-{% endblock %} +{% endblock heading %} {% block actions %} {% if user.is_staff and perms.company.change_company %} @@ -43,7 +43,7 @@ {% endif %} -{% endblock %} +{% endblock actions %} {% block thumbnail %} - {{ part.part.full_name }} -

+ + + + + + + + {% if part.description %} + + + + + + {% endif %} +
{% trans "Internal Part" %} + {% if part.part %} + {{ part.part.full_name }}{% include "clip.html"%} + {% endif %} +
{% trans "Description" %}{{ part.description }}{% include "clip.html"%}
-{% endblock %} +{% endblock details %} {% block details_right %} - - - - - - {% if part.description %} - - - - - - {% endif %} - {% if part.link %} - - - - - - {% endif %} @@ -127,6 +120,13 @@ src="{% static 'img/blank_image.png' %}" {% endif %} + {% if part.link %} + + + + + + {% endif %}
{% trans "Internal Part" %} - {% if part.part %} - {{ part.part.full_name }}{% include "clip.html"%} - {% endif %} -
{% trans "Description" %}{{ part.description }}{% include "clip.html"%}
{% trans "External Link" %}{{ part.link }}{% include "clip.html"%}
{% trans "Supplier" %}{{ part.note }}{% include "clip.html"%}
{% trans "External Link" %}{{ part.link }}{% include "clip.html"%}
{% endblock %} diff --git a/InvenTree/order/templates/order/order_base.html b/InvenTree/order/templates/order/order_base.html index 42733d1178..da78b83561 100644 --- a/InvenTree/order/templates/order/order_base.html +++ b/InvenTree/order/templates/order/order_base.html @@ -53,15 +53,17 @@ {% elif order.status == PurchaseOrderStatus.PLACED %} - - {% endif %} {% endif %} -{% endblock %} +{% endblock actions %} {% block thumbnail %} - {% purchase_order_status_label order.status large=True %} - {% if order.is_overdue %} - {% trans "Overdue" %} - {% endif %} - -

{{ order.description }}{% include "clip.html"%}

- -{% endblock %} - -{% block details_right %} - +
+ + + + + @@ -103,6 +99,14 @@ src="{% static 'img/blank_image.png' %}" {% endif %} + +
{% trans "Order Reference" %} {% settings_value 'PURCHASEORDER_REFERENCE_PREFIX' %}{{ order.reference }}{% include "clip.html"%}
{% trans "Order Description" %}{{ order.description }}{% include "clip.html" %}
{% trans "Order Status" %}
+ +{% endblock %} + +{% block details_right %} + + diff --git a/InvenTree/order/templates/order/purchase_order_detail.html b/InvenTree/order/templates/order/purchase_order_detail.html index 3a6ea090d5..90a105caf1 100644 --- a/InvenTree/order/templates/order/purchase_order_detail.html +++ b/InvenTree/order/templates/order/purchase_order_detail.html @@ -27,7 +27,7 @@ {% trans "Add Line Item" %} {% elif order.status == PurchaseOrderStatus.PLACED %} - {% endif %} diff --git a/InvenTree/order/templates/order/sales_order_base.html b/InvenTree/order/templates/order/sales_order_base.html index 368c3a2e47..2a5a79a161 100644 --- a/InvenTree/order/templates/order/sales_order_base.html +++ b/InvenTree/order/templates/order/sales_order_base.html @@ -68,17 +68,33 @@ src="{% static 'img/blank_image.png' %}" {% endif %} {% endif %} -{% endblock %} +{% endblock actions %} {% block details %} -

- {% sales_order_status_label order.status large=True %} - {% if order.is_overdue %} - {% trans "Overdue" %} - {% endif %} -

-

{{ order.description }}{% include "clip.html"%}

+
{% trans "Supplier" %}
+ + + + + + + + + + + + + + + + +
{% trans "Order Reference" %}{% settings_value 'SALESORDER_REFERENCE_PREFIX' %}{{ order.reference }}{% include "clip.html"%}
{% trans "Order Description" %}{{ order.description }}{% include "clip.html" %}
{% trans "Order Status" %} + {% sales_order_status_label order.status %} + {% if order.is_overdue %} + {% trans "Overdue" %} + {% endif %} +
{% if order.status == SalesOrderStatus.PENDING and not order.is_fully_allocated %} @@ -93,21 +109,6 @@ src="{% static 'img/blank_image.png' %}" {% block details_right %} - - - - - - - - - - {% if order.customer %} diff --git a/InvenTree/part/templates/part/category.html b/InvenTree/part/templates/part/category.html index bc8a99a3dd..4797571fda 100644 --- a/InvenTree/part/templates/part/category.html +++ b/InvenTree/part/templates/part/category.html @@ -61,29 +61,43 @@ {% endblock %} {% block details_left %} -{% if category %} -

{{ category.description }}

-{% else %} -

{% trans "Top level part category" %}

-{% endif %} - -{% endblock %} +
{% trans "Order Reference" %}{% settings_value 'SALESORDER_REFERENCE_PREFIX' %}{{ order.reference }}{% include "clip.html"%}
{% trans "Order Status" %} - {% sales_order_status_label order.status %} - {% if order.is_overdue %} - {% trans "Overdue" %} - {% endif %} -
+ + {% if category %} + {% if category.description %} + + + + + + {% endif %} + + + + + + {% if category.default_keywords %} + + + + + + {% endif %} + {% else %} + + + + + + {% endif %} +
{% trans "Description" %}{{ category.description }}
{% trans "Category Path" %}{{ category.pathstring }}
{% trans "Keywords" %}{{ category.default_keywords }}
{% trans "Category Path" %}{% trans "Top level part category" %}
+{% endblock details_left %} {% block details_right %} {% if category %} - - - - - - - - - - {% if category.default_location %} @@ -91,13 +105,6 @@ {% endif %} - {% if category.default_keywords %} - - - - - - {% endif %} @@ -124,7 +131,7 @@
{% trans "Category Path" %}{{ category.pathstring }}
{% trans "Category Description" %}{{ category.description }}
{{ category.default_location.pathstring }}
{% trans "Keywords" %}{{ category.default_keywords }}
{% trans "Subcategories" %}
{% endif %} -{% endblock %} +{% endblock details_right %} {% block page_content %} diff --git a/InvenTree/part/templates/part/detail.html b/InvenTree/part/templates/part/detail.html index 4cf6f5e824..ce78e445e1 100644 --- a/InvenTree/part/templates/part/detail.html +++ b/InvenTree/part/templates/part/detail.html @@ -11,113 +11,6 @@ {% block page_content %} -
-
-

{% trans "Part Details" %}

-
-
- - - - - - - - - - - - - - - {% if part.category %} - - - - - - {% endif %} - {% if part.IPN %} - - - - - - {% endif %} - {% if part.revision %} - - - - - - {% endif %} - {% if part.units %} - - - - - - {% endif %} - {% if part.minimum_stock %} - - - - - - {% endif %} - {% if part.keywords %} - - - - - - {% endif %} - {% if part.link %} - - - - - - {% endif %} - - - - - - {% if part.trackable and part.getLatestSerialNumber %} - - - - - - {% endif %} - {% if part.default_location %} - - - - - - {% endif %} - {% if part.default_supplier %} - - - - - - {% endif %} -
{% trans "Name" %}{{ part.name }}{% include "clip.html"%}
{% trans "Description" %}{{ part.description }}{% include "clip.html"%}
{% trans "Category" %} - {{ part.category.name }} -
{% trans "IPN" %}{{ part.IPN }}{% include "clip.html"%}
{% trans "Revision" %}{{ part.revision }}{% include "clip.html"%}
{% trans "Units" %}{{ part.units }}
{% trans "Minimum stock level" %}{{ part.minimum_stock }}
{% trans "Keywords" %}{{ part.keywords }}{% include "clip.html"%}
{% trans "External Link" %}{{ part.link }}{% include "clip.html"%}
{% trans "Creation Date" %} - {{ part.creation_date }} - {% if part.creation_user %} - {{ part.creation_user }} - {% endif %} -
{% trans "Latest Serial Number" %}{{ part.getLatestSerialNumber }}{% include "clip.html"%}
{% trans "Default Location" %} - {{ part.default_location }} -
{% trans "Default Supplier" %}{{ part.default_supplier }}
-
-
-
diff --git a/InvenTree/part/templates/part/part_base.html b/InvenTree/part/templates/part/part_base.html index 4ca7c80d65..994eefe94e 100644 --- a/InvenTree/part/templates/part/part_base.html +++ b/InvenTree/part/templates/part/part_base.html @@ -99,53 +99,71 @@ {% block details %} - - -

-
- {% if part.is_template %} -   - - {% endif %} - {% if part.assembly %} -   - - {% endif %} - {% if part.component %} -   - - {% endif %} - {% if part.trackable %} -   - - {% endif %} - {% if part.purchaseable %} -   - - {% endif %} - {% if part.salable %} -   - - {% endif %} - - {% if not part.active %} -   -
- - {% trans 'Inactive' %} -
- {% endif %} - - {% if part.virtual and part.active %} -   -
- - {% trans 'Virtual' %} -
- {% endif %} -
-

+ + + + + + + + + + +
+
+
+
+ {% if part.is_template %} +   + + {% endif %} + {% if part.assembly %} +   + + {% endif %} + {% if part.component %} +   + + {% endif %} + {% if part.trackable %} +   + + {% endif %} + {% if part.purchaseable %} +   + + {% endif %} + {% if part.salable %} +   + + {% endif %} + + {% if not part.active %} +   +
+ + {% trans 'Inactive' %} +
+ {% endif %} + + {% if part.virtual and part.active %} +   +
+ + {% trans 'Virtual' %} +
+ {% endif %} +
+
+ + {% include "spacer.html" %} + + +
+
{% trans "Description" %}{{ part.description }}{% include "clip.html"%}
@@ -157,7 +175,7 @@ {% endif %}
-{% endblock %} +{% endblock details %} {% block details_right %} @@ -231,7 +249,111 @@ {% endif %} {% endif %}
-{% endblock %} +{% endblock details_right %} + +{% block details_below %} + +
+
+
+ + + + {% if part.category %} + + + + + + {% endif %} + {% if part.IPN %} + + + + + + {% endif %} + {% if part.revision %} + + + + + + {% endif %} + {% if part.units %} + + + + + + {% endif %} + {% if part.minimum_stock %} + + + + + + {% endif %} + {% if part.keywords %} + + + + + + {% endif %} +
{% trans "Category" %} + {{ part.category.name }} +
{% trans "IPN" %}{{ part.IPN }}{% include "clip.html"%}
{% trans "Revision" %}{{ part.revision }}{% include "clip.html"%}
{% trans "Units" %}{{ part.units }}
{% trans "Minimum stock level" %}{{ part.minimum_stock }}
{% trans "Keywords" %}{{ part.keywords }}{% include "clip.html"%}
+
+
+ + + + + + + + {% if part.trackable and part.getLatestSerialNumber %} + + + + + + {% endif %} + {% if part.default_location %} + + + + + + {% endif %} + {% if part.default_supplier %} + + + + + + {% endif %} + {% if part.link %} + + + + + + {% endif %} +
{% trans "Creation Date" %} + {{ part.creation_date }} + {% if part.creation_user %} + {{ part.creation_user }} + {% endif %} +
{% trans "Latest Serial Number" %}{{ part.getLatestSerialNumber }}{% include "clip.html"%}
{% trans "Default Location" %} + {{ part.default_location }} +
{% trans "Default Supplier" %}{{ part.default_supplier }}
{% trans "External Link" %}{{ part.link }}{% include "clip.html"%}
+
+
+
+ +{% endblock details_below %} {% block js_ready %} {{ block.super }} @@ -439,4 +561,20 @@ }); {% endif %} + // Callback function when the "part details" panel is shown + $('#collapse-part-details').on('show.bs.collapse', function() { + $('#toggle-details-button').html('{% trans "Hide Part Details" %}'); + inventreeSave('show-part-details', true); + }); + + // Callback function when the "part details" panel is hidden + $('#collapse-part-details').on('hide.bs.collapse', function() { + $('#toggle-details-button').html('{% trans "Show Part Details" %}'); + inventreeSave('show-part-details', false); + }); + + if (inventreeLoad('show-part-details', false).toString() == 'true') { + $('#collapse-part-details').collapse('show'); + } + {% endblock %} \ No newline at end of file diff --git a/InvenTree/part/templates/part/part_sidebar.html b/InvenTree/part/templates/part/part_sidebar.html index c590c51c37..f4e59af865 100644 --- a/InvenTree/part/templates/part/part_sidebar.html +++ b/InvenTree/part/templates/part/part_sidebar.html @@ -5,8 +5,6 @@ {% settings_value "PART_INTERNAL_PRICE" as show_internal_price %} {% settings_value 'PART_SHOW_RELATED' as show_related %} -{% trans "Details" as text %} -{% include "sidebar_item.html" with label="part-details" text=text icon="fa-shapes" %} {% trans "Parameters" as text %} {% include "sidebar_item.html" with label="part-parameters" text=text icon="fa-th-list" %} {% if part.is_template %} diff --git a/InvenTree/stock/templates/stock/item_base.html b/InvenTree/stock/templates/stock/item_base.html index 111007cd71..5f22076d9a 100644 --- a/InvenTree/stock/templates/stock/item_base.html +++ b/InvenTree/stock/templates/stock/item_base.html @@ -14,7 +14,7 @@ {% block heading %} {% trans "Stock Item" %}: {{ item.part.full_name}} -{% endblock %} +{% endblock heading %} {% block actions %} @@ -100,7 +100,9 @@ {% if roles.stock.change and not item.is_building %}
- +
{% endif %} {% endif %} -{% endblock %} +{% endblock actions %} {% block thumbnail %} -{% endblock %} +{% endblock thumbnail %} {% block details %} + + + + + + + + {% if item.serialized %} + + + + + + {% else %} + + + + + + {% endif %} + + + + + + {% if item.expiry_date %} + + + + + + {% endif %} + + + + + + + + + {% if item.stocktake_date %} + + {% else %} + + {% endif %} + +
{% trans "Base Part" %} + {% if roles.part.view %} + + {% endif %} + {{ item.part.full_name }} + {% if roles.part.view %} + + {% endif %} +
{% trans "Serial Number" %} + {% if previous %} + + {{ previous.serial }} ‹ + + {% endif %} + {{ item.serial }} + {% if next %} + + › {{ next.serial }} + + {% endif %} +
{% trans "Quantity" %}{% decimal item.quantity %} {% if item.part.units %}{{ item.part.units }}{% endif %}
{% trans "Status" %}{% stock_status_label item.status %}
{% trans "Expiry Date" %} + {{ item.expiry_date }} + {% if item.is_expired %} + {% trans "Expired" %} + {% elif item.is_stale %} + {% trans "Stale" %} + {% endif %} +
{% trans "Last Updated" %}{{ item.updated }}
{% trans "Last Stocktake" %}{{ item.stocktake_date }} {{ item.stocktake_user }}{% trans "No stocktake performed" %}
+ {% setting_object 'STOCK_OWNERSHIP_CONTROL' as owner_control %} {% if owner_control.value == "True" %} {% authorized_owners item.owner as owners %} {% endif %} -

- {% if item.is_expired %} - {% trans "Expired" %} - {% else %} - {% if roles.stock.change %} - - {% endif %} - {% stock_status_label item.status large=True %} - {% if roles.stock.change %} - - {% endif %} - {% if item.is_stale %} - {% trans "Stale" %} - {% endif %} - {% endif %} -

- - -
{% setting_object 'STOCK_OWNERSHIP_CONTROL' as owner_control %} @@ -214,49 +272,12 @@ {% endif %}
-{% endblock %} +{% endblock details %} {% block details_right %} - +
- - - - - - {% if item.serialized %} - - - - - - {% else %} - - - - - - {% endif %} + {% if item.customer %} @@ -376,39 +397,6 @@ {% endif %} - {% if item.expiry_date %} - - - - - - {% endif %} - - - - - - - - - {% if item.stocktake_date %} - - {% else %} - - {% endif %} - - - - - - {% if item.hasRequiredTests %} diff --git a/InvenTree/stock/templates/stock/location.html b/InvenTree/stock/templates/stock/location.html index 18b78b2290..6a201e610c 100644 --- a/InvenTree/stock/templates/stock/location.html +++ b/InvenTree/stock/templates/stock/location.html @@ -80,12 +80,32 @@ {% endblock %} {% block details_left %} -{% if location %} -

{{ location.description }}

-{% else %} -

{% trans "Top level stock location" %}

-{% endif %} +
{% trans "Base Part" %} - {% if roles.part.view %} - - {% endif %} - {{ item.part.full_name }} - {% if roles.part.view %} - - {% endif %} -
{% trans "Serial Number" %} - {% if previous %} - - {{ previous.serial }} ‹ - - {% endif %} - {{ item.serial }} - {% if next %} - - › {{ next.serial }} - - {% endif %} -
{% trans "Quantity" %}{% decimal item.quantity %} {% if item.part.units %}{{ item.part.units }}{% endif %}
{{ item.supplier_part.SKU }}
{% trans "Expiry Date" %} - {{ item.expiry_date }} - {% if item.is_expired %} - {% trans "Expired" %} - {% elif item.is_stale %} - {% trans "Stale" %} - {% endif %} -
{% trans "Last Updated" %}{{ item.updated }}
{% trans "Last Stocktake" %}{{ item.stocktake_date }} {{ item.stocktake_user }}{% trans "No stocktake performed" %}
{% trans "Status" %}{% stock_status_label item.status %}
+ + {% if location %} + {% if location.description %} + + + + + + {% endif %} + + + + + + {% else %} + + + + + + {% endif %} +
{% trans "Description" %}{{ location.description }}
{% trans "Location Path" %}{{ location.pathstring }}
{% trans "Location Path" %}{% trans "Top level stock location" %}
+{% endblock details_left %} +{% block details_below %} {% setting_object 'STOCK_OWNERSHIP_CONTROL' as owner_control %} {% if owner_control.value == "True" %} {% authorized_owners location.owner as owners %} @@ -97,17 +117,12 @@ {% endif %} {% endif %} -{% endblock %} +{% endblock details_below %} {% block details_right %} {% if location %} - - - - - @@ -134,7 +149,7 @@
{% trans "Description" %}{{ location.description }}
{% trans "Sublocations" %}
{% endif %} -{% endblock %} +{% endblock details_right %} {% block page_content %} diff --git a/InvenTree/templates/page_base.html b/InvenTree/templates/page_base.html index 506120972a..17077700a2 100644 --- a/InvenTree/templates/page_base.html +++ b/InvenTree/templates/page_base.html @@ -24,29 +24,35 @@ {% block page_info %}
-
-
-
- {% block details_left %} -
-
- {% block thumbnail %} - {% endblock %} -
-
- {% block details %} - {% endblock %} + {% block details_above %} + {% endblock details_above %} +
+
+
+
+ {% block details_left %} +
+
+ {% block thumbnail %} + {% endblock thumbnail %} +
+
+ {% block details %} + {% endblock details %} +
+ {% endblock details_left %}
- {% endblock %}
-
-
-
- {% block details_right %} - block details_right - {% endblock %} +
+
+ {% block details_right %} + block details_right + {% endblock details_right %} +
+ {% block details_below %} + {% endblock details_below %}