InvenTree/InvenTree/templates/page_base.html
Oliver 74bec86675
Part page loading improvements (#3185)
* Lazy load the pricing bom table when the "pricing" tab is selected

* Update django-debug-toolbar configuration

* Major refactoring for the 'can_build' function

- Use a single annotated query to the db, rather than a for loop (which is what a caveman would use)
- Query performance is greatly improved
- Also refactors existing variant-part-stock subquery code, to make it re-usable

* Use minified JS and CSS where possible

* Render a 'preview' version of each part image

- Saves load time when the image is quite large
- Adds a data migration to render out the new variation

* Adds 'preview' version of company images

* Defer loading of javascript files

Note: some cannot be deferred - jquery in particular

* Crucial bugfix for user roles context

- Previously was *not* being calculated correctly
- A non-superuser role would most likely display pages incorrectly

* Prevent loading of "about" on every page

- Load dynamically when requested
- Takes ~400ms!
- Cuts out a lot of fat

* Match displayed image size to preview image size

* Utilize caching framework for accessing user "role" information

- Reduces number of DB queries required by rendering framework

* Remove redundant query elements

* Remove 'stock' field from PartBrief serializer

- A calculated field on a serializer is a *bad idea* when that calculation requires a DB hit

* Query improvements for StockItem serializer

- Remove calculated fields
- Fix annotations

* Bug fixes

* Remove JS load test

- Loading of JS files is now deferred, so the unit test does not work as it used to

* Fix broken template for "maintenance" page

* Remove thumbnail generation migrations

- Already performed manually as part of ''invoke migrate"
- Running as a migration causes unit test problems
- Not sensible to run this as a data-migration anyway

* tweak for build table
2022-06-17 21:26:28 +10:00

69 lines
2.1 KiB
HTML

{% extends "base.html" %}
{% load static %}
{% load i18n %}
{% block content %}
<div class='panel'>
<div class='panel-heading'>
<div class='d-flex flex-wrap'>
<h4>
{% block heading %}
<i>-- page header goes here --</i>
{% endblock %}
</h4>
{% include "spacer.html" %}
<div id='page-actions' class='btn-group' role='group'>
{% block actions %}
<i>-- actions go here --</i>
{% endblock %}
</div>
</div>
</div>
{% block page_info %}
<div class='panel-content'>
{% block details_above %}
{% endblock details_above %}
<div class='container' style='max-width: 100%; padding: 5px;'>
<div class='row'>
<div class='col' id='detail-panel-left'>
<div class='card'>
{% block details_left %}
<div class='row'>
<div class='col' style='max-width: 280px;'>
{% block thumbnail %}
{% endblock thumbnail %}
</div>
<div class='col'>
{% block details %}
{% endblock details %}
</div>
</div>
{% endblock details_left %}
</div>
</div>
<div class='col' id='detail-panel-right'>
<div class='card'>
{% block details_right %}
block details_right
{% endblock details_right %}
</div>
</div>
{% block details_below %}
{% endblock details_below %}
</div>
</div>
</div>
{% endblock %}
</div>
{% block page_content %}
<!-- Custom page content goes here-->
{% endblock %}
{% include "plugin/panel_content.html" %}
{% endblock %}