Compare commits

..

2 Commits

@ -1,52 +0,0 @@
Anna BOUDOUL
Nicolas FRANCO
#### Ce qui a été fait depuis l'oral:
- fonction `loadPrivateList` de la classe `TaskModel`
* utilise deux nouvelles fonctions: `findUserList` et `findListTask` du gateway pour charger les listes privées d'un user
- fonction `loadPublicLists` de la classe `TaskModel`
* utilise deux fonctions: `findPublicList` et `findListTask` du gateway pour charger les listes publiques
- vue home.php
* correction de la fonction `isConnected` qui est nécessaire dans cette vue
- contrôleur user
* constructeur
* méthode `deconnexion` associée à l'action `deconnecter`
* méthode `newListPrivate` associée à l'action `creerListePriv`
* méthode `loadListePriv` associée à l'action `voirListePriv`
* méthode `erasePrivList` associée à l'action `supprimerListePriv`
- vue connection.php
- vue newList.php
- vue register.php
- vue about.php
- vue newTask.php
- vue homePriv.php
- fin de la vue erreur.php
- navigation entre les pages avec `href=index.php?action=...`
- classe Validation
- utilisation de la classe validation dans le code
- "binding" des bouttons avec les actions correspondantes (pour les deux controlleurs, visitor et user)
- tableau de vues et tableau des messages d'erreurs
- corrections de bugs
#### Ce qui reste à faire
Nous avions envisagé de permettre à l'utilisateur d'afficher de plus amples informations sur les tâches, comme leurs dates de début et de fin et leur description, à l'aide d'un bouton sur nos vue home et home privé cependant nous n'avons pas eu le temps de le faire et par souci d'esthétisme et de lisibilité nous n'avons pas mis toutes ces informations dans le tableau des tâches pour chaque liste.
Nous souhaitions également afficher un compte des tâches faites sur le nombre de tâches total par liste mais nous n'avons pas eu le temps de terminer cette fonctionnalité.
Nous avons tout de même conservé les attributs qui étaient censés être utilisés dans ces fonctionnalités dans notre base de données et dans nos classes métiers en vue d'une possible amélioration de notre site.
#### Plus de détails
* vous pouvez trouver plus de détail sur notre dépot git disponible ici `https://codefirst.iut.uca.fr/git/anna.boudoul/ProjetPHP`, en regardant les commits qui ont été fait tout au long du projet.

@ -3,8 +3,8 @@
$rep=__DIR__.'/../'; $rep=__DIR__.'/../';
//$con = new Connection('mysql:host=localhost;dbname=phpproject', 'nifranco', 'achanger'); $con = new Connection('mysql:host=localhost;dbname=phpproject', 'nifranco', 'achanger');
$con = new Connection('mysql:host=localhost;dbname=dbanboudoul', 'anboudoul', 'mdpMYSQL'); //$con = new Connection('mysql:host=localhost;dbname=dbanboudoul', 'anboudoul', 'mdpMYSQL');
$TMessage = array(); $TMessage = array();

@ -81,20 +81,20 @@ class VisitorCtrl
break; break;
default: default:
#
$TMessage[] = 'Unexpected error'; $TMessage[] = 'Unexpected error';
require($this->TabVues["erreur"]); require($this->TabVues["erreur"]);
$this->loadHome();
break; break;
} }
} catch (Exception $e) { } catch (Exception $e) {
var_dump($_POST);
$TMessage[] = $e->getMessage(); $TMessage[] = $e->getMessage();
require($this->TabVues["erreur"]); require($this->TabVues["erreur"]);
} }
} }
function loadHome(){ function loadHome(){
$public_lists = $this->taskModel->loadPublicLists(); $public_lists = $this->taskModel->loadPublicLists();
# le if suivant est nécéssaire dans le cas ou l'action # le if suivant est nécéssaire dans le cas ou l'action
# connection a été appeller. Dans ce cas, loadHome doit # connection a été appeller. Dans ce cas, loadHome doit
# prendre en compte le user qui vient d'être ajouter a # prendre en compte le user qui vient d'être ajouter a
@ -119,12 +119,9 @@ class VisitorCtrl
function connection(){ function connection(){
$isCo = $this->userModel->connexion($_POST['username'],$_POST['password']); $isCo = $this->userModel->connexion($_POST['username'],$_POST['password']);
if(!$isCo){ if($isCo)
$TMessage[] = 'This user does not exist'; require($this->TabVues["erreur"]); $this->TMessage[] = 'This user does not exist'; require($this->TabVues["erreur"]);
$this->loadHome(); $this->loadHome();
}
else
$this->loadHome();
} }
function go_register(){ function go_register(){
@ -178,11 +175,8 @@ class VisitorCtrl
} }
function isDone(){ function isDone(){
if ($_POST['Tdone']) $this->taskModel->modifTask($_POST['idT'],'isDone',true);
$this->taskModel->modifTask($_POST['idT'],'isDone',false); if(isset($_POST['isPriv']) && $_POST['isPriv'])
else
$this->taskModel->modifTask($_POST['idT'],'isDone',true);
if(!empty($_POST['isPriv']))
header("Location:index.php?action=voirListePriv"); header("Location:index.php?action=voirListePriv");
else else
$this->loadHome(); $this->loadHome();

@ -17,23 +17,18 @@ class TaskGateway
// code de retour pour les fonctions i,u,d? // code de retour pour les fonctions i,u,d?
public function insertT(Task $t){ public function insertT(Task $t){
$query='INSERT INTO Tache VALUES (:id,:titre,:descript,:dateDeb,:dateFin,:priorite,:idList,false)'; $query='INSERT INTO Tache VALUES (:id,:titre,:descript,:dateDeb,:dateFin,:priorite,:idList,false)';
if($t->get_dateDeb() == null)
$dateDeb = NULL;
else
$dateDeb = $t->get_dateDeb();
if($t->get_dateFin() == null)
$dateFin = NULL;
else
$dateFin = $t->get_dateFin();
$this->con->executeQuery($query, array( $this->con->executeQuery($query, array(
':id'=> array($t->get_id(),PDO::PARAM_STR), ':id'=> array($t->get_id(),PDO::PARAM_STR),
':titre'=> array($t->get_titre(),PDO::PARAM_STR), ':titre'=> array($t->get_titre(),PDO::PARAM_STR),
':descript'=> array($t->get_description(),PDO::PARAM_STR), ':descript'=> array($t->get_description(),PDO::PARAM_STR),
':dateDeb'=> array($dateDeb,PDO::PARAM_STR), ':dateDeb'=> array($t->get_dateDeb(),PDO::PARAM_STR),
':dateFin'=> array($dateFin,PDO::PARAM_STR), ':dateFin'=> array($t->get_dateFin(),PDO::PARAM_STR),
':priorite'=> array($t->get_priorite(),PDO::PARAM_STR), ':priorite'=> array($t->get_priorite(),PDO::PARAM_STR),
':idList'=> array($t->get_idList(),PDO::PARAM_STR) )); ':idList'=> array($t->get_idList(),PDO::PARAM_STR) ));
/*Comment gerer les erreurs?
* si valeur existe deja
*/
} }
public function update($table,$id,$element, $valeur){ public function update($table,$id,$element, $valeur){
@ -120,20 +115,6 @@ class TaskGateway
':user'=> array($l->get_owner(),PDO::PARAM_STR))); ':user'=> array($l->get_owner(),PDO::PARAM_STR)));
} }
public function count($list){
$query='SELECT COUNT(*) from Tache where idList = :idList';
$this->con->executeQuery($query, array(
':idList' => array($list->get_id(),PDO::PARAM_INT)
));
$result = $this->con->getResults();
foreach($result as $row){
$taille = $row[0];
}
return $taille;
}
public function findUserList($user){ public function findUserList($user){
# pas réussit a faire une jointure optimale donc # pas réussit a faire une jointure optimale donc
# decomposé en plusieurs foncitons: # decomposé en plusieurs foncitons:

@ -1,58 +0,0 @@
-- phpMyAdmin SQL Dump
-- version 5.2.0
-- https://www.phpmyadmin.net/
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";
-- --------------------------------------------------------
--
-- Structure de la table `tache`
--
DROP TABLE IF EXISTS `tache`;
CREATE TABLE IF NOT EXISTS `tache` (
`id` int NOT NULL AUTO_INCREMENT,
`titre` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`dateDebut` date DEFAULT NULL,
`dateFin` date DEFAULT NULL,
`priorite` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`idList` int NOT NULL,
`isDone` tinyint(1) NOT NULL,
PRIMARY KEY (`id`),
KEY `FK_list` (`idList`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- --------------------------------------------------------
--
-- Structure de la table `ulist`
--
DROP TABLE IF EXISTS `ulist`;
CREATE TABLE IF NOT EXISTS `ulist` (
`id` int NOT NULL AUTO_INCREMENT,
`nom` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`user` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
`dc` int NOT NULL,
PRIMARY KEY (`id`),
KEY `FK_list_owner` (`user`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- --------------------------------------------------------
--
-- Structure de la table `user`
--
DROP TABLE IF EXISTS `user`;
CREATE TABLE IF NOT EXISTS `user` (
`login` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`mdp` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
PRIMARY KEY (`login`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
COMMIT;

@ -54,11 +54,6 @@ class TaskModel
$this->gtw->update('list',$id,$element,$valeur); $this->gtw->update('list',$id,$element,$valeur);
} }
public function size($list){
$taille = $this->gtw->count($list);
return $taille;
}
public function supList($id) public function supList($id)
{ {
$this->gtw->delete('list',$id); $this->gtw->delete('list',$id);

@ -100,24 +100,14 @@
} }
echo ' echo '
<td> <td>
<form action="index.php" method="post" class="d-inline-block">'; <form action="index.php" method="post" class="d-inline-block">
if(!$t->get_isDone()){ <button type="submit" class="btn btn-success ms-1">&#10004;
echo '<button type="submit" class="btn btn-success ms-1">&#10004; <input type="hidden" name="idT" value="'.$t->get_id().'"></input>
<input type="hidden" name="idT" value="'.$t->get_id().'"></input> <input type="hidden" name="action" value="isDone">
<input type="hidden" name="Tdone" value="'.$t->get_isDone().'"></input> </button>
<input type="hidden" name="action" value="isDone">
</button>';
} else {
echo '<button type="submit" class="btn btn-secondary ms-1">&#10006;
<input type="hidden" name="idT" value="'.$t->get_id().'"></input>
<input type="hidden" name="Tdone" value="'.$t->get_isDone().'"></input>
<input type="hidden" name="action" value="isDone">
</button>';
}
echo '
</form> </form>
<form action="index.php" method="post" class="d-inline-block"> <form action="index.php" method="post" class="d-inline-block">
<button type="submit" class="btn btn-danger">&#128465; <button type="submit" class="btn btn-danger">&#10006;
<input type="hidden" name="idT" value="'.$t->get_id().'"></input> <input type="hidden" name="idT" value="'.$t->get_id().'"></input>
<input type="hidden" name="action" value="supprimerTache"> <input type="hidden" name="action" value="supprimerTache">
</button> </button>

@ -58,7 +58,7 @@
<form action="index.php" class="row row-cols-lg-auto g-3 justify-content-center align-items-center mb-4 pb-2" method="post"> <form action="index.php" class="row row-cols-lg-auto g-3 justify-content-center align-items-center mb-4 pb-2" method="post">
<div class="col-12"> <div class="col-12">
<div class="form-outline"> <div class="form-outline">
<input type="text" id="form1" class="form-control" name="listName" required/> <input type="text" id="form1" class="form-control" name="listName"/>
</div> </div>
</div> </div>

@ -95,31 +95,20 @@
} }
echo ' echo '
<td> <td>
<form action="index.php" method="post" class="d-inline-block">'; <form action="index.php" method="post" class="d-inline-block">
if(!$t->get_isDone()){ <button type="submit" class="btn btn-success ms-1">&#10004;
echo '<button type="submit" class="btn btn-success ms-1">&#10004; <input type="hidden" name="idT" value="'.$t->get_id().'"></input>
<input type="hidden" name="idT" value="'.$t->get_id().'"></input> <input type="hidden" name="action" value="isDone">
<input type="hidden" name="Tdone" value="'.$t->get_isDone().'"></input> <input type="hidden" name="isPriv" value="true">
<input type="hidden" name="action" value="isDone"> </button>
<input type="hidden" name="isPriv" value="true"> </form>
</button>'; <form action="index.php" method="post" class="d-inline-block">
} else { <button type="submit" class="btn btn-danger">&#10006;
echo '<button type="submit" class="btn btn-secondary ms-1">&#10006; <input type="hidden" name="idT" value="'.$t->get_id().'"></input>
<input type="hidden" name="idT" value="'.$t->get_id().'"></input> <input type="hidden" name="action" value="supprimerTache">
<input type="hidden" name="Tdone" value="'.$t->get_isDone().'"></input> <input type="hidden" name="isPriv" value="true">
<input type="hidden" name="action" value="isDone"> </button>
<input type="hidden" name="isPriv" value="true"> </form>
</button>';
}
echo '
</form>
<form action="index.php" method="post" class="d-inline-block">
<button type="submit" class="btn btn-danger">&#128465;
<input type="hidden" name="idT" value="'.$t->get_id().'"></input>
<input type="hidden" name="action" value="supprimerTache">
<input type="hidden" name="isPriv" value="true">
</button>
</form>
</td> </td>
</tr>'; </tr>';
} }

Loading…
Cancel
Save