[openresultat-Commits] r1052 - in branches/2.0.0-develop: app app/js obj tests

0 views
Skip to first unread message

cga...@hephaestos.ovh.adullact.org

unread,
May 5, 2021, 1:39:05 PM5/5/21
to openmairie-...@googlegroups.com
Author: cgarcin
Date: 2021-05-05 19:39:03 +0200 (Wed, 05 May 2021)
New Revision: 1052

Modified:
branches/2.0.0-develop/app/js/script.js
branches/2.0.0-develop/app/localisation_plan_edit.php
branches/2.0.0-develop/obj/election.class.php
branches/2.0.0-develop/obj/plan_election.class.php
branches/2.0.0-develop/tests/031_web.robot
Log:
Correction probleme affichage de la vue de placement des unites sur le plan (en remplcant les f1 par des f2)
L'action web a ete supprime du portlet de l'election
Les actions supprimer et reset de l'election ne sont accessible que pendant l'etape de parametrage

L'action et la methode de transfert du parametrage des plans ont ete supprime
L'action de mise a jour des plans a ete deplace dans le portlet des plans de l'election

Mise a jour du test web suite aux modifications


Modified: branches/2.0.0-develop/app/js/script.js
===================================================================
--- branches/2.0.0-develop/app/js/script.js 2021-05-05 15:11:27 UTC (rev 1051)
+++ branches/2.0.0-develop/app/js/script.js 2021-05-05 17:39:03 UTC (rev 1052)
@@ -334,9 +334,9 @@
pfenetre.close();
}
//
- var plan = document.f1.elements[chplan].value;
- var x = document.f1.elements[positionx].value;
- var y = document.f1.elements[champ].value;
+ var plan = document.f2.elements[chplan].value;
+ var x = document.f2.elements[positionx].value;
+ var y = document.f2.elements[champ].value;
//
if (plan == "") {
//
@@ -343,7 +343,7 @@
alert("Vous devez d'abord selectionner un plan pour pouvoir localiser l'emplacement.");
} else {
//
- link = "../app/localisation_plan_edit.php?positiony="+champ+"&positionx="+positionx+"&plan="+plan+"&form=f1"+"&x="+x+"&y="+y+"#draggable";
+ link = "../app/localisation_plan_edit.php?positiony="+champ+"&positionx="+positionx+"&plan="+plan+"&form=f2"+"&x="+x+"&y="+y+"#draggable";
//
pfenetre = window.open(link,"localisation","toolbar=no,scrollbars=yes,width="+screen.availWidth+",height="+screen.availHeight+",top=0,left=0");
//

Modified: branches/2.0.0-develop/app/localisation_plan_edit.php
===================================================================
--- branches/2.0.0-develop/app/localisation_plan_edit.php 2021-05-05 15:11:27 UTC (rev 1051)
+++ branches/2.0.0-develop/app/localisation_plan_edit.php 2021-05-05 17:39:03 UTC (rev 1052)
@@ -23,8 +23,8 @@
//
(isset($_GET['y']) ? $y = $_GET['y'] : $y = 0);
//
-(isset($_GET['form']) ? $form = $_GET['form'] : $form = 'f1');
-
+(isset($_GET['form']) ? $form = $_GET['form'] : $form = 'f2');
+$form = 'f2';
/**
*
*/

Modified: branches/2.0.0-develop/obj/election.class.php
===================================================================
--- branches/2.0.0-develop/obj/election.class.php 2021-05-05 15:11:27 UTC (rev 1051)
+++ branches/2.0.0-develop/obj/election.class.php 2021-05-05 17:39:03 UTC (rev 1052)
@@ -94,6 +94,7 @@
parent::init_class_actions();
// Les élections archivées ne sont pas modifiable
$this->class_actions[1]['condition'][0] = 'non_archivee';
+ $this->class_actions[2]['condition'][0] = 'is_etape_parametrage';

// ACTION - 04 - reset
$this->class_actions[4] = array(
@@ -108,11 +109,7 @@
"method" => "reset_election",
"button" => "delete",
"permission_suffix" => "tab",
- "condition" => array(
- 'pas_etape_saisie',
- 'pas_etape_finalisation',
- 'non_archivee'
- )
+ "condition" => 'is_etape_parametrage'
);

// ACTION - 05 - import_inscrits
@@ -160,19 +157,6 @@
"condition" => 'pas_etape_parametrage'
);

- // ACTION - 13 - web
- $this->class_actions[13] = array(
- 'identifier' => 'web',
- 'portlet' => array(
- 'type' =>'action-blank',
- 'libelle' => _('web'),
- 'class' => 'arrow-right-16',
- 'order' => 130,
- 'url' => '../web/index.php?election='
- ),
- "condition" => 'pas_etape_parametrage'
- );
-
// ACTION - 15 - calcul des sieges
$this->class_actions[15] = array(
"identifier" => "siege",
@@ -213,45 +197,6 @@
)
);

- // ACTION - 20 - parametrage_election_plan
- $this->class_actions[20] = array(
- "identifier" => "parametrage_election_plan",
- "portlet" => array(
- "type" => "action-direct-with-confirmation",
- "libelle" => _("Mettre à jour le parametrage des plans"),
- "order" => 200,
- "class" => "edit-16",
- ),
- "view" => "formulaire",
- "method" => "maj_parametrage_plans",
- "button" => "diffuser",
- "permission_suffix" => "tab",
- "condition" => array(
- 'pas_etape_saisie',
- 'pas_etape_finalisation',
- 'non_archivee'
- )
- );
-
- // ACTION - 21 - transfert_parametrage_plan
- $this->class_actions[21] = array(
- "identifier" => "transfert_parametrage_plan",
- "portlet" => array(
- "type" => "action-direct-with-confirmation",
- "libelle" => _("Transfert du paramétrage des plans"),
- "order" => 210,
- "class" => "edit-16",
- ),
- "view" => "formulaire",
- "method" => "transfert_parametrage_plan",
- "button" => "diffuser",
- "permission_suffix" => "tab",
- "condition" => array(
- 'pas_etape_saisie',
- 'pas_etape_finalisation'
- )
- );
-
// Action permettant de passer d'une étape à l'autre du workflow
// Etape de paramétrage -> Etape de simulation
$this->class_actions[30] = array(
@@ -5018,151 +4963,6 @@
}

/**
- * Utiliser l'action 'modifier' du formulaire liant un plan à l'élection
- * permet de faire une nouvelle récupération du parametrage du plan.
- * Pour mettre à jour le paramétrage des plans de l'élection, il
- * suffit donc d'utiliser l'action de modification pour chaque
- * plan_election de l'élection.
- * Pour simuler cette utilisationl la méthode triggermodifier est utilisés
- * sur chaque instance de plan_election lié à l'élection.
- *
- * @return boolean indique si le traitement à fonctionné ou pas
- */
- protected function maj_parametrage_plans() {
- // Il faut d'abord récupérer la liste des plans de l'élection. Une méthode
- // de la classe plan_election permet de récupérer toutes les instances de
- // plan_election d'une élection donné. Pour l'utiliser, une instance
- // de plan_election doit donc être récupéré
- $planElection = $this->f->get_element_by_id('plan_election', ']');
- $plansElection = $planElection->get_liste_plans_election($this->getVal('election'));
- // Ensuite les plans liés à chacune des centaines sont ajoutés à la liste
- // pour être également mis à jour
- $centaines = $this->get_centaines_election();
- foreach ($centaines as $centaine) {
- $plansCentaine = $planElection->get_liste_plans_election($centaine->getVal('election'));
- $plansElection = array_merge($plansElection, $plansCentaine);
- }
- foreach ($plansElection as $planElection) {
- // Le tableau de valeur passé en paramétre du triggermodifier contiens
- // les valeurs enregistrés dans le plan_election pour éviter de modifier
- // l'enregistrement (seul les paramétres du plan doivent être mis à jour)
- $idplanElection = $planElection->getVal('plan_election');
- $valplanElection = array();
- foreach ($planElection->champs as $champ) {
- $valplanElection[$champ] = $planElection->getVal($champ);
- }
- $dnu1 = null;
- $dnu2 = null;
- $planElection->triggermodifier($idplanElection, $dnu1, $valplanElection, $dnu2);
- }
- // Return true permet d'avoir un message de validation et false un message d'erreur
- $this->addToMessage('Paramétrage des plans mis à jour');
- return true;
- }
-
- /**
- *
- *
- * @return boolean indique si le traitement à fonctionné ou pas
- */
- protected function transfert_parametrage_plan() {
- $succes = false;
- $imagesAMaj = array('img_unite_arrivee', 'img_unite_non_arrivee', 'image_plan');
- $parametragesPlan = $this->get_parametrage_plans();
- // Modification du paramétrage des plans. POur cahque plan du fichier de paramétrage
- // Vérifie si des plan_unite lui sont associé. Si c'est le cas, pour chaque plan_unite
- // de la liste, les paramétres sont récupérés et stocké dans un tableau. Ce tableau
- // sert ensuite à mettre à jour les valeurs du plan_unite dans la BD, si il existe.
- // Si ce n'est pas le cas un nouvel élément est crée dans la BD.
- // Le plan est ensuite maj de la même manière
- foreach ($parametragesPlan as $parametrage) {
- if (array_key_exists('plans_unite', $parametrage)) {
- foreach ($parametrage['plans_unite'] as $parametragePlanUnite) {
- // construction du tableau contenant les valeurs à insérer dans la BD
- $data = array();
- foreach ($parametragePlanUnite as $champ => $value) {
- // Si le champs correspond à une image et qu'il contiens les metadatas et
- // l'url vers l'image alors l'image est ajouté au filestorage et le champ
- // prend la valeur de l'uid
- // Si jamais la creation de l'image echoue le champ prend comme valeur : ''
- if (in_array($champ, $imagesAMaj) &&
- ! empty($value['metadata']) &&
- ! empty($value['filepath']) &&
- file_exists($value['filepath'])
- ) {
- $metadatas = $value['metadata'];
- $filecontent = file_get_contents($value['filepath']);
- $uid = $this->f->copier_fichier($metadatas, $filecontent);
- $value = $uid != false ? $uid : '';
- }
- $data[$champ] = $value != '' ? $value : null;
- }
-
- // Si le plan_unite récupéré n'a pas d'identifiant, c'est qu'il n'existe
- // plus dans la base.
- // Si il existe, il faut mettre à jour ses valeurs dans la base de donnée
- // Sinon, il faut recréer le plan_unite avec les valeurs enregistré
- $planUniteId = $parametragePlanUnite['plan_unite'];
- $planUnite = $this->f->get_element_by_id('plan_unite', $planUniteId);
- if (! empty($planUnite->getVal('plan_unite'))) {
- $succes = $this->f->modifier_element_BD_by_id('plan_unite', $planUniteId, $data);
- } else {
- // Ajouter les elements de cette façon permet de garder l'id enregistré
- // dans le paramétrage et donc que le paramétrage enregistré soit identique au
- // paramétrage général.
- // /!\ Cet ajout fonctionne car les id sont incrementé au fur et à mesure des
- // ajouts. Il n'est donc normalement pas possible qu'un autre élément possède
- // même identifiant.
- // Si un element ayant le même id est dans la BD cela va provoquer
- // une erreur de violation de la clé étrangère
- $ajout = $this->f->db->autoExecute(
- DB_PREFIXE.'plan_unite',
- $data,
- DB_AUTOQUERY_INSERT
- );
- $this->f->addToLog(__METHOD__ . "() : db->autoExecute(" . $ajout . ")", VERBOSE_MODE);
- if ($this->f->isDatabaseError($ajout, true)) {
- $this->addToMessage("Le plan_unite $planUniteId n'a pas été recrée");
- $this->undoValidation();
- return false;
- }
- $this->f->db->commit();
- }
- }
- }
- // Mise à jour du paramétrage des plans. Les plans étant lié au plan_election
- // il ne peuvent pas avoir été supprimé. Seul le cas de la modification est
- // a prendre en compte
- $data = array();
- $planId = $parametrage['plan'];
- foreach ($parametrage as $champ => $value) {
- if ($champ != 'plans_unite') {
- // Si le champs correspond à une image et qu'il contiens les metadatas et
- // l'url vers l'image alors l'image est ajouté au filestorage et le champ
- // prend la valeur de l'uid
- // Si jamais la creation de l'image echoue le champ prend comme valeur : ''
- if (in_array($champ, $imagesAMaj) &&
- ! empty($value['metadata']) &&
- ! empty($value['filepath']) &&
- file_exists($value['filepath'])
- ) {
- $metadatas = $value['metadata'];
- $filecontent = file_get_contents($value['filepath']);
- $uid = $this->f->copier_fichier($metadatas, $filecontent);
- $value = $uid != false ? $uid : '';
- }
- $data[$champ] = $value;
- }
- }
- $succes = $this->f->modifier_element_BD_by_id('plan', $planId, $data);
- }
- $message = $succes ? 'Le parametrage a été transféré' :
- 'Erreur lors du transfert du parametrage';
- $this->addToMessage($message);
- return $succes;
- }
-
- /**
* Indique si l'étape en cours est celle du paramétrage
*
* @return boolean

Modified: branches/2.0.0-develop/obj/plan_election.class.php
===================================================================
--- branches/2.0.0-develop/obj/plan_election.class.php 2021-05-05 15:11:27 UTC (rev 1051)
+++ branches/2.0.0-develop/obj/plan_election.class.php 2021-05-05 17:39:03 UTC (rev 1052)
@@ -18,9 +18,69 @@
// paramétrage
$this->class_actions[2]["condition"][1] = 'is_parametrage_or_simulation';
$this->class_actions[1]["condition"][1] = 'is_parametrage_or_simulation';
+
+ // ACTION - 20 - parametrage_election_plan
+ $this->class_actions[20] = array(
+ "identifier" => "parametrage_election_plan",
+ "portlet" => array(
+ "type" => "action-direct-with-confirmation",
+ "libelle" => _("Mettre à jour le parametrage des plans"),
+ "order" => 200,
+ "class" => "edit-16",
+ ),
+ "view" => "formulaire",
+ "method" => "maj_parametrage_plans",
+ "button" => "diffuser",
+ "permission_suffix" => "tab",
+ "condition" => array(
+ 'pas_etape_saisie',
+ 'pas_etape_finalisation',
+ 'non_archivee'
+ )
+ );
}

/**
+ * Utiliser l'action 'modifier' du formulaire liant un plan à l'élection
+ * permet de faire une nouvelle récupération du parametrage du plan.
+ * Pour mettre à jour le paramétrage des plans de l'élection, il
+ * suffit donc d'utiliser l'action de modification pour chaque
+ * plan_election de l'élection.
+ * Pour simuler cette utilisationl la méthode triggermodifier est utilisés
+ * sur chaque instance de plan_election lié à l'élection.
+ *
+ * @return boolean indique si le traitement à fonctionné ou pas
+ */
+ protected function maj_parametrage_plans() {
+ // Il faut d'abord récupérer la liste des plans de l'élection.
+ $plansElection = $this->get_liste_plans_election($this->getVal('election'));
+ // Ensuite les plans liés à chacune des centaines sont ajoutés à la liste
+ // pour être également mis à jour
+ $election = $this->f->get_element_by_id('election', $this->getVal('election'));
+ $centaines = $election->get_centaines_election();
+ foreach ($centaines as $centaine) {
+ $plansCentaine = $this->get_liste_plans_election($centaine->getVal('election'));
+ $plansElection = array_merge($plansElection, $plansCentaine);
+ }
+ foreach ($plansElection as $planElection) {
+ // Le tableau de valeur passé en paramétre du triggermodifier contiens
+ // les valeurs enregistrés dans le plan_election pour éviter de modifier
+ // l'enregistrement (seul les paramétres du plan doivent être mis à jour)
+ $idplanElection = $planElection->getVal('plan_election');
+ $valplanElection = array();
+ foreach ($planElection->champs as $champ) {
+ $valplanElection[$champ] = $planElection->getVal($champ);
+ }
+ $dnu1 = null;
+ $dnu2 = null;
+ $planElection->triggermodifier($idplanElection, $dnu1, $valplanElection, $dnu2);
+ }
+ // Return true permet d'avoir un message de validation et false un message d'erreur
+ $this->addToMessage('Paramétrage des plans mis à jour');
+ return true;
+ }
+
+ /**
* TRIGGER - triggerajouter.
*
* @param string $id

Modified: branches/2.0.0-develop/tests/031_web.robot
===================================================================
--- branches/2.0.0-develop/tests/031_web.robot 2021-05-05 15:11:27 UTC (rev 1051)
+++ branches/2.0.0-develop/tests/031_web.robot 2021-05-05 17:39:03 UTC (rev 1052)
@@ -305,7 +305,6 @@
... que les unités sont correctement placées sur le plan

Depuis le contexte election ${id_election}
- Click On Form Portlet Action election web new_window
Go To http://localhost/openresultat/web/index.php?election=00${id_election}-0
# Verification des erreurs
La page ne doit pas contenir d'erreur
@@ -397,7 +396,6 @@
... script saisis.

Depuis le contexte election ${id_election}
- Click On Form Portlet Action election web new_window
Go To http://localhost/openresultat/web/index.php

# Présence du logo, de l'url avec le bon intitulé, de l'entete et test du script
@@ -498,43 +496,6 @@
# Pas de participation visible sur la page
Page Should Not Contain 09:00:00

-Transfert du paramétrage des plans
- [Documentation] Test servant à vérifier que le transfert du paramétrage
- ... des plans de l'élection, modifie bien le paramétrage général
-
- # Modification du paramétrage du plan et suppression du plan_unite
- &{plan} = BuiltIn.Create Dictionary
- ... libelle=Mairie ABC
- ... image_plan=candidat1.png
- ... img_unite_arrivee=bureau_a.png
- ... img_unite_non_arrivee=bureau_na.png
- ... par_defaut=false
- Modifier plan ${id_plan} ${plan}
-
- Supprimer plan_unite ${id_plan_unite_b}
-
- # Utilisation de l'action de transfert du paramétrage et vérification
- # que les modifications ont bien été effectuée
- Depuis le contexte election ${id_election}
- Click On Form Portlet Action election transfert_parametrage_plan modale
- Cliquer sur le bouton de la fenêtre modale Confirmer
- La page ne doit pas contenir d'erreur
-
- Depuis le contexte plan ${id_plan}
- Element Should Contain css=span#libelle Mairie ABC
- Element Should Contain css=div#image_plan plan_centre.gif
- Element Should Contain css=div#img_unite_arrivee img_unite_arrivee.gif
- Element Should Contain css=div#img_unite_non_arrivee img_unite_non_arrivee.gif
- Element Should Contain css=span#par_defaut Oui
-
- # Le plan unité liant le Bureau n°B au plan Mairie ABC doit à nouveau exister
- Depuis le listing plan_unite
- Use Simple Search unite Bureau n°B
- CLick On Link Mairie ABC
- Element Should Contain css=span#plan Mairie ABC
- Element Should Contain css=span#unite 42 Bureau n°B
- Element Should Contain css=div#img_unite_non_arrivee bureau_na.png
-
Mise à jour des plans de l'élection
[Documentation] Test servant à vérifier que l'action de ise à jour
... du paramétrage des plans, met bien à joour le paramétrage sur la
@@ -559,8 +520,8 @@

# Utilisation de l'action de mise à jour des plans et vérification
# que les modifications ont bien été effectuée
- Depuis le contexte election ${id_election}
- Click On Form Portlet Action election parametrage_election_plan modale
+ Depuis le contexte plan_election Mairie ABC ${id_election}
+ Click On SubForm Portlet Action plan_election parametrage_election_plan modale
Cliquer sur le bouton de la fenêtre modale Confirmer
La page ne doit pas contenir d'erreur

@@ -608,6 +569,8 @@
[Documentation] Test servant à vérifier que lors de la suppression de l'élection
... son répertoire web et celui de ses centaines sont supprimés

+ Depuis le contexte election ${id_election}
+ Retourner à l'étape précédente parametrage
# Les répertoires ne doivent plus exister
Supprimer election ${id_election}
File Should Not Exist ../web/res/00${id_election}-0

Reply all
Reply to author
Forward
0 new messages