Amélioration filtre par catégorie

This commit is contained in:
Jean-Christophe Engel 2026-01-20 10:20:25 +01:00
parent feef51361e
commit 125fcf0250
3 changed files with 95 additions and 43 deletions

View file

@ -4,12 +4,37 @@
inventaire des entrées/sorties des matériels permanents inventaire des entrées/sorties des matériels permanents
*}} *}}
{{* filtrer selon la catégorie *}}
{{if $_GET.cat_key == null}}
{{if $module.config.stock_cat_key != null}}
{{:assign selected_category=$module.config.stock_cat_key}}
{{:assign cat_key=$selected_category|quote_sql}}
{{else}}
{{:assign selected_category=null}}
{{:save key="config" stock_cat_key=null}}
{{/if}}
{{elseif $_GET.cat_key == -1}}
{{:assign selected_category=null}}
{{:save key="config" stock_cat_key=null}}
{{else}}
{{:assign selected_category=$_GET.cat_key}}
{{:assign cat_key=$selected_category|quote_sql}}
{{:save key="config" stock_cat_key=$selected_category}}
{{/if}}
{{* condition de filtrage *}}
{{if $selected_category != null}}
{{:assign cat_condition="$$.category = %s"|args:$cat_key}}
{{else}}
{{:assign cat_condition="1"}}
{{/if}}
{{* Sélecteur catégories *}} {{* Sélecteur catégories *}}
{{:assign var="options." value="" label="Toutes les catégories" href="?prop=1"}} {{:assign var="cat_options." value="" label="Toutes les catégories" href="?cat_key=-1&prop=1"}}
{{#load type="category" order="$$.name"}} {{#load type="category" order="$$.name"}}
{{:assign var="categories.%s"|args:$key value=$name}} {{:assign var="categories.%s"|args:$key value=$name}}
{{:assign {{:assign
var="options." var="cat_options."
value=$key value=$key
label=$name label=$name
href="?cat_key=%s&prop=1"|args:$key href="?cat_key=%s&prop=1"|args:$key
@ -20,8 +45,8 @@
<legend>Filtrer par catégorie</legend> <legend>Filtrer par catégorie</legend>
{{:dropdown {{:dropdown
title="Filtrer par catégorie" title="Filtrer par catégorie"
options=$options options=$cat_options
value="%s"|args:$_GET.cat_key value="%s"|args:$selected_category
}} }}
</fieldset> </fieldset>
@ -29,14 +54,6 @@
<p class="help">Inventaire des matériels propriété de l'association</p> <p class="help">Inventaire des matériels propriété de l'association</p>
</div> </div>
{{* filtrer selon la catégorie *}}
{{if $_GET.cat_key == null}}
{{:assign condition="1"}}
{{else}}
{{:assign cat_key=$_GET.cat_key|quote_sql}}
{{:assign condition="$$.category = %s"|args:$cat_key}}
{{/if}}
{{#list {{#list
select=" select="
$$.name AS 'Matériel' ; $$.name AS 'Matériel' ;
@ -48,7 +65,7 @@
(SELECT $$.stock - $$.out) AS 'Disponible' (SELECT $$.stock - $$.out) AS 'Disponible'
" "
type="equipment" type="equipment"
where="$$.status <> 'archived' AND $$.stock NOT NULL AND %s"|args:$condition where="$$.status <> 'archived' AND $$.stock NOT NULL AND %s"|args:$cat_condition
order=1 order=1
}} }}
{{:assign var=cat_name from=categories.%s|args:$category}} {{:assign var=cat_name from=categories.%s|args:$category}}

View file

@ -4,12 +4,37 @@
inventaire des entrées/sorties des matériels temporaires inventaire des entrées/sorties des matériels temporaires
*}} *}}
{{* filtrer selon la catégorie *}}
{{if $_GET.cat_key == null}}
{{if $module.config.temp_cat_key != null}}
{{:assign selected_category=$module.config.temp_cat_key}}
{{:assign cat_key=$selected_category|quote_sql}}
{{else}}
{{:assign selected_category=null}}
{{:save key="config" temp_cat_key=null}}
{{/if}}
{{elseif $_GET.cat_key == -1}}
{{:assign selected_category=null}}
{{:save key="config" temp_cat_key=null}}
{{else}}
{{:assign selected_category=$_GET.cat_key}}
{{:assign cat_key=$selected_category|quote_sql}}
{{:save key="config" temp_cat_key=$selected_category}}
{{/if}}
{{* condition de filtrage *}}
{{if $selected_category != null}}
{{:assign cat_condition="$$.category = %s"|args:$cat_key}}
{{else}}
{{:assign cat_condition="1"}}
{{/if}}
{{* Sélecteur catégories *}} {{* Sélecteur catégories *}}
{{:assign var="options." value="" label="Toutes les catégories" href="?prop=0"}} {{:assign var="cat_options." value="" label="Toutes les catégories" href="?cat_key=-1&prop=0"}}
{{#load type="category" order="$$.name"}} {{#load type="category" order="$$.name"}}
{{:assign var="categories.%s"|args:$key value=$name}} {{:assign var="categories.%s"|args:$key value=$name}}
{{:assign {{:assign
var="options." var="cat_options."
value=$key value=$key
label=$name label=$name
href="?cat_key=%s&prop=0"|args:$key href="?cat_key=%s&prop=0"|args:$key
@ -20,8 +45,8 @@
<legend>Filtrer par catégorie</legend> <legend>Filtrer par catégorie</legend>
{{:dropdown {{:dropdown
title="Filtrer par catégorie" title="Filtrer par catégorie"
options=$options options=$cat_options
value="%s"|args:$_GET.cat_key value="%s"|args:$selected_category
}} }}
</fieldset> </fieldset>
@ -29,14 +54,6 @@
<p class="help">Inventaire des matériels empruntés ou loués</p> <p class="help">Inventaire des matériels empruntés ou loués</p>
</div> </div>
{{* filtrer selon la catégorie *}}
{{if $_GET.cat_key == null}}
{{:assign condition="1"}}
{{else}}
{{:assign cat_key=$_GET.cat_key|quote_sql}}
{{:assign condition="$$.category = %s"|args:$cat_key}}
{{/if}}
{{#list {{#list
select=" select="
$$.name AS 'Matériel' ; $$.name AS 'Matériel' ;
@ -46,7 +63,7 @@
$$.notowned AS 'Quantité' $$.notowned AS 'Quantité'
" "
type="equipment" type="equipment"
where="$$.status <> 'archived' AND $$.notowned != 0 AND %s"|args:$condition where="$$.status <> 'archived' AND $$.notowned != 0 AND %s"|args:$cat_condition
order=1 order=1
}} }}
{{:assign var=cat_name from=categories.%s|args:$category}} {{:assign var=cat_name from=categories.%s|args:$category}}

View file

@ -13,12 +13,41 @@
{{* récupérer la config des entrées/sorties *}} {{* récupérer la config des entrées/sorties *}}
{{:include file="./_get_config.html" keep="config"}} {{:include file="./_get_config.html" keep="config"}}
{{* filtrer selon la catégorie *}}
{{if $_GET.cat_key == null}}
{{if $module.config.hist_cat_key != null}}
{{:assign selected_category=$module.config.hist_cat_key}}
{{:assign cat_key=$selected_category|quote_sql}}
{{else}}
{{:assign selected_category=null}}
{{:save key="config" hist_cat_key=null}}
{{/if}}
{{elseif $_GET.cat_key == -1}}
{{:assign selected_category=null}}
{{:save key="config" hist_cat_key=null}}
{{else}}
{{:assign selected_category=$_GET.cat_key}}
{{:assign cat_key=$selected_category|quote_sql}}
{{:save key="config" hist_cat_key=$selected_category}}
{{/if}}
{{* condition de filtrage *}}
{{if $selected_category != null}}
{{:assign cat_condition="(SELECT key
FROM @TABLE AS cat
WHERE cat.key = (SELECT $$.category
FROM @TABLE AS mat
WHERE mat.key = @TABLE.$$.equipment)) = '%s'"|args:$selected_category}}
{{else}}
{{:assign cat_condition=1}}
{{/if}}
{{* Sélecteur catégories *}} {{* Sélecteur catégories *}}
{{:assign var="options." value="" label="Toutes les catégories" href="?"}} {{:assign var="cat_options." value="" label="Toutes les catégories" href="?cat_key=-1"}}
{{#load type="category" order="$$.name"}} {{#load type="category" order="$$.name"}}
{{:assign var="categories.%s"|args:$key value=$name}} {{:assign var="categories.%s"|args:$key value=$name}}
{{:assign {{:assign
var="options." var="cat_options."
value=$key value=$key
label=$name label=$name
href="?cat_key=%s"|args:$key href="?cat_key=%s"|args:$key
@ -29,8 +58,8 @@
<legend>Filtrer par catégorie</legend> <legend>Filtrer par catégorie</legend>
{{:dropdown {{:dropdown
title="Filtrer par catégorie" title="Filtrer par catégorie"
options=$options options=$cat_options
value="%s"|args:$_GET.cat_key value="%s"|args:$selected_category
}} }}
</fieldset> </fieldset>
@ -38,18 +67,7 @@
<p class="help">Historique de tous les mouvements de matériel</p> <p class="help">Historique de tous les mouvements de matériel</p>
</div> </div>
{{* condition de filtrage *}} {{* lister les mouvements *}}
{{if $_GET.cat_key != null}}
{{:assign condition="(SELECT key
FROM @TABLE AS cat
WHERE cat.key = (SELECT $$.category
FROM @TABLE AS mat
WHERE mat.key = @TABLE.$$.equipment)) = '%s'"|args:$_GET.cat_key}}
{{else}}
{{:assign condition=1}}
{{/if}}
{{* lister tous les mouvements *}}
{{#list {{#list
type="movement" type="movement"
select="($$.date || '_' || substr('000000' || id, -6, 6)) AS 'Date'; select="($$.date || '_' || substr('000000' || id, -6, 6)) AS 'Date';
@ -69,7 +87,7 @@
END as 'Stockage'; END as 'Stockage';
$$.comment AS 'Commentaire' $$.comment AS 'Commentaire'
"|args:$config.user_fields.name_sql "|args:$config.user_fields.name_sql
where="%s"|args:$condition where="%s"|args:$cat_condition
order=1 order=1
max=50 max=50
desc=true desc=true