[openmairie-framework-Commits] r4950 - in openmairie_exemple/branches/om5_rad: . obj

0 views
Skip to first unread message

fray...@users.adullact.net

unread,
May 1, 2024, 11:37:30 AMMay 1
to openmairie...@googlegroups.com
Author: fraynaud
Date: 2024-05-01 17:37:27 +0200 (Wed, 01 May 2024)
New Revision: 4950

Modified:
openmairie_exemple/branches/om5_rad/HISTORY.txt
openmairie_exemple/branches/om5_rad/TODO.txt
openmairie_exemple/branches/om5_rad/obj/om_forms.class.php
openmairie_exemple/branches/om5_rad/obj/om_tables.class.php
Log:
om_tables : methode de remise en ordre par defaut liste et champs 01/05/2024
om_forms : debug action 6 et 7




Modified: openmairie_exemple/branches/om5_rad/HISTORY.txt
===================================================================
--- openmairie_exemple/branches/om5_rad/HISTORY.txt 2024-05-01 13:09:34 UTC (rev 4949)
+++ openmairie_exemple/branches/om5_rad/HISTORY.txt 2024-05-01 15:37:27 UTC (rev 4950)
@@ -143,7 +143,7 @@
* Evolution : composition om_forms méthode 6 et 7 pour affichage ordre dans la liste - controle position et position_liste vide 01/05/2024
* Evolution : om_gen_plus : liste ordre affichage + entête colone avec libelle_court 01/05/2024
* Evolution : om_forms + om_gen_plus : changement du champs "double précision" en "numeric" 01/05/2024
-
+* Evolution : om_tables : methode de remise en ordre par défaut liste et champs 01/05/2024




Modified: openmairie_exemple/branches/om5_rad/TODO.txt
===================================================================
--- openmairie_exemple/branches/om5_rad/TODO.txt 2024-05-01 13:09:34 UTC (rev 4949)
+++ openmairie_exemple/branches/om5_rad/TODO.txt 2024-05-01 15:37:27 UTC (rev 4950)
@@ -97,21 +97,6 @@
https://public.dalibo.com/exports/formation/manuels/modules/n4/n4.handout.html
https://public.dalibo.com/exports/formation/manuels/modules/p1/p1.handout.html

--> pg_proc
-Code et nom de la procédure
-SELECT proname, prosrc from pg_proc
- inner join pg_namespace on pg_namespace.oid=pg_proc.pronamespace
- where nspname='openhs';
--> information_schema.triggers - tragers sur les event_object_name
-SELECT trigger_schema, trigger_name,
-event_manipulation, event_object_table,
-action_order, action_condition,
-action_statement, action_orientation, action_timing
-from information_schema.triggers
-where trigger_schema = 'openhs'
-
-
-
* grid system tb
public -> css grid-2-6 class css qui prend 2/6 éme bloc
non applicable avec om_layout
@@ -120,13 +105,11 @@

* ab -> aspect présentation et non calcul / 100% pour trigger et vue sql
==
-- mettre un libelle court pour colonne (libellé entête de colone om_champs (lib court) ab 16/04/2024)
- plusieurs clés scondaires sur une même table
- manual select pour boolean ou autre ? maîtrise des noms de valeurs

* fr
==
-- passer double précision en numéric -> plus facile pour format
- systeme de gestion documentaire avec les comments voire une doc en ligne
- graphique uml
- mettre en place les triggers champs calculés
@@ -140,7 +123,6 @@
- possible hébergement / intégrateur - éditeur libre

* Bugs ==========================================================================
-- composition om_forms bug appel méthode om_champs -> debugué action 5 du coup
- bug : om_tables : si existe vue -> la suppression créé une erreur : a voir
- bug : nommage de champs et tables si apostrophe ou guillement dans le nom (setValF)

@@ -148,10 +130,5 @@
- om_champs : en modification data_type = cle secondaire -> accés à tous les types
- cle secondaire ne doit pas avoir accès à calcul ?
- om_champs : type (om) sql -> virer du data_type
-- composition ordre dans la liste des champs affichés
-- composition ordre dans la liste des champs affichés -> cas des calculs en réel dans consultation
- les champs sql sont exclus du formulaire (-> liste)
- les champs hidden sont en consultation et ne sont pas exclus
- désamorcer le hidden en delete : passage uniquement en hidden dans le form
-- composition : voir si champ n est pas obligatoire pour mise en hidden
+


Modified: openmairie_exemple/branches/om5_rad/obj/om_forms.class.php
===================================================================
--- openmairie_exemple/branches/om5_rad/obj/om_forms.class.php 2024-05-01 13:09:34 UTC (rev 4949)
+++ openmairie_exemple/branches/om5_rad/obj/om_forms.class.php 2024-05-01 15:37:27 UTC (rev 4950)
@@ -193,11 +193,12 @@

$form->setType("comment", "hidden"); // documentation enligne
$form->setType("parametres", "hidden"); // documentation enligne
- //$form->setType("bloc", "hidden"); // utiliser composition
- //$form->setType("position", "hidden");// utiliser composition
+ $form->setType("bloc", "hidden"); // utiliser composition
+ $form->setType("position", "hidden");// utiliser composition
$form->setType("character_maximum_length", "hidden"); // ne sert pas
//$form->setType("table_name", "hidden"); // clé secondaire -> formulaire
$form->setType("column_default", "hidden"); // ne sert pas, si champs hidden renvoie un carctère vide et non un null ?
+ $form->setType("position_liste", "hidden");// utiliser composition
}

function setLib(&$form,$maj) {

Modified: openmairie_exemple/branches/om5_rad/obj/om_tables.class.php
===================================================================
--- openmairie_exemple/branches/om5_rad/obj/om_tables.class.php 2024-05-01 13:09:34 UTC (rev 4949)
+++ openmairie_exemple/branches/om5_rad/obj/om_tables.class.php 2024-05-01 15:37:27 UTC (rev 4950)
@@ -39,7 +39,7 @@
"portlet" => array(
"type" => "action-direct-with-confirmation",
"libelle" => _("supprimer le formulaire"),
- "order" => 40,
+ "order" => 45,
"class" => "copy-16",
),
"method" => "supprimer_formulaire",
@@ -54,7 +54,7 @@
"portlet" => array(
"type" => "action-direct-with-confirmation",
"libelle" => _("vider la table"),
- "order" => 40,
+ "order" => 50,
"class" => "copy-16",
),
"method" => "vider",
@@ -63,7 +63,18 @@
"is_table_non_vide")
);

-
+ // mettre en ordre les champs en liste et form
+ $this->class_actions[7] = array(
+ "identifier" => "ordre",
+ "portlet" => array(
+ "type" => "action-direct-with-confirmation",
+ "libelle" => _("Ordre des champs par défaut"),
+ "order" => 55,
+ "class" => "copy-16",
+ ),
+ "method" => "ordonner_champs",
+ "permission_suffix" => "om_tables",
+ );

}

@@ -577,5 +588,67 @@
}
}

+ function ordonner_champs(){
+ $table = $this->getParameter('idx');
+ $this->addToMessage(_("remise en ordre des champs par défaut"));
+ // position en formulaire
+ $sql = " select om_forms.column_name, om_forms.table_name, data_type, ";
+ $sql .= " parametres->>'bloc' as bloc, parametres->>'position' as position, ";
+ $sql .= " parametres->>'type' as type ";
+ $sql .= " FROM ".DB_PREFIXE."om_forms left join ".DB_PREFIXE."om_champs ";
+ $sql .= " on om_champs.column_name=om_forms.column_name ";
+ $sql .= " where om_forms.table_name = '".$table."'";
+ //$this->addToMessage($sql);
+ $res = $this->f->db->query($sql);
+ $this->f->addToLog("app/om_champs_class.php: db->query(".$sql."\", ".print_r($temp, true).");", DEBUG_MODE);
+ $this->f->isDatabaseError($res);
+ $position=0;
+ $bloc= 'C1';
+ $this->addToMessage("<b>"._("formulaire")."</b>");
+ while ($row =& $res->fetchRow(DB_FETCHMODE_ASSOC)) {
+ $position++;
+ // update bloc
+ $sql = " update ".DB_PREFIXE."om_forms set parametres = jsonb_set(parametres, '{bloc}', '\"".$bloc."\"')";
+ $sql .= " WHERE column_name = '".$row['column_name']."'" ;
+ $res3 = $this->f->db->query($sql);
+ $this->f->addToLog(__METHOD__."(): mode update(\"".$sql."\", ".print_r($temp, true).");", DEBUG_MODE);
+ $this->f->isDatabaseError($res3);
+ // update position
+ $sql = " update ".DB_PREFIXE."om_forms set parametres = jsonb_set(parametres, '{position}', '\"".$position."\"')";
+ $sql .= " WHERE column_name = '".$row['column_name']."'" ;
+ $res2 = $this->f->db->query($sql);
+ $this->f->addToLog(__METHOD__."(): mode update(\"".$sql."\", ".print_r($temp, true).");", DEBUG_MODE);
+ $this->f->isDatabaseError($res2);
+ $this->addToMessage(" - ".$row['column_name']." : "._("position")." -> ".$position." | "._("bloc")." -> ".$bloc);
+ }
+ // position en liste
+ //$this->addToMessage($position." ".intval($res));
+ $sql = " select om_forms.column_name, om_forms.table_name, data_type, ";
+ $sql .= " parametres->>'position_liste' as position_liste, ";
+ $sql .= " parametres->>'type' as type, parametres->>'liste' as liste ";
+ $sql .= " FROM ".DB_PREFIXE."om_forms left join ".DB_PREFIXE."om_champs ";
+ $sql .= " on om_champs.column_name=om_forms.column_name ";
+ $sql .= " where om_forms.table_name = '".$table."' and parametres->>'liste'='1' ";
+ //$this->addToMessage($sql);
+ $res = $this->f->db->query($sql);
+ $this->f->addToLog("app/om_champs_class.php: db->query(".$sql."\", ".print_r($temp, true).");", DEBUG_MODE);
+ $this->f->isDatabaseError($res);
+ $position=0;
+ $this->addToMessage("<b>"._("liste")."</b>");
+ while ($row =& $res->fetchRow(DB_FETCHMODE_ASSOC)) {
+ $position++;
+ // update position
+ $sql = " update ".DB_PREFIXE."om_forms set parametres = jsonb_set(parametres, '{position_liste}', '\"".$position."\"')";
+ $sql .= " WHERE column_name = '".$row['column_name']."'" ;
+ // $this->addToMessage($sql);
+ $res2 = $this->f->db->query($sql);
+ //$this->f->addToLog(__METHOD__."(): mode update(\"".$sql."\", ".print_r($temp, true).");", DEBUG_MODE);
+ $this->f->isDatabaseError($res2);
+ $this->addToMessage(" - ".$row['column_name']." : "._("position")." -> ".$position);
+ }
+ $this->db->commit();

+ }
+
+
}

Reply all
Reply to author
Forward
0 new messages