Skip to content

Commit

Permalink
Merge pull request #43 from PnEcrins/develop
Browse files Browse the repository at this point in the history
Merge Master to Develop
  • Loading branch information
romthi38 committed Jun 26, 2015
2 parents 0fd6736 + 49f2990 commit cc88c1d
Show file tree
Hide file tree
Showing 6 changed files with 128 additions and 62 deletions.
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
cache/*.*
template_c/*.*
config/config.php
logs/*.*
templates/pages/fr/*.html
images/034143.jpg
images/logo.jpg
images/logo.png
images/img1sousItem1.png
images/img2sousItem1.png
images/img3sousItem2.png
images/img4item2.png
images/img4item2.png
csv/*.csv
42 changes: 27 additions & 15 deletions _admin/listeLogs.inc.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,40 @@
include ("verification.inc.php");
include ("head.inc.php");
include ("nav.inc.php");
// include ("../config/config.php");
// include ("../classes/db.class.php");
// include ("../classes/config.class.php");

if (isset($_GET['nbDepart'])){
$nbDepart = 0;
$nbDepart = $_GET['nbDepart'];
$cpt = 0;
if (isset($_GET['btSuivant'])){
$nbDepart = 15;
$nbDepart = $_GET['btSuivant'];
$cpt = $nbDepart + 15;
$db=db::get();
$reqLog = $db->prepare('SELECT * FROM '.config::get('db_prefixe').'logs LIMIT '.$nbDepart.',15');
$reqLog = $db->prepare('SELECT * FROM '.config::get('db_prefixe').'logs LIMIT '.$cpt.',15');
$reqLog->execute();
$resultLog = $reqLog->fetchAll();
}
else{
if (isset($_GET['btPrecedent'])){
$nbDepart2 = 0;
$nbDepart2 = $_GET['btPrecedent'];
if ($nbDepart2 <= 0){
$cpt = 0;
$disable2 = "disabled";
}
else{
$cpt = $nbDepart2 - 15;
$disable2 = "";
}
$db=db::get();
$reqLog = $db->prepare('SELECT * FROM '.config::get('db_prefixe').'logs LIMIT 0,15');
$reqLog = $db->prepare('SELECT * FROM '.config::get('db_prefixe').'logs LIMIT '.$cpt.',15');
$reqLog->execute();
$resultLog = $reqLog->fetchAll();
}
else{
$db=db::get();
$reqLog = $db->prepare('SELECT * FROM '.config::get('db_prefixe').'logs LIMIT 0,15');
$reqLog->execute();
$resultLog = $reqLog->fetchAll();
}
}
?>
<div id="decale">
Expand Down Expand Up @@ -56,18 +73,13 @@
<div class="col-md-1"></div>

<form action="" method="GET" class="form-horizontal" name="monForm">
<?php /*foreach($resultLog as $rowcount){
$compteur += $cpt / 15;
$nbDepart += $compteur * 15;
} */
?>
<div class="form-group">
<div class="col-md-2"></div>
<div class="col-md-offset-2 col-md-2">
<button type="submit" class="btn btn-primary btn-lg btn-block" name="btPrecedent" value="" id="btPrecedent">Précédent</button>
<button type="submit" name="btPrecedent" value="<?php echo $cpt; ?>" id="btPrecedent" class="btn btn-primary btn-lg btn-block <?php echo $disable2; ?>">Précédent</button>
</div>
<div class="col-md-2">
<button type="submit" class="btn btn-primary btn-lg btn-block" name="btSuivant" value="" id="btSuivant">Suivant</button>
<button type="submit" name="btSuivant" value="<?php if(count($resultLog) < 15){ echo($nbDepart); $disable="disabled"; }else{ echo $cpt; $disable=""; } ?>" id="btSuivant" class="btn btn-primary btn-lg btn-block <?php echo $disable; ?>">Suivant</button>
</div>
<div class="col-md-3"></div>
</div>
Expand Down
51 changes: 46 additions & 5 deletions _admin/listeObj.inc.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,46 @@

// Suppression
if(isset($_GET['btSupprimer'])){
/*echo ("<div id='dialog-confirm' title='Suppression de l'objet ".$_GET['btSupprimer']." ?'><p>Cet objet va être supprimé de la base de données.
Êtes-vous sûr de vouloir supprimer cet objet ?</p></div>");*/
$reqSupprObj = $db->prepare('DELETE FROM '.config::get('db_prefixe').'tracked_objects where id = :id');
$reqSupprObj->execute(array('id' => $_GET['btSupprimer']));
$reqSupprProp = $db->prepare('DELETE FROM '.config::get('db_prefixe').'objects_features where id_tracked_objects = :id_tracked_objects');
$reqSupprProp->execute(array('id_tracked_objects' => $_GET['btSupprimer']));
}

$reqObj = $db->prepare('SELECT * FROM '.config::get('db_prefixe').'tracked_objects');
$reqObj->execute();
$resultObj = $reqObj->fetchAll();
$cpt = 0;
if (isset($_GET['btSuivant'])){
$nbDepart = 15;
$nbDepart = $_GET['btSuivant'];
$cpt = $nbDepart + 15;
$db=db::get();
$reqObj = $db->prepare('SELECT * FROM '.config::get('db_prefixe').'tracked_objects LIMIT '.$cpt.',15');
$reqObj->execute();
$resultObj = $reqObj->fetchAll();
}
else{
if (isset($_GET['btPrecedent'])){
$nbDepart2 = 0;
$nbDepart2 = $_GET['btPrecedent'];
if ($nbDepart2 <= 0){
$cpt = 0;
$disable2 = "disabled";
}
else{
$cpt = $nbDepart2 - 15;
$disable2 = "";
}
$db=db::get();
$reqObj = $db->prepare('SELECT * FROM '.config::get('db_prefixe').'tracked_objects LIMIT '.$cpt.',15');
$reqObj->execute();
$resultObj = $reqObj->fetchAll();
}
else{
$db=db::get();
$reqObj = $db->prepare('SELECT * FROM '.config::get('db_prefixe').'tracked_objects LIMIT 0,15');
$reqObj->execute();
$resultObj = $reqObj->fetchAll();
}
}
?>
<div id="decale">
<div class="row">
Expand Down Expand Up @@ -62,6 +91,18 @@
</table>
</div>
<div class="col-md-1"></div>
<form action="" method="GET" class="form-horizontal" name="monForm">
<div class="form-group">
<div class="col-md-2"></div>
<div class="col-md-offset-2 col-md-2">
<button type="submit" name="btPrecedent" value="<?php echo $cpt; ?>" id="btPrecedent" class="btn btn-primary btn-lg btn-block <?php echo $disable2; ?>">Précédent</button>
</div>
<div class="col-md-2">
<button type="submit" name="btSuivant" value="<?php if(count($resultLog) < 15){ echo($nbDepart); $disable="disabled"; }else{ echo $cpt; $disable="";} ?>" id="btSuivant" class="btn btn-primary btn-lg btn-block <?php echo $disable; ?>">Suivant</button>
</div>
<div class="col-md-3"></div>
</div>
</form>
</div>
<?php
include ("bottom.inc.php");
Expand Down
11 changes: 11 additions & 0 deletions csv/tracked_objects.csv.sample
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
4179,Object_1,2015-06-15,12:00:00,44,44.7680583, 6.1694750,7,3D, 2623,1.1, 10, 16, 8
4179,Object_1,2015-06-15,16:00:00,45,44.7680400, 6.1690000,7,3D, 2650,1.2, 11, 9, 6
4179,Object_1,2015-06-15,22:00:00,45,44.7655900, 6.1700183,7,3D, 2654,2.5, 13, 4, 11
4179,Object_1,2015-06-16,07:00:00,45,44.7663433, 6.1692883,7,3D, 2686,1.3, 19, 0, 1
4278,Object_2,2015-06-14,16:00:00,,GPS Time Out,,,, 0,0.0, 16, 25, 8
4278,Object_2,2015-06-14,22:00:00,44,44.8532350, 6.3107050,7,3D, 2463,1.6, 14, 0, 0
4278,Object_2,2015-06-15,07:00:00,75,44.8563767, 6.3094100,5,3D, 2574,1.6, 8, 17, 4
4278,Object_2,2015-06-15,12:00:00,41,44.8600983, 6.3142733,6,3D, 3072,1.3, 15, 1, 0
4273,Object_3,2015-06-15,16:00:00,76,44.8536033, 6.3139800,4,3D, 2718,2.0, 11, 12, 8
4273,Object_3,2015-06-15,22:00:00,,GPS Time Out,,,, 0,0.0, 12, 0, 0
4273,Object_3,2015-06-16,07:00:00,75,44.8596667, 6.3139000,4,3D, 3027,7.9, 6, 20, 12
82 changes: 42 additions & 40 deletions docs/gestion_donnees.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,42 +2,44 @@
GESTION DES DONNEES
===================

Après avoir configuré votre serveur, si vous avez besoin d'effectuer des tâches sur la base de données, référez vous à ce document.
Après avoir installé et configuré l'application, vous devez créer vos objets suivis dans la base de données.

Tout d'abord, sélectionnez la base de votre application.
Une interface d'administration est en cours de développement (dans le répertoire ``_admin``, accessible à l'adresse ``http://mondomaine.com/_admin``). Elle permet actuellement de lister les objets de la BDD mais pas encore de les éditer. Ainsi ces opérations de gestion des données doivent pour le moment être faites directement dans la BDD.

CAS n°1 : Ajouter un objet dont le collier n'a jamais été utilisé
=================================================================
Tout d'abord, sélectionnez la BDD de votre application dans phpMyAdmin.

Insérez une nouvelle ligne dans la table tracked_objects :
CAS n°1 : Ajouter un objet dont l'émetteur GPS n'a jamais été utilisé
=====================================================================

• ``id`` : correspond à l'identifiant numérique du collier.
Insérez une nouvelle ligne dans la table ``tracked_objects`` :

• ``id`` : correspond à l'identifiant numérique de l'émetteur GPS.

• ``nom`` : nom de l'objet.

• ``date_creation`` : date du jour ou laisser vide.

• ``date_maj`` : laisser vide.
• ``date_maj`` : laisser vide (renseigné automatiquement à chaque import de données).

• ``active`` : désactive l'affichage d'un objet qui ne renvoie pas de données satellite.
• ``active`` : désactive l'affichage d'un objet qui ne renvoie pas de données GPS.

Attention mettre ``0`` ne signifie pas que l'objet sera désactivé du site pour toujours mais qu'il n'y apparaît plus tant que de nouvelles données satellites ne sont pas disponibles.
Attention mettre ``0`` dans le champs ``active`` ne signifie pas que l'objet sera désactivé du site pour toujours mais qu'il n'y apparaît plus tant que de nouvelles données satellites ne sont pas disponibles.

Si des données correspondantes au collier sont de nouveau transmises l'objet sera réactivé automatiquement.
Si des données correspondantes à l'émetteur GPS sont de nouveau transmises l'objet sera réactivé automatiquement.

Ensuite, insérez 4 nouvelles entrées dans la table objects_features (une entrée par champ ``nom_prop``) :
Ensuite, insérez 4 nouvelles entrées dans la table ``objects_features`` (une entrée par champ ``nom_prop``) :

• ``id_tracked_objects`` : correspond à l'identifiant numérique du collier (sans le T5HS- devant)
• ``id_tracked_objects`` : correspond à l'identifiant numérique de l'émetteur GPS (sans le T5HS- devant)

• ``nom_prop`` : peut avoir 4 différentes valeur :
• ``nom_prop`` : peut avoir 4 valeurs différentes :

- ``couleurD`` : couleur de la boucle sur l'oreille droite,

- ``couleurG`` : couleur de la boucle sur l'oreille gauche,

- ``naissance`` : année de naissance

- ``sexe``
- ``sexe`` : M ou F

• ``valeur_prop`` : valeur selon ``nom_prop`` :

Expand All @@ -47,65 +49,65 @@ Ensuite, insérez 4 nouvelles entrées dans la table objects_features (une entr

- ``sexe`` : F ou M

Il ne reste plus qu'à faire un import manuel des données existantes si des données ont déjà été transmises après la pose du collier sur l'objet traqué.
Il ne reste plus qu'à lancer un import des données existantes si des données ont déjà été transmises après la pose de l'émetteur GPS sur l'objet traqué.

Ces données se trouvent dans le répertoire ``/tmp/csv`` dans les fichier TXT.
Ces données se trouvent dans les fichiers TXT du répertoire ``/tmp/csv``.

Il faut donc exécuter le script http://mon-domaine.com/controler/import_imap_csv. Les données sont importées dans la table ``gps_data``.
Il faut donc exécuter le script http://mon-domaine.com/controler/import_imap_csv. Les données sont intégrées dans la table ``gps_data``. Voir rubrique PRINCIPES DE L'APPLICATION dans la documentation CONFIGURATION.

Il se peut que le fichier contienne des données avant la pose du collier, il faut donc éxecuter dans MYSQL la requête suivante :
Il se peut que le fichier contienne des données de test avant la pose de l'émetteur GPS, il faut donc éxecuter la requête suivante dans la BDD pour les supprimer (en remplacant ``id_emetteurGPS`` par la valeur numérique souhaitée) :

::

DELETE FROM `gps_data` WHERE `id_tracked_objects` = 'id_collier' AND `dateheure` > 'date_de_pose';
DELETE FROM `gps_data` WHERE `id_tracked_objects` = 'id_emetteurGPS' AND `dateheure` > 'date_de_pose';
CAS n°2 : Ajout d'un nouvel objet dont le collier a déjà été utilisé sur un autre objet
=======================================================================================
CAS n°2 : Ajout d'un nouvel objet dont l'émetteur GPS a déjà été utilisé sur un autre objet
===========================================================================================

Si le collier a déjà été utilisé il convient de supprimer toutes les données antérieures à la nouvelle date de pose pour le collier.
Si l'émetteur GPS a déjà été utilisé il convient de supprimer toutes les données antérieures à la nouvelle date de pose de l'émetteur GPS (en remplacant ``id_emetteurGPS`` par la valeur numérique souhaitée).

::

DELETE FROM `gps_data` WHERE `id_tracked_objects` = 'id_collier' AND `dateheure` > 'date_de_pose';
DELETE FROM `gps_data` WHERE `id_tracked_objects` = 'id_emetteurGPS' AND `dateheure` > 'date_de_pose';
Si vous souhaitez conserver les données de l'ancien objet, vous pouvez effectuer la requête suivante :
Si vous souhaitez conserver les données de l'ancien objet, vous pouvez effectuer la requête suivante pour renommer son identifiant (O pour OLD) :

::

UPDATE `gps_data` SET `id_tracked_objects` = 'id_objet_O' WHERE `id_tracked_objects` = 'id_objet';
Ensuite reprenez les étapes du cas n°1.

CAS n°3 : Un objet change de collier
====================================
CAS n°3 : Un objet change d'émetteur GPS
========================================

Modifiez l'identifiant du collier dans la table ``tracked_objects``, pour ceci vous avez juste à éditer la ligne avec l'id souhaité.
Modifiez l'identifiant de l'émetteur GPS dans la table ``tracked_objects``, pour ceci vous avez juste à modifier la ligne avec l'id souhaité.

Par la suite, modifiez l'identifiant du collier dans la table ``objects_features``, vous devez éditer 4 lignes comme dans le cas n°1.
Par la suite, modifiez l'identifiant de l'émetteur GPS dans la table ``objects_features``, vous devez modifier 4 lignes comme dans le cas n°1.

Sinon, tapez la requête suivante :
Sinon, tapez la requête suivante (en remplacant ``id_ancien_emetteurGPS`` et ``id_nouvel_emetteurGPS`` par les id souhaités) :

::

UPDATE `objects_features` SET `id_tracked_objects` = 'id_ancien_collier' WHERE `id_tracked_objects` = 'id_nouveau_collier';
UPDATE `objects_features` SET `id_tracked_objects` = 'id_ancien_emetteurGPS' WHERE `id_tracked_objects` = 'id_nouvel_emetteurGPS';
Enfin, supprimez les données datant d'avant la pose du collier :
Enfin, supprimez les données datant d'avant la pose de l'émetteur GPS (en remplacant ``id_emetteurGPS``) :

::

DELETE FROM `gps_data` WHERE `id_tracked_objects` = 'id_collier' AND `dateheure` > 'date_de_pose';
DELETE FROM `gps_data` WHERE `id_tracked_objects` = 'id_emetteurGPS' AND `dateheure` > 'date_de_pose';
Très important, si vous souhaitez conserver les anciennes données de l'objet, tapez la requête suivante :
Très important, si vous souhaitez conserver les anciennes données de l'objet, tapez la requête suivante (en remplacant ``id_ancien_emetteurGPS`` et ``id_nouvel_emetteurGPS``) :

::

UPDATE `gps_data` SET `id_tracked_objects` = 'id_ancien_collier' WHERE `id_tracked_objects` = 'id_nouveau_collier';
UPDATE `gps_data` SET `id_tracked_objects` = 'id_ancien_emetteurGPS' WHERE `id_tracked_objects` = 'id_nouvel_emetteurGPS';
Mais si vous souhaitez les supprimer, privilégiez plutôt la requête suivante :
Mais si vous souhaitez les supprimer, privilégiez plutôt la requête suivante (en remplacant ``id_ancien_emetteurGPS``) :

::

DELETE FROM `gps_data` WHERE `id_tracked_objects` = 'id_ancien_collier';
DELETE FROM `gps_data` WHERE `id_tracked_objects` = 'id_ancien_emetteurGPS';
Tout comme dans le cas n°1, si vous voulez importer des données existantes, exécutez le script suivant : http://mon-domaine.com/controler/import_imap_csv.

Expand All @@ -122,10 +124,10 @@ Et après il faut mettre le champ ``active`` à ``0``.

- Vous souhaitez supprimer définitivement les données :

Exécutez les requêtes suivantes :
Exécutez les requêtes suivantes (en remplacant ``id_emetteurGPS``) :

::

DELETE FROM `tracked_objects` WHERE `id` = 'id_collier';
DELETE FROM `objects_features` WHERE `id_tracked_objects` = 'id_collier';
DELETE FROM `gps_data` WHERE `id_tracked_objects` = 'id_collier';
DELETE FROM `tracked_objects` WHERE `id` = 'id_emetteurGPS';
DELETE FROM `objects_features` WHERE `id_tracked_objects` = 'id_emetteurGPS';
DELETE FROM `gps_data` WHERE `id_tracked_objects` = 'id_emetteurGPS';
Empty file added logs/imports.log
Empty file.

0 comments on commit cc88c1d

Please sign in to comment.