Administration » Historique » Révision 11
Révision 10 (Ludovic Lestrat, 24/04/2018 09:11) → Révision 11/24 (Ludovic Lestrat, 24/04/2018 16:37)
h1. Mode équipe
Pour permettre aux utilisateurs de voir les observations des autres utilisateurs sans pour autant les modifier il faut modifier le fichier :
-Modeles\Filtres\fAppli.php- /Sources/Configuration/[production]/[nom_instance]/Filtres/fAppli.php des Sources
-Commenter la ligne comme ceci :
if (($droit != 'expert') && ($droit != 'admin')) {
//$filter .= ' AND numerisateur = ' . decrypteRSA(APPLI, $_SESSION[APPLI]['numerisateur']['code']);
}-
Décommenter le cas que l'on veut mettre en place
h1. Ajustement de l'outil "Filtre sur emprise"
Pour éviter une montée en charge du CPU lié à l'utilisation de cet outil, il faut modifier deux fichiers comme indiqué sur les pages github :
- Environnement/Outils/FiltreCarte.php : https://github.com/mathieubossaert/obs_occ/commit/6a1a7afc30cb01f97d7de5a1e5811b665c32c2ab
- Sources/Configuration/ConfigUtilisee.php : https://github.com/mathieubossaert/obs_occ/commit/a029fb9206edc9e430c1a0466987e55087bf3347#diff-7be1b306267c9f2d4fc3deb5a0b2c3dc
h1. Optimisation Observateurs et structure
Pour améliorer le temps de filtrage dans l'interface de SICEN Web sur les observateurs et les structures, voici les modifications à apporter.
h2. En base :
<pre>
ALTER TABLE saisie.saisie_observation ADD COLUMN observateurs_pour_tri text;
ALTER TABLE saisie.saisie_observation ADD COLUMN structures_pour_tri text;
ALTER TABLE saisie.suivi_saisie_observation ADD COLUMN observateurs_pour_tri text;
ALTER TABLE saisie.suivi_saisie_observation ADD COLUMN structures_pour_tri text;
CREATE INDEX observateurs_pour_tri_index
ON saisie.saisie_observation
USING gist
(observateurs_pour_tri COLLATE pg_catalog."default" gist_trgm_ops);
CREATE INDEX structures_pour_tri_index
ON saisie.saisie_observation
USING gist
(structures_pour_tri COLLATE pg_catalog."default" gist_trgm_ops);
CREATE OR REPLACE FUNCTION saisie.alimente_observateurs_pour_tri()
RETURNS trigger AS
$BODY$
BEGIN
NEW.observateurs_pour_tri = md.liste_nom_auteur(NEW.observateur);
RETURN NEW;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
CREATE TRIGGER alim_observateurs_pour_tri
BEFORE INSERT OR UPDATE OF observateur
ON saisie.saisie_observation
FOR EACH ROW
EXECUTE PROCEDURE saisie.alimente_observateurs_pour_tri();
CREATE OR REPLACE FUNCTION saisie.alimente_structures_pour_tri()
RETURNS trigger AS
$BODY$
BEGIN
NEW.structures_pour_tri = md.liste_nom_structure(NEW.structure);
RETURN NEW;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
CREATE TRIGGER alim_structures_pour_tri
BEFORE INSERT OR UPDATE OF structure
ON saisie.saisie_observation
FOR EACH ROW
EXECUTE PROCEDURE saisie.alimente_structures_pour_tri();
UPDATE saisie.saisie_observation SET structures_pour_tri = md.liste_nom_structure(structure), observateurs_pour_tri = md.liste_nom_auteur(observateur);
</pre>
h2. Dans l'appli :
h3. Dans Modeles/Adaptations/fGrille.php :
<pre>
[[// $where = str_replace(' observat ', ' md.liste_nom_auteur(observateur) ', $where);
$where = str_replace(' observat ', ' observateurs_pour_tri ', $where);
// $where = str_replace(' struct ', ' md.liste_nom_structure(structure) ', $where);
$where = str_replace(' struct ', ' stuctures_pour_tri ', $where);]]
</pre>
h3. Dans Modeles/GeoJson/gjObs.php :
- remplacer les appels à md.liste_nom_structure(structure) par structures_pour_tri
- remplacer les appels à md.liste_nom_auteur(observateur) par observateurs_pour_tri
h1. Gestion des tri ET des filtres dans l'interface
Afin que les tris restent opérationnels dans le tableau de l'interface, même si un filtre est présent sur un champ, il faut effectuer la modification suivante dans le fichier Sources/Modeles/GeoJson/gjObs.php :
<pre>
if ($limit !== 'AUCUNE') {
$row_number = $start + 1 +$limit;
$req .= 'WHERE row_number > ' . $start . ' AND row_number < ' . $row_number;
$req .= 'order by ' . $sort . ' ' . $dir . ' NULLS LAST;'; // ligne à ajouter
Cf : https://github.com/mathieubossaert/obs_occ/blob/4dfbf9a56b97d9243ad2263d60dda838c8fdbab6/Sources/Modeles/GeoJson/gjObs.php#L45
</pre>
Pour permettre aux utilisateurs de voir les observations des autres utilisateurs sans pour autant les modifier il faut modifier le fichier :
-Modeles\Filtres\fAppli.php- /Sources/Configuration/[production]/[nom_instance]/Filtres/fAppli.php des Sources
-Commenter la ligne comme ceci :
if (($droit != 'expert') && ($droit != 'admin')) {
//$filter .= ' AND numerisateur = ' . decrypteRSA(APPLI, $_SESSION[APPLI]['numerisateur']['code']);
}-
Décommenter le cas que l'on veut mettre en place
h1. Ajustement de l'outil "Filtre sur emprise"
Pour éviter une montée en charge du CPU lié à l'utilisation de cet outil, il faut modifier deux fichiers comme indiqué sur les pages github :
- Environnement/Outils/FiltreCarte.php : https://github.com/mathieubossaert/obs_occ/commit/6a1a7afc30cb01f97d7de5a1e5811b665c32c2ab
- Sources/Configuration/ConfigUtilisee.php : https://github.com/mathieubossaert/obs_occ/commit/a029fb9206edc9e430c1a0466987e55087bf3347#diff-7be1b306267c9f2d4fc3deb5a0b2c3dc
h1. Optimisation Observateurs et structure
Pour améliorer le temps de filtrage dans l'interface de SICEN Web sur les observateurs et les structures, voici les modifications à apporter.
h2. En base :
<pre>
ALTER TABLE saisie.saisie_observation ADD COLUMN observateurs_pour_tri text;
ALTER TABLE saisie.saisie_observation ADD COLUMN structures_pour_tri text;
ALTER TABLE saisie.suivi_saisie_observation ADD COLUMN observateurs_pour_tri text;
ALTER TABLE saisie.suivi_saisie_observation ADD COLUMN structures_pour_tri text;
CREATE INDEX observateurs_pour_tri_index
ON saisie.saisie_observation
USING gist
(observateurs_pour_tri COLLATE pg_catalog."default" gist_trgm_ops);
CREATE INDEX structures_pour_tri_index
ON saisie.saisie_observation
USING gist
(structures_pour_tri COLLATE pg_catalog."default" gist_trgm_ops);
CREATE OR REPLACE FUNCTION saisie.alimente_observateurs_pour_tri()
RETURNS trigger AS
$BODY$
BEGIN
NEW.observateurs_pour_tri = md.liste_nom_auteur(NEW.observateur);
RETURN NEW;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
CREATE TRIGGER alim_observateurs_pour_tri
BEFORE INSERT OR UPDATE OF observateur
ON saisie.saisie_observation
FOR EACH ROW
EXECUTE PROCEDURE saisie.alimente_observateurs_pour_tri();
CREATE OR REPLACE FUNCTION saisie.alimente_structures_pour_tri()
RETURNS trigger AS
$BODY$
BEGIN
NEW.structures_pour_tri = md.liste_nom_structure(NEW.structure);
RETURN NEW;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
CREATE TRIGGER alim_structures_pour_tri
BEFORE INSERT OR UPDATE OF structure
ON saisie.saisie_observation
FOR EACH ROW
EXECUTE PROCEDURE saisie.alimente_structures_pour_tri();
UPDATE saisie.saisie_observation SET structures_pour_tri = md.liste_nom_structure(structure), observateurs_pour_tri = md.liste_nom_auteur(observateur);
</pre>
h2. Dans l'appli :
h3. Dans Modeles/Adaptations/fGrille.php :
<pre>
[[// $where = str_replace(' observat ', ' md.liste_nom_auteur(observateur) ', $where);
$where = str_replace(' observat ', ' observateurs_pour_tri ', $where);
// $where = str_replace(' struct ', ' md.liste_nom_structure(structure) ', $where);
$where = str_replace(' struct ', ' stuctures_pour_tri ', $where);]]
</pre>
h3. Dans Modeles/GeoJson/gjObs.php :
- remplacer les appels à md.liste_nom_structure(structure) par structures_pour_tri
- remplacer les appels à md.liste_nom_auteur(observateur) par observateurs_pour_tri
h1. Gestion des tri ET des filtres dans l'interface
Afin que les tris restent opérationnels dans le tableau de l'interface, même si un filtre est présent sur un champ, il faut effectuer la modification suivante dans le fichier Sources/Modeles/GeoJson/gjObs.php :
<pre>
if ($limit !== 'AUCUNE') {
$row_number = $start + 1 +$limit;
$req .= 'WHERE row_number > ' . $start . ' AND row_number < ' . $row_number;
$req .= 'order by ' . $sort . ' ' . $dir . ' NULLS LAST;'; // ligne à ajouter
Cf : https://github.com/mathieubossaert/obs_occ/blob/4dfbf9a56b97d9243ad2263d60dda838c8fdbab6/Sources/Modeles/GeoJson/gjObs.php#L45
</pre>