mirror of
https://github.com/inventree/InvenTree.git
synced 2025-06-19 05:25:42 +00:00
Merge remote-tracking branch 'inventree/master' into subscription-refactor
This commit is contained in:
43
InvenTree/templates/email/email.html
Normal file
43
InvenTree/templates/email/email.html
Normal file
@ -0,0 +1,43 @@
|
||||
{% load i18n %}
|
||||
{% load static %}
|
||||
{% load inventree_extras %}
|
||||
|
||||
<table style='border-collapse: collapse; width: 85%; margin-left: 10%; font-size: 1rem; border: 1px solid #68686a; border-radius: 2px;'>
|
||||
|
||||
{% block header %}
|
||||
<tr style='background: #eef3f7; height: 4rem; text-align: center;'>
|
||||
<th colspan="100%" style="padding-bottom: 1rem; color: #68686a;">
|
||||
{% block header_row %}
|
||||
<p style='font-size: 1.25rem;'>{% block title %}<!-- email title goes here -->{% endblock %}</p>
|
||||
{% block subtitle %}
|
||||
<!-- email subtitle goes here -->
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
</th>
|
||||
|
||||
</tr>
|
||||
{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
<tr style="height: 3rem; border-bottom: 1px solid #68686a;">
|
||||
{% block body_row %}
|
||||
<!-- email body goes here -->
|
||||
{% endblock %}
|
||||
</tr>
|
||||
{% endblock %}
|
||||
|
||||
{% block footer %}
|
||||
<tr style='background: #eef3f7; height: 2rem;'>
|
||||
<td colspan="100%" style="padding-top:1rem; text-align: center">
|
||||
{% block footer_prefix %}
|
||||
<!-- Custom footer information goes here -->
|
||||
{% endblock %}
|
||||
<p><em><small>{% trans "InvenTree version" %}: {% inventree_version %} - <a href='https://inventree.readthedocs.io'>inventree.readthedocs.io</a></small></em></p>
|
||||
{% block footer_suffix %}
|
||||
<!-- Custom footer information goes here -->
|
||||
{% endblock %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endblock %}
|
||||
|
||||
</table>
|
@ -1,35 +1,29 @@
|
||||
{% extends "email/email.html" %}
|
||||
|
||||
{% load i18n %}
|
||||
{% load inventree_extras %}
|
||||
|
||||
<table style="border-collapse:collapse; width: 80%;margin-left: 10%; font-size: 1rem">
|
||||
{% block title %}
|
||||
{% blocktrans with part=part.name %} The available stock for {{ part }} has fallen below the configured minimum level{% endblocktrans %}
|
||||
{% if link %}
|
||||
<p>{% trans "Click on the following link to view this part" %}: <a href="{{ link }}">{{ link }}</a></p>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
<tr style="background: aliceblue; height: 4rem;">
|
||||
<th colspan="3" style="padding-bottom: 1rem; font-size: 1.25rem; color:rgb(210, 20, 20)">
|
||||
<p>{% blocktrans with part=part.name %} The available stock for {{ part }} has fallen below the configured minimum level{% endblocktrans %}</p>
|
||||
{% if link %}
|
||||
<p>{% trans "Click on the following link to view this part" %}: <a href="{{ link }}">{{ link }}</a></p>
|
||||
{% endif %}
|
||||
</th>
|
||||
</tr>
|
||||
{% block subtitle %}
|
||||
<p><em>{% blocktrans with part=part.name %}You are receiving this email because you are subscribed to notifications for this part {% endblocktrans %}.</em></p>
|
||||
{% endblock %}
|
||||
|
||||
<tr style="height: 3rem; border-bottom: 1px solid">
|
||||
<th>{% trans "Part Name" %}</th>
|
||||
<th>{% trans "Available Quantity" %}</th>
|
||||
<th>{% trans "Minimum Quantity" %}</th>
|
||||
</tr>
|
||||
|
||||
<tr style="height: 3rem">
|
||||
<td style="text-align: center;">{{ part.full_name }}</td>
|
||||
<td style="text-align: center;">{{ part.total_stock }}</td>
|
||||
<td style="text-align: center;">{{ part.minimum_stock }}</td>
|
||||
</tr>
|
||||
|
||||
<tr style="background-color: aliceblue;height: 4rem;">
|
||||
<td colspan="3" style="padding-top:1rem; text-align: center">
|
||||
<p><em>{% blocktrans with part=part.name %}You are receiving this email because you are subscribed to notifications for this part {% endblocktrans %}.</em></p>
|
||||
<p><em><small>{% trans "InvenTree version" %}: {% inventree_version %}</small></em></p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
{% block body %}
|
||||
<tr style="height: 3rem; border-bottom: 1px solid">
|
||||
<th>{% trans "Part Name" %}</th>
|
||||
<th>{% trans "Available Quantity" %}</th>
|
||||
<th>{% trans "Minimum Quantity" %}</th>
|
||||
</tr>
|
||||
|
||||
<tr style="height: 3rem">
|
||||
<td style="text-align: center;">{{ part.full_name }}</td>
|
||||
<td style="text-align: center;">{{ part.total_stock }}</td>
|
||||
<td style="text-align: center;">{{ part.minimum_stock }}</td>
|
||||
</tr>
|
||||
{% endblock %}
|
||||
|
@ -1133,8 +1133,10 @@ function loadPartTable(table, url, options={}) {
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Display a table of part categories
|
||||
*/
|
||||
function loadPartCategoryTable(table, options) {
|
||||
/* Display a table of part categories */
|
||||
|
||||
var params = options.params || {};
|
||||
|
||||
@ -1157,15 +1159,15 @@ function loadPartCategoryTable(table, options) {
|
||||
|
||||
setupFilterList(filterKey, table, filterListElement);
|
||||
|
||||
var tree_view = inventreeLoad('category-tree-view') == 1;
|
||||
var tree_view = options.allowTreeView && inventreeLoad('category-tree-view') == 1;
|
||||
|
||||
table.inventreeTable({
|
||||
treeEnable: tree_view,
|
||||
rootParentId: options.params.parent,
|
||||
rootParentId: tree_view ? options.params.parent : null,
|
||||
uniqueId: 'pk',
|
||||
idField: 'pk',
|
||||
treeShowField: 'name',
|
||||
parentIdField: 'parent',
|
||||
parentIdField: tree_view ? 'parent' : null,
|
||||
method: 'get',
|
||||
url: options.url || '{% url "api-part-category-list" %}',
|
||||
queryParams: filters,
|
||||
@ -1176,7 +1178,7 @@ function loadPartCategoryTable(table, options) {
|
||||
name: 'category',
|
||||
original: original,
|
||||
showColumns: true,
|
||||
buttons: [
|
||||
buttons: options.allowTreeView ? [
|
||||
{
|
||||
icon: 'fas fa-bars',
|
||||
attributes: {
|
||||
@ -1215,28 +1217,31 @@ function loadPartCategoryTable(table, options) {
|
||||
);
|
||||
}
|
||||
}
|
||||
],
|
||||
] : [],
|
||||
onPostBody: function() {
|
||||
|
||||
tree_view = inventreeLoad('category-tree-view') == 1;
|
||||
if (options.allowTreeView) {
|
||||
|
||||
if (tree_view) {
|
||||
tree_view = inventreeLoad('category-tree-view') == 1;
|
||||
|
||||
$('#view-category-list').removeClass('btn-secondary').addClass('btn-outline-secondary');
|
||||
$('#view-category-tree').removeClass('btn-outline-secondary').addClass('btn-secondary');
|
||||
|
||||
table.treegrid({
|
||||
treeColumn: 0,
|
||||
onChange: function() {
|
||||
table.bootstrapTable('resetView');
|
||||
},
|
||||
onExpand: function() {
|
||||
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$('#view-category-tree').removeClass('btn-secondary').addClass('btn-outline-secondary');
|
||||
$('#view-category-list').removeClass('btn-outline-secondary').addClass('btn-secondary');
|
||||
if (tree_view) {
|
||||
|
||||
$('#view-category-list').removeClass('btn-secondary').addClass('btn-outline-secondary');
|
||||
$('#view-category-tree').removeClass('btn-outline-secondary').addClass('btn-secondary');
|
||||
|
||||
table.treegrid({
|
||||
treeColumn: 0,
|
||||
onChange: function() {
|
||||
table.bootstrapTable('resetView');
|
||||
},
|
||||
onExpand: function() {
|
||||
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$('#view-category-tree').removeClass('btn-secondary').addClass('btn-outline-secondary');
|
||||
$('#view-category-list').removeClass('btn-outline-secondary').addClass('btn-secondary');
|
||||
}
|
||||
}
|
||||
},
|
||||
columns: [
|
||||
|
@ -1416,8 +1416,11 @@ function loadStockTable(table, options) {
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Display a table of stock locations
|
||||
*/
|
||||
function loadStockLocationTable(table, options) {
|
||||
/* Display a table of stock locations */
|
||||
|
||||
var params = options.params || {};
|
||||
|
||||
@ -1443,15 +1446,15 @@ function loadStockLocationTable(table, options) {
|
||||
filters[key] = params[key];
|
||||
}
|
||||
|
||||
var tree_view = inventreeLoad('location-tree-view') == 1;
|
||||
var tree_view = options.allowTreeView && inventreeLoad('location-tree-view') == 1;
|
||||
|
||||
table.inventreeTable({
|
||||
treeEnable: tree_view,
|
||||
rootParentId: options.params.parent,
|
||||
rootParentId: tree_view ? options.params.parent : null,
|
||||
uniqueId: 'pk',
|
||||
idField: 'pk',
|
||||
treeShowField: 'name',
|
||||
parentIdField: 'parent',
|
||||
parentIdField: tree_view ? 'parent' : null,
|
||||
disablePagination: tree_view,
|
||||
sidePagination: tree_view ? 'client' : 'server',
|
||||
serverSort: !tree_view,
|
||||
@ -1465,28 +1468,31 @@ function loadStockLocationTable(table, options) {
|
||||
showColumns: true,
|
||||
onPostBody: function() {
|
||||
|
||||
tree_view = inventreeLoad('location-tree-view') == 1;
|
||||
if (options.allowTreeView) {
|
||||
|
||||
if (tree_view) {
|
||||
tree_view = inventreeLoad('location-tree-view') == 1;
|
||||
|
||||
$('#view-location-list').removeClass('btn-secondary').addClass('btn-outline-secondary');
|
||||
$('#view-location-tree').removeClass('btn-outline-secondary').addClass('btn-secondary');
|
||||
|
||||
table.treegrid({
|
||||
treeColumn: 1,
|
||||
onChange: function() {
|
||||
table.bootstrapTable('resetView');
|
||||
},
|
||||
onExpand: function() {
|
||||
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$('#view-location-tree').removeClass('btn-secondary').addClass('btn-outline-secondary');
|
||||
$('#view-location-list').removeClass('btn-outline-secondary').addClass('btn-secondary');
|
||||
if (tree_view) {
|
||||
|
||||
$('#view-location-list').removeClass('btn-secondary').addClass('btn-outline-secondary');
|
||||
$('#view-location-tree').removeClass('btn-outline-secondary').addClass('btn-secondary');
|
||||
|
||||
table.treegrid({
|
||||
treeColumn: 1,
|
||||
onChange: function() {
|
||||
table.bootstrapTable('resetView');
|
||||
},
|
||||
onExpand: function() {
|
||||
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$('#view-location-tree').removeClass('btn-secondary').addClass('btn-outline-secondary');
|
||||
$('#view-location-list').removeClass('btn-outline-secondary').addClass('btn-secondary');
|
||||
}
|
||||
}
|
||||
},
|
||||
buttons: [
|
||||
buttons: options.allowTreeView ? [
|
||||
{
|
||||
icon: 'fas fa-bars',
|
||||
attributes: {
|
||||
@ -1525,7 +1531,7 @@ function loadStockLocationTable(table, options) {
|
||||
);
|
||||
}
|
||||
}
|
||||
],
|
||||
] : [],
|
||||
columns: [
|
||||
{
|
||||
checkbox: true,
|
||||
|
Reference in New Issue
Block a user