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

0 views
Skip to first unread message

fray...@users.adullact.net

unread,
Apr 25, 2024, 12:59:59 PMApr 25
to openmairie...@googlegroups.com
Author: fraynaud
Date: 2024-04-25 18:59:56 +0200 (Thu, 25 Apr 2024)
New Revision: 4942

Modified:
openmairie_exemple/branches/om5_rad/HISTORY.txt
openmairie_exemple/branches/om5_rad/TODO.txt
openmairie_exemple/branches/om5_rad/obj/om_vues.class.php
Log:
ajout modif et sup de vues




Modified: openmairie_exemple/branches/om5_rad/HISTORY.txt
===================================================================
--- openmairie_exemple/branches/om5_rad/HISTORY.txt 2024-04-25 16:25:35 UTC (rev 4941)
+++ openmairie_exemple/branches/om5_rad/HISTORY.txt 2024-04-25 16:59:56 UTC (rev 4942)
@@ -131,8 +131,8 @@
* Evolution : om_vues : affichage des vues - a terme suppression, modification, ajout 25/04/2024
* Evolution : om_actions : ajout des actions à terme : édition, ajouter, modifier, supprimer 25/04/2024
* Evolution : om_champs suppression vue et table 25/04/2024
+* Evolution : mise à niveau install et om_setup_config.php

-
* bug : om_tables : si existe vue -> la suppression créé une erreur : a voir

4.10.0 (29/11/2022

Modified: openmairie_exemple/branches/om5_rad/TODO.txt
===================================================================
--- openmairie_exemple/branches/om5_rad/TODO.txt 2024-04-25 16:25:35 UTC (rev 4941)
+++ openmairie_exemple/branches/om5_rad/TODO.txt 2024-04-25 16:59:56 UTC (rev 4942)
@@ -10,20 +10,11 @@
* Evolution om_tables : moteur de recherche si om_champs affiché en liste. ok ?
* a voir manual select pour boolean tous-oui false-true

-Calcul en liste -> champs virtuel -
+om_champs : type (om) sql -> virer le data_type postgres

-- affichage en liste de champs
-- pas de valorisation en setValF
-- type hidden en maj / et hiddenstatic en affichage
-- pas de création de champ

+

-* Evolution : calcul dans une liste de data de sous formulaire avec automatisation d'une vue:
- ex: nombre d'ouvrages empruntés par un emprunteur de bibliothèque
- -> vue ou champs réel ?
- - cumuls en ajouter et modifier après si cumul de sous formulaire
- - vue en agrégat sur un champ calcul-fictif hidden
-
Calcul en triggers om
* si apostrophe alors mettre 2 ' en saisie dans champs calcul pour ne pas avoir d erreur en sql comment -> date(''Y-m-d'')
évolution pb d ordre dans les champs calcul
@@ -61,6 +52,13 @@

*** agregat avec les vues

+* Evolution : calcul dans une liste de data de sous formulaire avec automatisation d'une vue:
+ ex: nombre d'ouvrages empruntés par un emprunteur de bibliothèque
+ -> vue ou champs réel ?
+ - cumuls en ajouter et modifier après si cumul de sous formulaire
+ - vue en agrégat sur un champ calcul-fictif hidden
+
+
CREATE OR REPLACE VIEW AS cumul_champsousform_form
SELECT form.cle_primaire
sum(sousform.champ) AS cumul_champ
@@ -80,13 +78,6 @@
sum article.montant_ht
famille = pk + table

-* information_schema.view
-view_catalog "om5_rad";
-view_schema "om5";
-view_name "article_montant_ht";
-table_catalog "om5_rad";
-table_schema "om5";sv
-table_name"article"

-> pb si creation de vue pour supprimer table -> drop table cascade


Modified: openmairie_exemple/branches/om5_rad/obj/om_vues.class.php
===================================================================
--- openmairie_exemple/branches/om5_rad/obj/om_vues.class.php 2024-04-25 16:25:35 UTC (rev 4941)
+++ openmairie_exemple/branches/om5_rad/obj/om_vues.class.php 2024-04-25 16:59:56 UTC (rev 4942)
@@ -8,17 +8,111 @@

class om_vues extends om_vues_gen {

- /*
- function getFormTitle($ent) {
- //
- $out = ""$ent;
- if ($this->getVal($this->clePrimaire) != "") {
- $out .= "<span class=\"libelle\"> -> ".$this->get_default_libelle()."</span>";
- }
- return $out;
+ function setType(&$form,$maj) {
+ parent::setType($form, $maj);
+ if($maj==0){
+ $form->setType("table_schema", "hiddenstatic");
+ }
+ if($maj==1){
+ $form->setType("table_schema", "hiddenstatic");
+ }
}
- */

+ function ajouter($val = array(), &$dnu1 = null, $dnu2 = null) {
+ // Begin
+ $this->begin_treatment(__METHOD__);
+ // Mutateur de valF
+ $this->setValF($val);
+ // verifier
+ // si le nom de la table n'existe pas
+ $this->verifier($val, $this->f->db, null);
+ //$this->setValFAjout($val); -> ne marche pas et pas de remontée de messages -> mis en verifier()
+ if ($this->correct) {
+ // creation de la table + clé primaire
+ $sql = "create or replace view ".DB_PREFIXE.$this->valF['table_name']." as ";
+ $sql .= $this->valF['view_definition']." ";
+ $res = $this->f->db->query($sql);
+ if ($this->f->isDatabaseError($res, true)) {
+ // Appel de la methode de recuperation des erreurs
+ $this->addToMessage($this->valF['table_name']." ".__("vue non créé")." ".$sql);
+ $this->addToMessage($res->getDebugInfo());
+ $this->correct = false;
+ // Return
+ return $this->end_treatment(__METHOD__, false);
+ }else{
+ $this->addToMessage("creation table ".$this->valF['table_name']);
+ }
+ }else {
+ $this->addToMessage("<br/>".__("vue non créé")."<br/>");
+ $this->addToLog(__METHOD__."(): ".$message, VERBOSE_MODE);
+ // Return
+ return $this->end_treatment(__METHOD__, false);
+ }
+ return $this->end_treatment(__METHOD__, true);
+ }

+ function modifier($val = array(), &$dnu1 = null, $dnu2 = null) {
+ // Begin
+ $this->begin_treatment(__METHOD__);
+ // Mutateur de valF
+ $this->setValF($val);
+ // verifier
+ // si le nom de la table n'existe pas
+ $this->verifier($val, $this->f->db, null);
+ //$this->setValFAjout($val); -> ne marche pas et pas de remontée de messages -> mis en verifier()
+ if ($this->correct) {
+ // creation de la table + clé primaire
+ $sql = "create or replace view ".DB_PREFIXE.$this->valF['table_name']." as ";
+ $sql .= $this->valF['view_definition']." ";
+ $res = $this->f->db->query($sql);
+ if ($this->f->isDatabaseError($res, true)) {
+ // Appel de la methode de recuperation des erreurs
+ $this->addToMessage($this->valF['table_name']." ".__("vue non créé")." ".$sql);
+ $this->addToMessage($res->getDebugInfo());
+ $this->correct = false;
+ // Return
+ return $this->end_treatment(__METHOD__, false);
+ }else{
+ $this->addToMessage("modification vue ".$this->valF['table_name']);
+ }
+ }else {
+ $this->addToMessage("<br/>".__("vue non modifiée")."<br/>");
+ $this->addToLog(__METHOD__."(): ".$message, VERBOSE_MODE);
+ // Return
+ return $this->end_treatment(__METHOD__, false);
+ }
+ return $this->end_treatment(__METHOD__, true);
+ }

+ function supprimer($val = array(), &$dnu1 = null, $dnu2 = null) {
+ // Begin
+ $this->begin_treatment(__METHOD__);
+ // Mutateur de valF
+ $this->setValF($val);
+ if ($this->correct) {
+ // creation de la table + clé primaire
+ $sql = "drop view ".DB_PREFIXE.$this->valF['table_name']." ";
+ $res = $this->f->db->query($sql);
+ if ($this->f->isDatabaseError($res, true)) {
+ // Appel de la methode de recuperation des erreurs
+ $this->addToMessage($this->valF['table_name']." ".__("vue non supprimmée")." ".$sql);
+ $this->addToMessage($res->getDebugInfo());
+ $this->correct = false;
+ // Return
+ return $this->end_treatment(__METHOD__, false);
+ }else{
+ $this->addToMessage("suppression ".$this->valF['table_name']);
+ }
+ }else {
+ $this->addToMessage("<br/>".__("vue non supprimée")."<br/>");
+ $this->addToLog(__METHOD__."(): ".$message, VERBOSE_MODE);
+ // Return
+ return $this->end_treatment(__METHOD__, false);
+ }
+ return $this->end_treatment(__METHOD__, true);
+ }
+
+
+
+
}

Reply all
Reply to author
Forward
0 new messages