1. View, filter, and save Product Permutation. \n 2. Synchronised with Product Category page and all common functionality moved into base and base table css, js, and python files.
This commit is contained in:
17
templates/components/store/_preview_DDL_currency.html
Normal file
17
templates/components/store/_preview_DDL_currency.html
Normal file
@@ -0,0 +1,17 @@
|
||||
|
||||
|
||||
{% with _is_blank_row = (is_blank_row or model.currencies | length == 0 or currency is none) %}
|
||||
{% if not _is_blank_row %}
|
||||
<div
|
||||
class="{{ model.FLAG_CURRENCY }}"
|
||||
{{ model.ATTR_VALUE_CURRENT }}="{{ currency.id_currency }}"
|
||||
{{ model.ATTR_VALUE_PREVIOUS }}="{{ currency.id_currency }}"
|
||||
>{{ currency.symbol }}</div>
|
||||
{% else %}
|
||||
<div
|
||||
class="{{ model.FLAG_CURRENCY }}"
|
||||
{{ model.ATTR_VALUE_CURRENT }}=""
|
||||
{{ model.ATTR_VALUE_PREVIOUS }}=""
|
||||
></div>
|
||||
{% endif %}
|
||||
{% endwith %}
|
||||
14
templates/components/store/_preview_DDL_product.html
Normal file
14
templates/components/store/_preview_DDL_product.html
Normal file
@@ -0,0 +1,14 @@
|
||||
|
||||
{% if not is_blank_row %}
|
||||
<div
|
||||
class="{{ model.FLAG_PRODUCT }}"
|
||||
{{ model.ATTR_VALUE_CURRENT }}="{{ product.id_product }}"
|
||||
{{ model.ATTR_VALUE_PREVIOUS }}="{{ product.id_product }}"
|
||||
>{{ product.name }}</div>
|
||||
{% else %}
|
||||
<div
|
||||
class="{{ model.FLAG_PRODUCT }}"
|
||||
{{ model.ATTR_VALUE_CURRENT }}=""
|
||||
{{ model.ATTR_VALUE_PREVIOUS }}=""
|
||||
></div>
|
||||
{% endif %}
|
||||
@@ -0,0 +1,14 @@
|
||||
|
||||
{% if not is_blank_row %}
|
||||
<div
|
||||
class="{{ model.FLAG_PRODUCT_CATEGORY }}"
|
||||
{{ model.ATTR_VALUE_CURRENT }}="{{ category.id_category }}"
|
||||
{{ model.ATTR_VALUE_PREVIOUS }}="{{ category.id_category }}"
|
||||
>{{ category.name }}</div>
|
||||
{% else %}
|
||||
<div
|
||||
class="{{ model.FLAG_PRODUCT_CATEGORY }}"
|
||||
{{ model.ATTR_VALUE_CURRENT }}=""
|
||||
{{ model.ATTR_VALUE_PREVIOUS }}=""
|
||||
></div>
|
||||
{% endif %}
|
||||
@@ -0,0 +1,17 @@
|
||||
|
||||
{% with _is_blank_row = (is_blank_row or units_measurement_time_dict | length == 0 or permutation.id_unit_measurement_interval_expiration_unsealed is none) %}
|
||||
{% if not _is_blank_row %}
|
||||
{% set interval_recurrence = units_measurement_time_dict[permutation.id_unit_measurement_interval_expiration_unsealed] %}
|
||||
<div
|
||||
class="{{ model.FLAG_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED }} {% if not permutation.does_expire_faster_once_unsealed %}{{ model.FLAG_COLLAPSED }}{% endif %}"
|
||||
{{ model.ATTR_VALUE_CURRENT }}="{{ permutation.id_unit_measurement_interval_expiration_unsealed }}"
|
||||
{{ model.ATTR_VALUE_PREVIOUS }}="{{ permutation.id_unit_measurement_interval_expiration_unsealed }}"
|
||||
>{{ interval_recurrence.name_singular }}</div>
|
||||
{% else %}
|
||||
<div
|
||||
class="{{ model.FLAG_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED }} {{ model.FLAG_COLLAPSED }}"
|
||||
{{ model.ATTR_VALUE_CURRENT }}=""
|
||||
{{ model.ATTR_VALUE_PREVIOUS }}=""
|
||||
></div>
|
||||
{% endif %}
|
||||
{% endwith %}
|
||||
@@ -0,0 +1,19 @@
|
||||
{#
|
||||
<select class="{{ model.FLAG_UNIT_MEASUREMENT_INTERVAL_RECURRENCE }}" value="{{ permutation.id_unit_measurement_interval_recurrence }}" {{ model.ATTR_VALUE_CURRENT }}="{{ permutation.id_unit_measurement_interval_recurrence }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ permutation.id_unit_measurement_interval_recurrence }}"></select>
|
||||
#}
|
||||
{% with _is_blank_row = (is_blank_row or units_measurement_time | length == 0 or permutation.id_unit_measurement_interval_recurrence is none) %}
|
||||
{% if not _is_blank_row %}
|
||||
{% set interval_recurrence = units_measurement_time[permutation.id_unit_measurement_interval_recurrence] | console_log %}
|
||||
<div
|
||||
class="{{ model.FLAG_UNIT_MEASUREMENT_INTERVAL_RECURRENCE }} {% if not permutation.is_subscription %}{{ model.FLAG_COLLAPSED }}{% endif %}"
|
||||
{{ model.ATTR_VALUE_CURRENT }}="{{ permutation.id_unit_measurement_interval_recurrence }}"
|
||||
{{ model.ATTR_VALUE_PREVIOUS }}="{{ permutation.id_unit_measurement_interval_recurrence }}"
|
||||
>{{ interval_recurrence.name_singular }}</div>
|
||||
{% else %}
|
||||
<div
|
||||
class="{{ model.FLAG_UNIT_MEASUREMENT_INTERVAL_RECURRENCE }} {{ model.FLAG_COLLAPSED }}"
|
||||
{{ model.ATTR_VALUE_CURRENT }}=""
|
||||
{{ model.ATTR_VALUE_PREVIOUS }}=""
|
||||
></div>
|
||||
{% endif %}
|
||||
{% endwith %}
|
||||
@@ -0,0 +1,21 @@
|
||||
|
||||
{#
|
||||
<select class="{{ model.FLAG_UNIT_MEASUREMENT_QUANTITY }}" {{ model.ATTR_VALUE_CURRENT }}="{{ permutation.id_unit_measurement_quantity }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ permutation.id_unit_measurement_quantity }}"></select>
|
||||
#}
|
||||
|
||||
{% with _is_blank_row = (is_blank_row or units_measurement_dict | length == 0 or permutation.id_unit_measurement_quantity is none) %}
|
||||
{% if not _is_blank_row %}
|
||||
{% set interval_recurrence = units_measurement_dict[permutation.id_unit_measurement_quantity] | console_log %}
|
||||
<div
|
||||
class="{{ model.FLAG_UNIT_MEASUREMENT_QUANTITY }}"
|
||||
{{ model.ATTR_VALUE_CURRENT }}="{{ permutation.id_unit_measurement_quantity }}"
|
||||
{{ model.ATTR_VALUE_PREVIOUS }}="{{ permutation.id_unit_measurement_quantity }}"
|
||||
>{{ interval_recurrence.name_singular }}</div>
|
||||
{% else %}
|
||||
<div
|
||||
class="{{ model.FLAG_UNIT_MEASUREMENT_QUANTITY }}"
|
||||
{{ model.ATTR_VALUE_CURRENT }}=""
|
||||
{{ model.ATTR_VALUE_PREVIOUS }}=""
|
||||
></div>
|
||||
{% endif %}
|
||||
{% endwith %}
|
||||
@@ -0,0 +1,22 @@
|
||||
|
||||
{#
|
||||
{% if variation_tree is not defined %}
|
||||
{% set is_blank_row = True %}
|
||||
{% endif %}
|
||||
{% if is_blank_row is not defined %}
|
||||
{% set is_blank_row = True %}
|
||||
{% endif %}
|
||||
#}
|
||||
{% with _is_blank_row = (is_blank_row or variation_tree is not defined or variation_tree is none or is_blank_row is not defined or is_blank_row) %}
|
||||
{% if not _is_blank_row %}
|
||||
{% set str_ids_variations = variation_tree.to_variation_id_pairs_str() %}
|
||||
{% set str_variations = variation_tree.to_preview_str() %}
|
||||
<div
|
||||
class="{{ model.FLAG_PRODUCT_VARIATIONS }}"
|
||||
{{ model.ATTR_VALUE_CURRENT }}="{{ str_ids_variations }}"
|
||||
{{ model.ATTR_VALUE_PREVIOUS }}="{{ str_ids_variations }}"
|
||||
>{{ str_variations }}</div>
|
||||
{% else %}
|
||||
<div class="{{ model.FLAG_PRODUCT_VARIATIONS }}" {{ model.ATTR_VALUE_CURRENT }} {{ model.ATTR_VALUE_PREVIOUS }}></div>
|
||||
{% endif %}
|
||||
{% endwith %}
|
||||
@@ -0,0 +1,15 @@
|
||||
|
||||
{% with _is_blank_row = (is_blank_row or variation_tree is not defined or is_blank_row is not defined) %}
|
||||
{% if not is_blank_row %}
|
||||
{# % set json_str_variation_types = product.get_json_str_types_variation_trees() % #}
|
||||
{% set names_variation_type = product.get_variation_types_unique() %}
|
||||
{% set json_str_variation_types = jsonify(names_variation_type) %}
|
||||
<div
|
||||
class="{{ model.FLAG_PRODUCT_VARIATIONS }}"
|
||||
{{ model.ATTR_VALUE_CURRENT }}="{{ json_str_variation_types }}"
|
||||
{{ model.ATTR_VALUE_PREVIOUS }}="{{ json_str_variation_types }}"
|
||||
>{{ model.join_with_linebreaks(names_variation_type) }}</div>
|
||||
{% else %}
|
||||
<div class="{{ model.FLAG_PRODUCT_VARIATIONS }}" {{ model.ATTR_VALUE_CURRENT }} {{ model.ATTR_VALUE_PREVIOUS }}></div>
|
||||
{% endif %}
|
||||
{% endwith %}
|
||||
@@ -1,70 +0,0 @@
|
||||
|
||||
{% if is_blank_row %}
|
||||
<tr class="{{ model.FLAG_ROW_NEW }}" {{ model.ATTR_ID_PERMUTATION }}>
|
||||
<td class="{{ model.FLAG_PRODUCT_CATEGORY }}">
|
||||
<select class="{{ model.FLAG_PRODUCT_CATEGORY}}" {{ model.ATTR_VALUE_CURRENT }} {{ model.ATTR_VALUE_PREVIOUS }}>
|
||||
{% for cat in model.category_list.categories %}
|
||||
<option value="{{ cat.id_category }}">{{ cat.name }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
<td class="{{ model.FLAG_PRODUCT }}">
|
||||
<select class="{{ model.FLAG_PRODUCT }}" {{ model.ATTR_VALUE_CURRENT }} {{ model.ATTR_VALUE_PREVIOUS }}></select>
|
||||
</td>
|
||||
<td class="{{ model.FLAG_VARIATIONS }}">
|
||||
<textarea class="{{ model.FLAG_VARIATIONS }}" {{ model.ATTR_VALUE_CURRENT }} {{ model.ATTR_VALUE_PREVIOUS }}></textarea>
|
||||
</td>
|
||||
<td class="{{ model.FLAG_QUANTITY_STOCK }}">
|
||||
<input class="{{ model.FLAG_QUANTITY_STOCK }}" type="number" min="0" value="0" {{ model.ATTR_VALUE_CURRENT }}="0" {{ model.ATTR_VALUE_PREVIOUS }}>
|
||||
</td>
|
||||
<td class="{{ model.FLAG_QUANTITY_MIN }}">
|
||||
<input class="{{ model.FLAG_QUANTITY_MIN }}" type="number" min="0" value="0" {{ model.ATTR_VALUE_CURRENT }}="0" {{ model.ATTR_VALUE_PREVIOUS }}>
|
||||
</td>
|
||||
<td class="{{ model.FLAG_QUANTITY_MAX }}">
|
||||
<input class="{{ model.FLAG_QUANTITY_MAX }}" type="number" min="0" value="0" {{ model.ATTR_VALUE_CURRENT }}="0" {{ model.ATTR_VALUE_PREVIOUS }}>
|
||||
</td>
|
||||
<td class="{{ model.FLAG_COST_LOCAL_VAT_INCL }}">
|
||||
</td>
|
||||
<!-- <td><strong>{ { permutation.output_currency() }}</strong>{ { permutation.get_price_local() }}</td> -->
|
||||
<td class="{{ model.FLAG_DETAIL }}">
|
||||
<a>Detail</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% else %}
|
||||
<tr {{ model.ATTR_ID_PERMUTATION }}="{{ permutation.id_permutation }}">
|
||||
<td class="{{ model.FLAG_PRODUCT_CATEGORY }}">
|
||||
<select class="{{ model.FLAG_PRODUCT_CATEGORY }}" {{ model.ATTR_VALUE_CURRENT }}="{{ category.id_category }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ category.id_category }}"> <!-- {{ model.ATTR_ID_CATEGORY }}="{{ category.id_category }}" -->
|
||||
{% for c in model.category_list.categories %}
|
||||
<option value="{{ c.id_category }}" {% if c.id_category == category.id_category %}{% endif %}>{{ c.name }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
<td class="{{ model.FLAG_PRODUCT }}">
|
||||
<select class="{{ model.FLAG_PRODUCT }}" {{ model.ATTR_VALUE_CURRENT }}="{{ product.id_product }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ product.id_product }}"> <!-- {{ model.ATTR_ID_PRODUCT }}="{{ product.id_product }} -->
|
||||
{% for p in model.category_list.categories[model.category_list.get_index_category_from_id(category.id_category)].products %}
|
||||
<option value="{{ p.id_product }}" {% if p.id_product == product.id_product %}{% endif %}>{{ p.name }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
<td class="{{ model.FLAG_VARIATIONS }}">
|
||||
{% set block_id = 'Textarea_Product_Permutation_Variations' %}
|
||||
{% include 'layouts/_shared_store.html' %}
|
||||
</td>
|
||||
<td class="{{ model.FLAG_QUANTITY_STOCK }}">
|
||||
<input class="{{ model.FLAG_QUANTITY_STOCK }}" type="number" min="0" value="{{ permutation.quantity_stock }}" {{ model.ATTR_VALUE_CURRENT }}="{{ permutation.quantity_stock }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ permutation.quantity_stock }}">
|
||||
</td>
|
||||
<td class="{{ model.FLAG_QUANTITY_MIN }}">
|
||||
<input class="{{ model.FLAG_QUANTITY_MIN }}" type="number" min="0" value="{{ permutation.quantity_min }}" {{ model.ATTR_VALUE_CURRENT }}="{{ permutation.quantity_min }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ permutation.quantity_min }}">
|
||||
</td>
|
||||
<td class="{{ model.FLAG_QUANTITY_MAX }}">
|
||||
<input class="{{ model.FLAG_QUANTITY_MAX }}" type="number" min="0" value="{{ permutation.quantity_max }}" {{ model.ATTR_VALUE_CURRENT }}="{{ permutation.quantity_max }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ permutation.quantity_max }}">
|
||||
</td>
|
||||
<td class="{{ model.FLAG_COST_LOCAL_VAT_INCL }}">
|
||||
<strong>{{ permutation.output_currency() }}</strong>{{ permutation.cost_local }}
|
||||
</td>
|
||||
<!-- <td><strong>{{ permutation.output_currency() }}</strong>{ { permutation.get_price_local() }}</td> -->
|
||||
<td class="{{ model.FLAG_DETAIL }}">
|
||||
<a>Detail</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
@@ -1,16 +1,16 @@
|
||||
{% if is_blank_row %}
|
||||
<tr class="{{ model.FLAG_ROW_NEW }}" {{ model.ATTR_ID_CATEGORY }}>
|
||||
<tr class="{{ model.FLAG_ROW_NEW }}" {{ model.ATTR_ID_PRODUCT_CATEGORY }}>
|
||||
<td class="{{ model.FLAG_DISPLAY_ORDER }}">
|
||||
{% include 'components/common/buttons/_slider_display_order.html' %}
|
||||
</td>
|
||||
<td class="{{ model.FLAG_PRODUCT_CATEGORY }}">
|
||||
<textarea class="{{ model.FLAG_PRODUCT_CATEGORY }}" {{ model.ATTR_ID_CATEGORY }} {{ model.ATTR_VALUE_CURRENT }} {{ model.ATTR_VALUE_PREVIOUS }}></textarea>
|
||||
<textarea class="{{ model.FLAG_PRODUCT_CATEGORY }}" {{ model.ATTR_ID_PRODUCT_CATEGORY }} {{ model.ATTR_VALUE_CURRENT }} {{ model.ATTR_VALUE_PREVIOUS }}></textarea>
|
||||
</td>
|
||||
<td class="{{ model.FLAG_NAME }}">
|
||||
<textarea class="{{ model.FLAG_NAME }}" {{ model.ATTR_VALUE_CURRENT }} {{ model.ATTR_VALUE_PREVIOUS }}></textarea>
|
||||
</td>
|
||||
<td class="{{ model.FLAG_VARIATIONS }}">
|
||||
<textarea class="{{ model.FLAG_VARIATIONS }}" {{ model.ATTR_VALUE_CURRENT }} {{ model.ATTR_VALUE_PREVIOUS }}></textarea>
|
||||
<td class="{{ model.FLAG_PRODUCT_VARIATIONS }}">
|
||||
<textarea class="{{ model.FLAG_PRODUCT_VARIATIONS }}" {{ model.ATTR_VALUE_CURRENT }} {{ model.ATTR_VALUE_PREVIOUS }}></textarea>
|
||||
</td>
|
||||
<td class="{{ model.FLAG_ACCESS_LEVEL }}" {{ model.ATTR_ID_ACCESS_LEVEL }}="1" {{ model.FLAG_ACCESS_LEVEL_REQUIRED }}="View">
|
||||
<div class="{{ model.FLAG_ACCESS_LEVEL}}" {{ model.ATTR_ID_ACCESS_LEVEL }}="1">View</div>
|
||||
@@ -31,9 +31,9 @@
|
||||
<td class="{{ model.FLAG_NAME }}">
|
||||
<textarea class="{{ model.FLAG_NAME }}" {{ model.ATTR_VALUE_CURRENT }}="{{ product.name }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ product.name }}">{{ product.name }}</textarea>
|
||||
</td>
|
||||
<td class="{{ model.FLAG_VARIATIONS }}">
|
||||
<td class="{{ model.FLAG_PRODUCT_VARIATIONS }}">
|
||||
{% include 'components/common/inputs/_textarea_product_variation_types.html' %}
|
||||
<textarea class="{{ model.FLAG_VARIATIONS }}" {{ model.ATTR_VALUE_CURRENT }}="{{ product.description }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ product.description }}">{{ product.description }}</textarea>
|
||||
<textarea class="{{ model.FLAG_PRODUCT_VARIATIONS }}" {{ model.ATTR_VALUE_CURRENT }}="{{ product.description }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ product.description }}">{{ product.description }}</textarea>
|
||||
</td>
|
||||
<td class="{{ model.FLAG_ACCESS_LEVEL }}" {{ model.ATTR_ID_ACCESS_LEVEL }}="1" {{ model.FLAG_ACCESS_LEVEL_REQUIRED }}="{{ product.name_access_level_required }}">
|
||||
<div class="{{ model.FLAG_ACCESS_LEVEL}}" {{ model.ATTR_ID_ACCESS_LEVEL }}="{{ product.id_access_level_required }}" {{ model.ATTR_VALUE_CURRENT }}="{{ product.id_access_level_required }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ product.id_access_level_required }}">{{ product.name_access_level_required }}</div>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{% if is_blank_row %}
|
||||
<tr class="{{ model.FLAG_ROW_NEW }}" {{ model.ATTR_ID_CATEGORY }}>
|
||||
<tr class="{{ model.FLAG_ROW_NEW }}" {{ model.ATTR_ID_PRODUCT_CATEGORY }}>
|
||||
<td class="{{ model.FLAG_DISPLAY_ORDER }}">
|
||||
{% include 'components/common/buttons/_slider_display_order.html' %}
|
||||
</td>
|
||||
@@ -12,8 +12,8 @@
|
||||
<td class="{{ model.FLAG_DESCRIPTION }}">
|
||||
<textarea class="{{ model.FLAG_DESCRIPTION }}" {{ model.ATTR_VALUE_CURRENT }} {{ model.ATTR_VALUE_PREVIOUS }}></textarea>
|
||||
</td>
|
||||
<td class="{{ model.FLAG_ACCESS_LEVEL }}" {{ model.ATTR_ID_ACCESS_LEVEL }}="1" {{ model.FLAG_ACCESS_LEVEL_REQUIRED }}="View">
|
||||
<div class="{{ model.FLAG_ACCESS_LEVEL}}" {{ model.ATTR_ID_ACCESS_LEVEL }}="1">View</div>
|
||||
<td class="{{ model.FLAG_ACCESS_LEVEL }}" {{ model.ATTR_VALUE_CURRENT }}="1" {{ model.ATTR_VALUE_PREVIOUS }}="1">
|
||||
<div class="{{ model.FLAG_ACCESS_LEVEL}}" {{ model.ATTR_VALUE_CURRENT }}="1" {{ model.ATTR_VALUE_PREVIOUS }}="1">View</div>
|
||||
</td>
|
||||
<td class="{{ model.FLAG_ACTIVE }}">
|
||||
<input class="{{ model.FLAG_ACTIVE }}" type="checkbox" checked {{ model.ATTR_VALUE_CURRENT }}="true" {{ model.ATTR_VALUE_PREVIOUS }}="true">
|
||||
@@ -34,8 +34,8 @@
|
||||
<td class="{{ model.FLAG_DESCRIPTION }}">
|
||||
<textarea class="{{ model.FLAG_DESCRIPTION }}" {{ model.ATTR_VALUE_CURRENT }}="{{ category.description }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ category.description }}">{{ category.description }}</textarea>
|
||||
</td>
|
||||
<td class="{{ model.FLAG_ACCESS_LEVEL }}" {{ model.ATTR_ID_ACCESS_LEVEL }}="1" {{ model.FLAG_ACCESS_LEVEL_REQUIRED }}="{{ category.name_access_level_required }}">
|
||||
<div class="{{ model.FLAG_ACCESS_LEVEL}}" {{ model.ATTR_ID_ACCESS_LEVEL }}="{{ category.id_access_level_required }}" {{ model.ATTR_VALUE_CURRENT }}="{{ category.id_access_level_required }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ category.id_access_level_required }}">{{ category.name_access_level_required }}</div>
|
||||
<td class="{{ model.FLAG_ACCESS_LEVEL }}" {{ model.ATTR_VALUE_CURRENT }}="{{ category.id_access_level_required }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ category.id_access_level_required }}">
|
||||
<div class="{{ model.FLAG_ACCESS_LEVEL}}" {{ model.ATTR_VALUE_CURRENT }}="{{ category.id_access_level_required }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ category.id_access_level_required }}">{{ category.name_access_level_required }}</div>
|
||||
</td>
|
||||
<td class="{{ model.FLAG_ACTIVE }}">
|
||||
<input class="{{ model.FLAG_ACTIVE }}" type="checkbox" {% if category.active %}checked{% endif %} {{ model.ATTR_VALUE_CURRENT }}="{{ category.active | lower }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ category.active | lower }}">
|
||||
|
||||
163
templates/components/store/_row_product_permutation.html
Normal file
163
templates/components/store/_row_product_permutation.html
Normal file
@@ -0,0 +1,163 @@
|
||||
|
||||
{% if is_blank_row %}
|
||||
<tr class="{{ model.FLAG_ROW_NEW }}" {{ model.ATTR_ID_PERMUTATION }}>
|
||||
<td class="{{ model.FLAG_PRODUCT_CATEGORY }}" {{ model.ATTR_VALUE_CURRENT }}="0" {{ model.ATTR_VALUE_PREVIOUS }}="0">
|
||||
<select class="{{ model.FLAG_PRODUCT_CATEGORY}}" {{ model.ATTR_VALUE_CURRENT }}="0" {{ model.ATTR_VALUE_PREVIOUS }}="0">
|
||||
{% include 'components/common/inputs/_option_blank.html' %}
|
||||
{% for cat in model.category_list_filters.categories %}
|
||||
<option value="{{ cat.id_category }}">{{ cat.name }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
<td class="{{ model.FLAG_PRODUCT }}" {{ model.ATTR_VALUE_CURRENT }}="0" {{ model.ATTR_VALUE_PREVIOUS }}="0">
|
||||
<select class="{{ model.FLAG_PRODUCT }}" {{ model.ATTR_VALUE_CURRENT }}="0" {{ model.ATTR_VALUE_PREVIOUS }}="0">
|
||||
{% include 'components/common/inputs/_option_blank.html' %}
|
||||
{% for product in model.category_list_filters.categories[0].products %}
|
||||
<option value="{{ product.id_product }}">{{ product.name }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
<td class="{{ model.FLAG_PRODUCT_VARIATIONS }} {{ model.FLAG_COLLAPSED}}" {{ model.ATTR_VALUE_CURRENT }} {{ model.ATTR_VALUE_PREVIOUS }}>
|
||||
{% include 'components/store/_preview_product_permutation_variations.html' %}
|
||||
</td>
|
||||
<td class="{{ model.FLAG_DESCRIPTION}}">
|
||||
<textarea class="{{ model.FLAG_DESCRIPTION }}" {{ model.ATTR_VALUE_CURRENT }} {{ model.ATTR_VALUE_PREVIOUS }}></textarea>
|
||||
</td>
|
||||
<td class="{{ model.FLAG_QUANTITY_STOCK }}">
|
||||
<input class="{{ model.FLAG_QUANTITY_STOCK }}" type="number" min="0" value="0" {{ model.ATTR_VALUE_CURRENT }}="0" {{ model.ATTR_VALUE_PREVIOUS }}="0">
|
||||
</td>
|
||||
<td class="{{ model.FLAG_QUANTITY_MIN }}">
|
||||
<input class="{{ model.FLAG_QUANTITY_MIN }}" type="number" min="0" value="1" {{ model.ATTR_VALUE_CURRENT }}="1" {{ model.ATTR_VALUE_PREVIOUS }}="1">
|
||||
</td>
|
||||
<td class="{{ model.FLAG_QUANTITY_MAX }}">
|
||||
<input class="{{ model.FLAG_QUANTITY_MAX }}" type="number" min="0" value="1" {{ model.ATTR_VALUE_CURRENT }}="1" {{ model.ATTR_VALUE_PREVIOUS }}="1">
|
||||
</td>
|
||||
<td class="{{ model.FLAG_COUNT_UNIT_MEASUREMENT_PER_QUANTITY_STEP }}">
|
||||
<input class="{{ model.FLAG_COUNT_UNIT_MEASUREMENT_PER_QUANTITY_STEP }}"
|
||||
type="number" min="0" value="1" {{ model.ATTR_VALUE_CURRENT }}="1" {{ model.ATTR_VALUE_PREVIOUS }}="1">
|
||||
</td>
|
||||
<td class="{{ model.FLAG_UNIT_MEASUREMENT_QUANTITY }}" {{ model.ATTR_VALUE_CURRENT }} {{ model.ATTR_VALUE_PREVIOUS }}>
|
||||
{% include 'components/store/_preview_DDL_product_permutation_unit_measurement_quantity.html' %}
|
||||
</td>
|
||||
<td class="{{ model.FLAG_IS_SUBSCRIPTION }}">
|
||||
<input class="{{ model.FLAG_IS_SUBSCRIPTION }}" type="checkbox" {{ model.ATTR_VALUE_CURRENT }}="false" {{ model.ATTR_VALUE_PREVIOUS }}="false">
|
||||
</td>
|
||||
<td class="{{ model.FLAG_COUNT_UNIT_MEASUREMENT_INTERVAL_RECURRENCE }}">
|
||||
<input class="{{ model.FLAG_COUNT_UNIT_MEASUREMENT_INTERVAL_RECURRENCE }} {{ model.FLAG_COLLAPSED }}"
|
||||
type="number" min="0" value="1" {{ model.ATTR_VALUE_CURRENT }}="1" {{ model.ATTR_VALUE_PREVIOUS }}="1">
|
||||
</td>
|
||||
<td class="{{ model.FLAG_UNIT_MEASUREMENT_INTERVAL_RECURRENCE }}" {{ model.ATTR_VALUE_CURRENT }} {{ model.ATTR_VALUE_PREVIOUS }}>
|
||||
{% include 'components/store/_preview_DDL_product_permutation_interval_recurrence.html' %}
|
||||
</td>
|
||||
<td class="{{ model.FLAG_ID_STRIPE_PRODUCT }}">
|
||||
<input class="{{ model.FLAG_ID_STRIPE_PRODUCT }}" type="text" {{ model.ATTR_VALUE_CURRENT }} {{ model.ATTR_VALUE_PREVIOUS }}>
|
||||
</td>
|
||||
<td class="{{ model.FLAG_DOES_EXPIRE_FASTER_ONCE_UNSEALED }}">
|
||||
<input class="{{ model.FLAG_DOES_EXPIRE_FASTER_ONCE_UNSEALED }}" type="checkbox" {{ model.ATTR_VALUE_CURRENT }}="false" {{ model.ATTR_VALUE_PREVIOUS }}="false">
|
||||
</td>
|
||||
<td class="{{ model.FLAG_COUNT_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED }}">
|
||||
<input class="{{ model.FLAG_COUNT_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED }} {{ model.FLAG_COLLAPSED }}"
|
||||
type="number" min="0" value="1" {{ model.ATTR_VALUE_CURRENT }}="1" {{ model.ATTR_VALUE_PREVIOUS }}="1">
|
||||
</td>
|
||||
<td class="{{ model.FLAG_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED }}" {{ model.ATTR_VALUE_CURRENT }} {{ model.ATTR_VALUE_PREVIOUS }}>
|
||||
{% include 'components/store/_preview_DDL_product_permutation_interval_expiration_unsealed.html' %}
|
||||
</td>
|
||||
<td class="{{ model.FLAG_COST_LOCAL }}">
|
||||
<input class="{{ model.FLAG_COST_LOCAL }}" type="number" min="0" step="0.01"
|
||||
value="0" {{ model.ATTR_VALUE_CURRENT }}="0" {{ model.ATTR_VALUE_PREVIOUS }}>
|
||||
</td>
|
||||
<td class="{{ model.FLAG_CURRENCY_COST }}" {{ model.ATTR_VALUE_CURRENT }} {{ model.ATTR_VALUE_PREVIOUS }}>
|
||||
{% include 'components/store/_preview_DDL_currency.html' %}
|
||||
</td>
|
||||
<td class="{{ model.FLAG_PROFIT_LOCAL_MIN }}">
|
||||
<input class="{{ model.FLAG_PROFIT_LOCAL_MIN }}" type="number" min="0" step="0.01"
|
||||
value="0" {{ model.ATTR_VALUE_CURRENT }}="0" {{ model.ATTR_VALUE_PREVIOUS }}>
|
||||
</td>
|
||||
<td class="{{ model.FLAG_LATENCY_MANUFACTURE_DAYS }}">
|
||||
<input class="{{ model.FLAG_LATENCY_MANUFACTURE_DAYS }}" type="number" min="0" value="1" {{ model.ATTR_VALUE_CURRENT }}="1" {{ model.ATTR_VALUE_PREVIOUS }}>
|
||||
</td>
|
||||
<td class="{{ model.FLAG_ACTIVE }}">
|
||||
<input class="{{ model.FLAG_ACTIVE }}" type="checkbox" {{ model.ATTR_VALUE_CURRENT }}="true" {{ model.ATTR_VALUE_PREVIOUS }}="true" checked>
|
||||
</td>
|
||||
</tr>
|
||||
{% else %}
|
||||
<tr {{ model.ATTR_ID_PRODUCT_PERMUTATION }}="{{ permutation.id_permutation }}">
|
||||
<td class="{{ model.FLAG_PRODUCT_CATEGORY }}" {{ model.ATTR_VALUE_CURRENT }}="{{ permutation.id_category }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ permutation.id_category }}">
|
||||
{% include 'components/store/_preview_DDL_product_category.html' %}
|
||||
</td>
|
||||
<td class="{{ model.FLAG_PRODUCT }}" {{ model.ATTR_VALUE_CURRENT }}="{{ permutation.id_product }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ permutation.id_product }}">
|
||||
{% include 'components/store/_preview_DDL_product.html' %}
|
||||
</td>
|
||||
|
||||
{% set variation_tree = permutation.variation_tree %}
|
||||
{% set str_ids_variations = variation_tree.to_variation_id_pairs_str() if not (variation_tree is none) else '' %}
|
||||
<td class="{{ model.FLAG_PRODUCT_VARIATIONS }} {{ model.FLAG_COLLAPSED }}" {{ model.ATTR_VALUE_CURRENT }}="{{ str_ids_variations }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ str_ids_variations }}">
|
||||
{% include 'components/store/_preview_product_permutation_variations.html' %}
|
||||
</td>
|
||||
<td class="{{ model.FLAG_DESCRIPTION}}" {{ model.ATTR_VALUE_CURRENT }}="{{ permutation.description }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ permutation.description }}">
|
||||
<textarea class="{{ model.FLAG_DESCRIPTION }}" {{ model.ATTR_VALUE_CURRENT }}="{{ permutation.description }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ permutation.description }}">{{ permutation.description }}</textarea>
|
||||
</td>
|
||||
<td class="{{ model.FLAG_QUANTITY_STOCK }}">
|
||||
<input class="{{ model.FLAG_QUANTITY_STOCK }}" type="number" min="0" value="{{ permutation.quantity_stock }}" {{ model.ATTR_VALUE_CURRENT }}="{{ permutation.quantity_stock }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ permutation.quantity_stock }}">
|
||||
</td>
|
||||
<td class="{{ model.FLAG_QUANTITY_MIN }}">
|
||||
<input class="{{ model.FLAG_QUANTITY_MIN }}" type="number" min="0" value="{{ permutation.quantity_min }}" {{ model.ATTR_VALUE_CURRENT }}="{{ permutation.quantity_min }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ permutation.quantity_min }}">
|
||||
</td>
|
||||
<td class="{{ model.FLAG_QUANTITY_MAX }}">
|
||||
<input class="{{ model.FLAG_QUANTITY_MAX }}" type="number" min="0" value="{{ permutation.quantity_max }}" {{ model.ATTR_VALUE_CURRENT }}="{{ permutation.quantity_max }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ permutation.quantity_max }}">
|
||||
</td>
|
||||
<td class="{{ model.FLAG_COUNT_UNIT_MEASUREMENT_PER_QUANTITY_STEP }}">
|
||||
<input class="{{ model.FLAG_COUNT_UNIT_MEASUREMENT_PER_QUANTITY_STEP }}" type="number" min="0" value="{{ permutation.count_unit_measurement_per_quantity_step }}" {{ model.ATTR_VALUE_CURRENT }}="{{ permutation.count_unit_measurement_per_quantity_step }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ permutation.count_unit_measurement_per_quantity_step }}">
|
||||
</td>
|
||||
<td class="{{ model.FLAG_UNIT_MEASUREMENT_QUANTITY }}" {{ model.ATTR_VALUE_CURRENT }}="{{ permutation.id_unit_measurement_quantity }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ permutation.id_unit_measurement_quantity }}">
|
||||
{% include 'components/store/_preview_DDL_product_permutation_unit_measurement_quantity.html' %}
|
||||
</td>
|
||||
<td class="{{ model.FLAG_IS_SUBSCRIPTION }}">
|
||||
<input class="{{ model.FLAG_IS_SUBSCRIPTION }}" type="checkbox" {{ model.ATTR_VALUE_CURRENT }}="{{ permutation.is_subscription }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ permutation.is_subscription }}">
|
||||
</td>
|
||||
<td class="{{ model.FLAG_COUNT_UNIT_MEASUREMENT_INTERVAL_RECURRENCE }}">
|
||||
{% set value = permutation.count_interval_recurrence if permutation.count_interval_recurrence is not none else '' %}
|
||||
<input class="{{ model.FLAG_COUNT_UNIT_MEASUREMENT_INTERVAL_RECURRENCE }} {% if not permutation.is_subscription %}{{ model.FLAG_COLLAPSED }}{% endif %}"
|
||||
type="number" min="0" value="{{ value }}" {{ model.ATTR_VALUE_CURRENT }}="{{ value }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ value }}">
|
||||
</td>
|
||||
|
||||
{% set value = permutation.id_unit_measurement_interval_recurrence if permutation.id_unit_measurement_interval_recurrence is not none else '' %}
|
||||
<td class="{{ model.FLAG_UNIT_MEASUREMENT_INTERVAL_RECURRENCE }}" {{ model.ATTR_VALUE_CURRENT }}="{{ value }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ value }}">
|
||||
{% include 'components/store/_preview_DDL_product_permutation_interval_recurrence.html' %}
|
||||
</td>
|
||||
<td class="{{ model.FLAG_ID_STRIPE_PRODUCT }}">
|
||||
{% set value = permutation.id_stripe_product if permutation.id_stripe_product is not none else '' %}
|
||||
<input class="{{ model.FLAG_ID_STRIPE_PRODUCT }}" type="text" value="{{ value }}" {{ model.ATTR_VALUE_CURRENT }}="{{ value }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ value }}">
|
||||
</td>
|
||||
<td class="{{ model.FLAG_DOES_EXPIRE_FASTER_ONCE_UNSEALED }}">
|
||||
<input class="{{ model.FLAG_DOES_EXPIRE_FASTER_ONCE_UNSEALED }}" type="checkbox" {{ model.ATTR_VALUE_CURRENT }}="{{ permutation.does_expire_faster_once_unsealed }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ permutation.does_expire_faster_once_unsealed }}">
|
||||
</td>
|
||||
<td class="{{ model.FLAG_COUNT_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED }}">
|
||||
{% set value = permutation.count_interval_expiration_unsealed if permutation.count_interval_expiration_unsealed is not none else '' %}
|
||||
<input class="{{ model.FLAG_COUNT_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED }} {% if not permutation.does_expire_faster_once_unsealed %}{{ model.FLAG_COLLAPSED }}{% endif %}"
|
||||
type="number" min="0" value="{{ value }}" {{ model.ATTR_VALUE_CURRENT }}="{{ value }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ value }}">
|
||||
</td>
|
||||
|
||||
{% set value = permutation.id_unit_measurement_interval_expiration_unsealed if permutation.id_unit_measurement_interval_expiration_unsealed is not none else '' %}
|
||||
<td class="{{ model.FLAG_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED }}" {{ model.ATTR_VALUE_CURRENT }}="{{ value }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ value }}">
|
||||
{% include 'components/store/_preview_DDL_product_permutation_interval_expiration_unsealed.html' %}
|
||||
</td>
|
||||
<td class="{{ model.FLAG_COST_LOCAL }}">
|
||||
<input class="{{ model.FLAG_COST_LOCAL }}" type="number" min="0" value="{{ permutation.cost_local }}" {{ model.ATTR_VALUE_CURRENT }}="{{ permutation.cost_local }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ permutation.cost_local }}">
|
||||
</td>
|
||||
|
||||
{% set currency = permutation.currency_cost %}
|
||||
<td class="{{ model.FLAG_CURRENCY_COST }}" {{ model.ATTR_VALUE_CURRENT }}="{{ currency.id_currency }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ currency.id_currency }}">
|
||||
{% include 'components/store/_preview_DDL_currency.html' %}
|
||||
</td>
|
||||
<td class="{{ model.FLAG_PROFIT_LOCAL_MIN }}">
|
||||
<input class="{{ model.FLAG_PROFIT_LOCAL_MIN }}" type="number" min="0" value="{{ permutation.profit_local_min }}" {{ model.ATTR_VALUE_CURRENT }}="{{ permutation.profit_local_min }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ permutation.profit_local_min }}">
|
||||
</td>
|
||||
<td class="{{ model.FLAG_LATENCY_MANUFACTURE_DAYS }}">
|
||||
<input class="{{ model.FLAG_LATENCY_MANUFACTURE_DAYS }}" type="number" min="0" value="{{ permutation.latency_manufacture_days }}" {{ model.ATTR_VALUE_CURRENT }}="{{ permutation.latency_manufacture_days }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ permutation.latency_manufacture_days }}">
|
||||
</td>
|
||||
<td class="{{ model.FLAG_ACTIVE }}">
|
||||
<input class="{{ model.FLAG_ACTIVE }}" type="checkbox" {{ model.ATTR_VALUE_CURRENT }}="{{ permutation.active }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ permutation.active }}" {% if permutation.active %}checked{% endif %}>
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
@@ -11,8 +11,8 @@
|
||||
<td class="{{ model.FLAG_PRODUCT }}">
|
||||
<select class="{{ model.FLAG_PRODUCT }}" {{ model.ATTR_VALUE_CURRENT }} {{ model.ATTR_VALUE_PREVIOUS }}></select>
|
||||
</td>
|
||||
<td class="{{ model.FLAG_VARIATIONS }}">
|
||||
<textarea class="{{ model.FLAG_VARIATIONS }}" {{ model.ATTR_VALUE_CURRENT }} {{ model.ATTR_VALUE_PREVIOUS }}></textarea>
|
||||
<td class="{{ model.FLAG_PRODUCT_VARIATIONS }}">
|
||||
<textarea class="{{ model.FLAG_PRODUCT_VARIATIONS }}" {{ model.ATTR_VALUE_CURRENT }} {{ model.ATTR_VALUE_PREVIOUS }}></textarea>
|
||||
</td>
|
||||
<td class="{{ model.FLAG_COST_LOCAL_VAT_INCL }}">
|
||||
<input class="{{ model.FLAG_COST_LOCAL_VAT_INCL }}" type="number" min="0" value="0" {{ model.ATTR_VALUE_CURRENT }}="0" {{ model.ATTR_VALUE_PREVIOUS }}>
|
||||
@@ -49,7 +49,7 @@
|
||||
{% else %}
|
||||
<tr {{ model.ATTR_ID_STOCK_ITEM }}="{{ stock_item.id_stock_item }}">
|
||||
<td class="{{ model.FLAG_PRODUCT_CATEGORY }}">
|
||||
<select class="{{ model.FLAG_PRODUCT_CATEGORY }}" {{ model.ATTR_VALUE_CURRENT }}="{{ category.id_category }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ category.id_category }}"> <!-- {{ model.ATTR_ID_CATEGORY }}="{{ category.id_category }}" -->
|
||||
<select class="{{ model.FLAG_PRODUCT_CATEGORY }}" {{ model.ATTR_VALUE_CURRENT }}="{{ category.id_category }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ category.id_category }}"> <!-- {{ model.ATTR_ID_PRODUCT_CATEGORY }}="{{ category.id_category }}" -->
|
||||
{% for c in model.category_list.categories %}
|
||||
<option value="{{ c.id_category }}" {% if c.id_category == category.id_category %}selected{% endif %}>{{ c.name }}</option>
|
||||
{% endfor %}
|
||||
@@ -62,9 +62,8 @@
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
<td class="{{ model.FLAG_VARIATIONS }}">
|
||||
{% set block_id = 'Textarea_Product_Permutation_Variations' %}
|
||||
{% include 'layouts/_shared_store.html' %}
|
||||
<td class="{{ model.FLAG_PRODUCT_VARIATIONS }}">
|
||||
{% include 'components/store/_preview_product_permutation_variations.html' %}
|
||||
</td>
|
||||
<td class="{{ model.FLAG_CURRENCY }}">
|
||||
{{ permutation.output_currency() }}
|
||||
|
||||
Reference in New Issue
Block a user