Fin de création et suppression expérience et formation

Expérience/Formation
thomas muzard 1 year ago
parent 8458f989a4
commit 41042dc3be

@ -96,9 +96,9 @@ class Validation
return false; return false;
} }
public static function validerExperience(int $idProfil, string $intitule, string $dateDeb, ?string $dateFin, string $nomEntreprise, bool $currendJob) public static function validerExperience(int $idProfil, string $intitule, string $dateDeb, ?string $dateFin, string $nomEntreprise, ?bool $currendJob)
{ {
if(!empty($idProfil) && !empty($intitule) && !empty($dateDeb) && !empty($nomEntreprise) && !empty($currendJob)) if(!empty($idProfil) && !empty($intitule) && !empty($dateDeb) && !empty($nomEntreprise))
{ {
self::nettoyerString($intitule, $dateDeb, $nomEntreprise); self::nettoyerString($intitule, $dateDeb, $nomEntreprise);
if ($currendJob == false) { if ($currendJob == false) {
@ -107,20 +107,20 @@ class Validation
return true; return true;
} }
return false; return false;
} else { /*} else {
if (empty($dateFin)) { if (empty($dateFin)) {
return true; return true;
} }
return false; return false;
} */}
return true; return true;
} }
return false; return false;
} }
public static function validerFormation(int $idProfil, string $nom, string $ville, string $dateDeb, ?string $dateFin, bool $currendFormation) public static function validerFormation(int $idProfil, string $nom, string $ville, string $dateDeb, ?string $dateFin, ?bool $currendFormation)
{ {
if(!empty($idProfil) && !empty($nom)&& !empty($ville) && !empty($dateDeb) && !empty($currendFormation)) if(!empty($idProfil) && !empty($nom)&& !empty($ville) && !empty($dateDeb))
{ {
self::nettoyerString($nom, $dateDeb, $ville); self::nettoyerString($nom, $dateDeb, $ville);
if ($currendFormation == false) { if ($currendFormation == false) {

@ -4,6 +4,7 @@ namespace App\controleur;
use App\config\Validation; use App\config\Validation;
use App\gateway\ImageManager; use App\gateway\ImageManager;
use App\modele\MembreModele; use App\modele\MembreModele;
use Exception;
class MembreControleur extends UtilisateurControleur class MembreControleur extends UtilisateurControleur
{ {
@ -135,11 +136,18 @@ class MembreControleur extends UtilisateurControleur
{ {
global $twig; global $twig;
$profilModel = new MembreModele(); $profilModel = new MembreModele();
$profil = $profilModel->getFormationByProfil($_SESSION["id"]); $experienceModel = new MembreModele();
var_dump($profil); $formationModel = new MembreModele();
$profil = $profilModel->getProfilById($_SESSION["id"]);
//var_dump($profil);
$exp = $experienceModel->getExperienceByProfil($_SESSION["id"]);
//var_dump($exp);
$form = $formationModel->getFormationByProfil($_SESSION["id"]);
// var_dump($profil);
if(isset($profil)) if(isset($profil))
{ {
echo $twig->render("monProfil.html",['profil' => $profil]); echo $twig->render("monProfil.html",['profil' => $profil, 'experience' => $exp, 'formation'=>$form]);
return; return;
} }
} }
@ -150,6 +158,7 @@ class MembreControleur extends UtilisateurControleur
$formationModel = new MembreModele(); $formationModel = new MembreModele();
$form = $formationModel->getFormationByProfil($_SESSION["id"]); $form = $formationModel->getFormationByProfil($_SESSION["id"]);
var_dump($form); var_dump($form);
echo "Je rentre dans la formation";
if(isset($form)) if(isset($form))
{ {
echo $twig->render("detailFormation.html",['formation' => $form]); echo $twig->render("detailFormation.html",['formation' => $form]);
@ -166,25 +175,36 @@ class MembreControleur extends UtilisateurControleur
public function addFormation() public function addFormation()
{ {
global $twig; global $twig;
try {
if (!Validation::validerFormation($_SESSION["id"], $_POST["nom"], $_POST["ville"], $_POST["dateDeb"], $_POST["dateFin"], $_POST["currentFormation"])) { if (Validation::validerFormation($_SESSION["id"], $_POST["nom"], $_POST["ville"], $_POST["dateDeb"], $_POST["dateFin"], $_POST["currentFormation"])) {
$modele = new MembreModele(); $modele = new MembreModele();
$form = $modele->addExperience($_SESSION["id"], $_POST["nom"], $_POST["ville"], $_POST["dateDeb"], $_POST["dateFin"], $_POST["currentFormation"]); $form = $modele->addExperience($_SESSION["id"], $_POST["nom"], $_POST["ville"], $_POST["dateDeb"], $_POST["dateFin"], $_POST["currentFormation"]);
var_dump($form); var_dump($form);
$this->displayExperience($_SESSION["id"]); $this->displayProfil($_SESSION["id"]);
echo $twig->render('creerFormation.html', ['formation' => $form]); echo $twig->render('creerFormation.html', ['formation' => $form]);
} else { } else {
$dVueErreur[] ="Erreur lors de la création de la formation"; $dVueErreur[] ="Veillez entrer des valeurs correctes";
echo $twig->render("erreur.html",['dVueErreur' => $dVueErreur]); echo $twig->render("erreur.html",['dVueErreur' => $dVueErreur]);
} }
} catch(Exception $e) {
$dVueErreur[] ="Erreur lors de la création de la formation";
echo $twig->render("erreur.html",['dVueErreur' => $dVueErreur]);
}
} }
public function deleteFormation(?array $params) public function deleteFormation(?array $params)
{ {
global $twing; global $twig;
$mdl = new MembreModele(); try {
$mdl->deleteFormation($params['id2']); $mdl = new MembreModele();
$this->displayFormation($_SESSION["id"]); $mdl->deleteFormation($params['id']);
$this->displayProfil($_SESSION["id"]);
} catch(Exception $e) {
$dVueErreur[] ="Erreur lors de la supression de la formation";
echo $twig->render("erreur.html",['dVueErreur' => $dVueErreur]);
}
} }
public function displayExperience() public function displayExperience()
@ -192,7 +212,8 @@ class MembreControleur extends UtilisateurControleur
global $twig; global $twig;
$experienceModel = new MembreModele(); $experienceModel = new MembreModele();
$exp = $experienceModel->getExperienceByProfil($_SESSION["id"]); $exp = $experienceModel->getExperienceByProfil($_SESSION["id"]);
//var_dump($exp); var_dump($exp);
echo "Je rentres dans les expériences";
if(isset($exp)) if(isset($exp))
{ {
echo $twig->render("detailExperience.html",['experience' => $exp]); echo $twig->render("detailExperience.html",['experience' => $exp]);
@ -209,26 +230,37 @@ class MembreControleur extends UtilisateurControleur
public function addExperience() public function addExperience()
{ {
global $twig; global $twig;
try {
if (!Validation::validerExperience($_SESSION["id"], $_POST["intitule"], $_POST["dateDeb"], $_POST["dateFin"], $_POST["nomEntreprise"], $_POST["currentJob"])) { if (Validation::validerExperience($_SESSION["id"], $_POST["intitule"], $_POST["dateDeb"], $_POST["dateFin"], $_POST["nomEntreprise"], $_POST["currentJob"]?? null)) {
$modele = new MembreModele(); $modele = new MembreModele();
$exp = $modele->addExperience($_SESSION["id"], $_POST["intitule"], $_POST["dateDeb"], $_POST["dateFin"], $_POST["nomEntreprise"], $_POST["currentJob"]); $exp = $modele->addExperience($_SESSION["id"], $_POST["intitule"], $_POST["dateDeb"], $_POST["dateFin"], $_POST["nomEntreprise"], $_POST["currentJob"]?? null);
var_dump($exp); // var_dump($exp);
$this->displayExperience($_SESSION["id"]); $this->displayProfil($_SESSION["id"]);
echo $twig->render('creerExperience.html', ['experience' => $exp]); echo $twig->render('creerExperience.html', ['experience' => $exp]);
} else { } else {
$dVueErreur[] ="Erreur lors de la création de l'évènement"; $dVueErreur[] ="Veillez entrer des valeurs correctes";
echo $twig->render("erreur.html",['dVueErreur' => $dVueErreur]); echo $twig->render("erreur.html",['dVueErreur' => $dVueErreur]);
} }
} catch (Exception $e){
$dVueErreur[] ="Erreur lors de la création de l'expérience";
echo $twig->render("erreur.html",['dVueErreur' => $dVueErreur]);
}
} }
public function deleteExperience(?array $params) public function deleteExperience(?array $params)
{ {
global $twing; global $twig;
$mdl = new MembreModele(); try {
$mdl->deleteExperience($params['id2']); $mdl = new MembreModele();
$this->displayExperience($_SESSION["id"]); $mdl->deleteExperience($params['id']);
$this->displayProfil($_SESSION["id"]);
} catch(Exception $e) {
$dVueErreur[] ="Erreur lors de la supression de l'expérience ";
echo $twig->render("erreur.html",['dVueErreur' => $dVueErreur]);
}
} }
} }

@ -46,7 +46,7 @@ class FormationGateway
$this->con->executeQuery($query, array( $this->con->executeQuery($query, array(
':profil' => array($profil, \PDO::PARAM_INT) ':profil' => array($profil, \PDO::PARAM_INT)
)); ));
var_dump($profil); // var_dump($profil);
// var_dump($this->con->getResults()); // var_dump($this->con->getResults());
return $this->con->getResults(); return $this->con->getResults();
} }

@ -34,9 +34,9 @@ class Experience
private string $nomEntreprise; private string $nomEntreprise;
/** /**
* @var bool Travail Actuel * @var ?bool Travail Actuel
*/ */
private bool $travailActuel; private ?bool $travailActuel;
/** /**
* @param int $id * @param int $id
@ -47,7 +47,7 @@ class Experience
* @param string $nomEntreprise * @param string $nomEntreprise
* @param bool $travailActuel * @param bool $travailActuel
*/ */
public function __construct(int $id, int $profil, string $intitule, string $dateDebut, string $dateFin, string $nomEntreprise, bool $travailActuel) public function __construct(int $id, int $profil, string $intitule, string $dateDebut, string $dateFin, string $nomEntreprise, ?bool $travailActuel)
{ {
$this->id = $id; $this->id = $id;
$this->profil = $profil; $this->profil = $profil;
@ -93,8 +93,8 @@ class Experience
return $this->nomEntreprise; return $this->nomEntreprise;
} }
public function isTravailActuel(): bool public function isTravailActuel(): ?bool
{ {
return $this->travailActuel; return $this->travailActuel ?? null;
} }
} }

@ -36,7 +36,7 @@ class Formation
/** /**
* @var bool Formation Actuelle * @var bool Formation Actuelle
*/ */
private bool $formationActuelle; private ?bool $formationActuelle;
/** /**
* @param int $id * @param int $id
@ -95,8 +95,8 @@ class Formation
return $this->dateFin; return $this->dateFin;
} }
public function isFormationActuelle(): bool public function isFormationActuelle(): ?bool
{ {
return $this->formationActuelle; return $this->formationActuelle ?? null;
} }
} }

@ -13,7 +13,7 @@ class Profil
/** /**
* @var string CV * @var string CV
*/ */
private string $cv; private ?string $cv;
/** /**
* @var string Nom * @var string Nom
@ -31,17 +31,17 @@ class Profil
*/ */
//image can be null //image can be null
private ?string $image; private ?string $image;
private string $linkedinUrl; private ?string $linkedinUrl;
/** /**
* @var string Url github * @var string Url github
*/ */
private string $githubUrl; private ?string $githubUrl;
/** /**
* @var string Url du portfolio * @var string Url du portfolio
*/ */
private string $portfolioUrl; private ?string $portfolioUrl;
/** /**
*@var array liste des formation d'un profil *@var array liste des formation d'un profil
@ -61,7 +61,7 @@ class Profil
* @param string $githubUrl * @param string $githubUrl
* @param string $portfolioUrl * @param string $portfolioUrl
*/ */
public function __construct(int $idProfil,string $nom, string $prenom, string $email, ?string $image,string $cv, string $linkedinUrl, string $githubUrl, string $portfolioUrl) public function __construct(int $idProfil,string $nom, string $prenom, string $email, ?string $image, ?string $cv, ?string $linkedinUrl, ?string $githubUrl, ?string $portfolioUrl)
{ {
$this->id = $idProfil; $this->id = $idProfil;
$this->nom = $nom; $this->nom = $nom;
@ -92,9 +92,9 @@ class Profil
return $this->image ?? 'logo.png'; return $this->image ?? 'logo.png';
} }
public function getCv(): string public function getCv(): ?string
{ {
return $this->cv; return $this->cv ?? null;
} }
public function getNom(): string public function getNom(): string
@ -107,22 +107,22 @@ class Profil
return $this->prenom; return $this->prenom;
} }
public function getLinkedinUrl(): string public function getLinkedinUrl(): ?string
{ {
return $this->linkedinUrl; return $this->linkedinUrl ?? null;
} }
public function getGithubUrl(): string public function getGithubUrl(): ?string
{ {
return $this->githubUrl; return $this->githubUrl ?? null;
} }
public function getEmail(): string public function getEmail(): string
{ {
return $this->email; return $this->email;
} }
public function getPortfolioUrl(): string public function getPortfolioUrl(): ?string
{ {
return $this->portfolioUrl; return $this->portfolioUrl ?? null;
} }
} }

@ -60,12 +60,12 @@ class MembreModele extends UtilisateurModele
$row['id'], $row['id'],
$row['nom'], $row['nom'],
$row['prenom'], $row['prenom'],
$row['image'],
$row['email'], $row['email'],
$row['cv'], $row['image'] ?? null,
$row['linkedinUrl'], $row['cv'] ?? null,
$row['githubUrl'], $row['linkedinURL'] ?? null,
$row['portfolioUrl'] $row['githubURL'] ?? null,
$row['portfolioURL'] ?? null
); );
} }
return $profil; return $profil;
@ -122,7 +122,7 @@ class MembreModele extends UtilisateurModele
/** /**
* @description ajouter Experience * @description ajouter Experience
*/ */
public function addExperience($idExperience, string $intitule, string $dateDeb, string $dateFin, string $nomEntreprise, string $currentJob) public function addExperience($idExperience, string $intitule, string $dateDeb, string $dateFin, string $nomEntreprise, ?string $currentJob)
{ {
$exp = new Experience( $exp = new Experience(
$this->experienceGw->getNewId(), $this->experienceGw->getNewId(),
@ -133,8 +133,10 @@ class MembreModele extends UtilisateurModele
$nomEntreprise, $nomEntreprise,
$currentJob $currentJob
); );
var_dump($exp);
$this->experienceGw->addExperience($exp); $this->experienceGw->addExperience($exp);
} }
/** /**
@ -153,7 +155,7 @@ class MembreModele extends UtilisateurModele
$data = $this->formationGw->getFormationFromProfil($idProfil); $data = $this->formationGw->getFormationFromProfil($idProfil);
$formation = array(); $formation = array();
var_dump($data); // var_dump($data);
foreach($data as $row) foreach($data as $row)
{ {
$formation[] = new Formation( $formation[] = new Formation(
@ -166,14 +168,14 @@ class MembreModele extends UtilisateurModele
$row['currentFormation'] $row['currentFormation']
); );
} }
var_dump($formation); // var_dump($formation);
return $formation; return $formation;
} }
/** /**
* @description ajouter une formation * @description ajouter une formation
*/ */
public function addFormation($idExperience, string $nom, string $ville, string $dateDeb, string $dateFin, string $currentFormation) public function addFormation($idExperience, string $nom, string $ville, string $dateDeb, string $dateFin, ?string $currentFormation)
{ {
$form = new Formation( $form = new Formation(
$this->experienceGw->getNewId(), $this->experienceGw->getNewId(),

@ -38,7 +38,7 @@
</div> </div>
<div> <div>
<input type="submit" value="addExperience"> <input type="submit" value="user/addExperience">
</div> </div>
</form> </form>

@ -33,7 +33,7 @@
</div> </div>
<div> <div>
<label for="currentFormation">Job en cours ? :</label> <label for="currentFormation">Formation en cours ? :</label>
<input type="checkbox" name="currentFormation" id="currentFormation"> <input type="checkbox" name="currentFormation" id="currentFormation">
</div> </div>

@ -10,13 +10,14 @@
<div> <div>
{% if experience %} {% if experience %}
{% for exp in experience %} {% for exp in experience %}
<h2>Détails de l'Événement : {{exp.getIntitule()}}</h2> <h2>Détails de l'expérience : {{exp.getIntitule()}}</h2>
<div> <div>
<p><strong>nom de l'entreprise :</strong> {{ exp.getNomEntreprise() }}</p> <p><strong>nom de l'entreprise :</strong> {{ exp.getNomEntreprise() }}</p>
<p><strong>Date de début :</strong> {{ exp.getDateDebut() }}</p> <p><strong>Date de début :</strong> {{ exp.getDateDebut() }}</p>
<p><strong>Date de fin :</strong> {{ exp.getDateFin }}</p> <p><strong>Date de fin :</strong> {{ exp.getDateFin }}</p>
<p><strong>Job en cours ? :</strong> {{ exp.isTravailActuel() }}</p> <p><strong>Job en cours ? :</strong> {{ exp.isTravailActuel() }}</p>
</div> </div>
<a href="{{dir}}/user/{{exp.getId}}/deleteExperience">Supprimer cette experience</a>
{% endfor %} {% endfor %}
{% else %} {% else %}
<p>Aucune expérience n'a été ajouté</p> <p>Aucune expérience n'a été ajouté</p>
@ -25,7 +26,7 @@
<div> <div>
<a href="{{dir}}/user/experienceForm">Ajouter Experience</a> <a href="{{dir}}/user/experienceForm">Ajouter Experience</a>
<br> <br>
<a href="{{dir}}/user/displayExperience">Retour</a> <a href="{{dir}}/user/displayProfil">Retour</a>
</div> </div>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script> <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>

@ -16,6 +16,7 @@
<p><strong>Date de début :</strong> {{ form.getDateDebut() }}</p> <p><strong>Date de début :</strong> {{ form.getDateDebut() }}</p>
<p><strong>Date de fin :</strong> {{ form.getDateFin }}</p> <p><strong>Date de fin :</strong> {{ form.getDateFin }}</p>
<p><strong>Formation en cours ? :</strong> {{ form.isFormationActuelle() }}</p> <p><strong>Formation en cours ? :</strong> {{ form.isFormationActuelle() }}</p>
<a href="{{dir}}/user/{{form.getId}}/deleteFormation">Supprimer cette formation</a>
</div> </div>
{% endfor %} {% endfor %}
{% else %} {% else %}
@ -25,7 +26,7 @@
<div> <div>
<a href="{{dir}}/user/FormationForm">Ajouter Formation</a> <a href="{{dir}}/user/FormationForm">Ajouter Formation</a>
<br> <br>
<a href="{{dir}}/user/displayFormation">Retour</a> <a href="{{dir}}/user/displayProfil">Retour</a>
</div> </div>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script> <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>

@ -3,9 +3,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
{% if profil %} <title> Mon profil </title>
<title>{profil.getNom()} {profil.getprenom()} </title>
{% endif %}
<link rel="stylesheet" href=""> <link rel="stylesheet" href="">
</head> </head>
<body> <body>
@ -16,15 +14,17 @@
<div> <div>
{% if profil %} {% if profil %}
<h1>Profil de : {{ profil.nom }} {{ profil.prenom }}</h1> <!-- <p>{{ dump(profil) }}</p> -->
<!-- By Thomas -->
<!-- Je ne comprends pas pourquoi le contenu du profil ne s'affiche pas -->
<h1>Profil de : {{ profil.getNom() }} {{ profil.getPrenom() }}</h1>
<div> <div>
<p><strong>Nom :</strong> {{ profil.nom }}</p> <p><strong>Mail :</strong> {{ profil.getEmail() }}</p>
<p><strong>Prenom :</strong> {{ profil.prenom }}</p> <p><strong>Linkedin :</strong> {{ profil.getLinkedinUrl() }}</p>
<p><strong> :</strong> </p> <p><strong>Git :</strong> {{ profil.getGithubUrl() }}</p>
<p><strong> :</strong> </p> <p><strong>Portforlio :</strong> {{ profil.getPortfolioUrl() }}</p>
<!-- Modification du profil --> <!-- Modification du profil -->
<a href="{{dir}}/user/displayProfil">Modifier profil</a>
</div> </div>
{% else %} {% else %}
<p>Error Profil</p> <p>Error Profil</p>
@ -32,11 +32,13 @@
</div> </div>
<div> <div>
<h1> Mes expériences </h1>
<!-- Partie expérience de l'utilisateur --> <!-- Partie expérience de l'utilisateur -->
{% include "detailExperience.html" %} {% include "detailExperience.html" %}
</div> </div>
<div> <div>
<h1> Mes formations </h1>
<!-- Partie formation de l'utilisateur --> <!-- Partie formation de l'utilisateur -->
{% include "detailFormation.html" %} {% include "detailFormation.html" %}
</div> </div>

Loading…
Cancel
Save