diff --git a/accueil.php b/accueil.php index 601c81f..a7be100 100644 --- a/accueil.php +++ b/accueil.php @@ -12,6 +12,7 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) { Accueil - CTS + diff --git a/assets/images/fond_cesi_large.png b/assets/images/fond_cesi_large.png index b7e8093..e9fc96f 100644 Binary files a/assets/images/fond_cesi_large.png and b/assets/images/fond_cesi_large.png differ diff --git a/assets/images/fond_cesi_large_inital.png b/assets/images/fond_cesi_large_inital.png new file mode 100644 index 0000000..b7e8093 Binary files /dev/null and b/assets/images/fond_cesi_large_inital.png differ diff --git a/assets/js/offres_stages.js b/assets/js/offres_stages.js index 8459226..ba24ffe 100644 --- a/assets/js/offres_stages.js +++ b/assets/js/offres_stages.js @@ -35,6 +35,10 @@ $(document).ready(function(){ $(".modal").show(); }); + $(".close:eq(0)").click(function() { + $(".modal").hide(); + }); + window.onclick = function(event) { if (event.target == document.getElementById("modal_postuler")) { $(".modal").hide(); diff --git a/candidatures.php b/candidatures.php index bb9bc65..0708408 100644 --- a/candidatures.php +++ b/candidatures.php @@ -8,7 +8,6 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) { $query_check_cookie->execute(['user' => $_COOKIE['username'], 'password_user' => $_COOKIE['pass']]); if ($query_check_cookie->rowCount() == 1){ - $sql = 'SELECT ID_candidature, progression_candidature, cv_file_path_candidature, lm_file_path_candidature, validation_form_file_path_candidature, internship_agreement_file_path_candidature, name_internship, name_company, email_company, ID_user, username, city_localisation, postal_code_localisation FROM candidatures NATURAL JOIN users INNER JOIN internships ON candidatures.ID_internship=internships.ID_internship INNER JOIN localisations ON internships.ID_localisation=localisations.ID_localisation NATURAL JOIN companies WHERE username=:user ORDER BY offer_date_internship ASC;'; $query_perm = $bdd->prepare('SELECT username, code_permission, name_role FROM users NATURAL JOIN roles NATURAL JOIN roles_has_permissions NATURAL JOIN permissions WHERE username=:user;'); $query_perm->execute(['user' => $_COOKIE["username"]]); $results_perm = $query_perm->fetchALL(PDO::FETCH_OBJ); @@ -22,9 +21,17 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) { } if ($showCandidatures){ - $query_candidatures = $bdd->prepare($sql); - $query_candidatures->execute(['user' => $_COOKIE["username"]]); - $results_candidatures = $query_candidatures->fetchALL(PDO::FETCH_OBJ); + if ($results_perm[0]->name_role == "Etudiant") { + $sql = 'SELECT ID_candidature, progression_candidature, cv_file_path_candidature, lm_file_path_candidature, validation_form_file_path_candidature, internship_agreement_file_path_candidature, name_internship, name_company, email_company, ID_user, username, city_localisation, postal_code_localisation FROM candidatures NATURAL JOIN users INNER JOIN internships ON candidatures.ID_internship=internships.ID_internship INNER JOIN localisations ON internships.ID_localisation=localisations.ID_localisation NATURAL JOIN companies WHERE username=:user ORDER BY offer_date_internship ASC;'; + $query_candidatures = $bdd->prepare($sql); + $query_candidatures->execute(['user' => $_COOKIE["username"]]); + $results_candidatures = $query_candidatures->fetchALL(PDO::FETCH_OBJ); + } else if ($results_perm[0]->name_role == "Pilote") { + $sql = 'SELECT ID_candidature, ID_user, username, firstname_user, lastname_user, progression_candidature, cv_file_path_candidature, lm_file_path_candidature, validation_form_file_path_candidature, internship_agreement_file_path_candidature, name_internship, name_company, email_company, city_localisation, postal_code_localisation FROM users NATURAL JOIN user_belong_promo NATURAL JOIN promotions NATURAL JOIN roles NATURAL JOIN candidatures INNER JOIN internships ON candidatures.ID_internship=internships.ID_internship NATURAL JOIN companies INNER JOIN localisations ON internships.ID_localisation=localisations.ID_localisation WHERE name_role="Etudiant" AND ID_promotion IN (SELECT ID_promotion FROM users NATURAL JOIN user_belong_promo NATURAL JOIN promotions WHERE username=:user);'; + $query_candidatures = $bdd->prepare($sql); + $query_candidatures->execute(['user' => $_COOKIE["username"]]); + $results_candidatures = $query_candidatures->fetchALL(PDO::FETCH_OBJ); + } ?> @@ -66,9 +73,21 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) { $query_perm_step2 = $bdd->prepare('SELECT code_permission FROM users NATURAL JOIN roles NATURAL JOIN roles_has_permissions NATURAL JOIN permissions WHERE code_permission="SFx31" AND username=:user;'); $query_perm_step2->execute(['user' => $_COOKIE["username"]]); if ($query_perm_step2->rowCount() >= 1) { - echo '
Est-ce que la réponse de la part de l\'entreprise est positive ?
'; - echo ''; - echo ''; + echo '
Est-ce que la réponse de l\'entreprise est positive ?
'; + ?> +
+ + + + +
+
+ + + + +
+ Vous n\'avez pas la permission d\'entrer la réponse de l\'entreprise... Veuillez contacter votre pilote ou délégué(e).'; } @@ -78,21 +97,32 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) {
Status
La candidature est actuellement en attendre d'une fiche de validation de sujet de stage complétée et signée par l'entreprise.
Prochaine étape:
- A partir de l'adresse email de l'entreprise, nous vous invitons à la contacter afin de leur adresser votre CV et lettre de motivation. + A présent, vous pouvez envoyer la fiche de validation à l'entreprise pour ensuite la déposer complétée ci-dessous.
prepare('SELECT code_permission FROM users NATURAL JOIN roles NATURAL JOIN roles_has_permissions NATURAL JOIN permissions WHERE code_permission="SFx31" AND username=:user;'); - $query_perm_step2->execute(['user' => $_COOKIE["username"]]); - if ($query_perm_step2->rowCount() >= 1) { - echo '
Est-ce que la réponse de la part de l\'entreprise est positive ?
'; - echo ''; - echo ''; - } else { + $query_perm_step3 = $bdd->prepare('SELECT code_permission FROM users NATURAL JOIN roles NATURAL JOIN roles_has_permissions NATURAL JOIN permissions WHERE code_permission="SFx32" AND username=:user;'); + $query_perm_step3->execute(['user' => $_COOKIE["username"]]); + if ($query_perm_step3->rowCount() >= 1) { ?> +
+
+
+ + +
+ +
+ Vous n\'avez pas la permission d\'entrer la réponse de l\'entreprise... Veuillez contacter votre pilote ou délégué(e).'; } - ?> - + } else if ($result->progression_candidature == 3) { ?> +
Status
+
La candidature est actuellement en attendre d'une fiche de validation de sujet de stage signée par le pilote.
+
Prochaine étape:
+ Le pilote a été averti de votre dépôt. Il signera votre fiche de validation +
+
@@ -150,8 +180,139 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) {
name_role == "Pilote" || $results_perm[0]->name_role == "Délégué(e)") { //Ici le contenu que le tuteur doit voir + if ($query_candidatures->rowCount() >= 1) { + foreach ($results_candidatures as $result) { + ?> +
+
name_internship; ?>
+
+
+
+ name_company; ?> +
+ city_localisation; ?> postal_code_localisation; ?> - email_company; ?> +
+ progression_candidature == 0) {echo "Vous avez indiquez que l'entreprise a répondu négativemet à votre demande.
Ne perdez pas espoir :)";} + else if ($result->progression_candidature == 1) {?> +
Status
+
La candidature est actuellement en attente de réponse de l'entreprise.
+
Prochaine étape:
+ A partir de l'adresse email de l'entreprise, nous vous invitons à la contacter afin de leur adresser votre CV et lettre de motivation. +
+ + prepare('SELECT code_permission FROM users NATURAL JOIN roles NATURAL JOIN roles_has_permissions NATURAL JOIN permissions WHERE code_permission="SFx31" AND username=:user;'); + $query_perm_step2->execute(['user' => $_COOKIE["username"]]); + if ($query_perm_step2->rowCount() >= 1) { + echo '
Est-ce que la réponse de l\'entreprise est positive ?
'; + ?> +
+ + + + +
+
+ + + + +
+ Vous n\'avez pas la permission d\'entrer la réponse de l\'entreprise... Veuillez contacter votre pilote ou délégué(e).'; + } + ?> + progression_candidature == 2) { ?> +
Status
+
La candidature est actuellement en attendre d'une fiche de validation de sujet de stage complétée et signée par l'entreprise.
+
Prochaine étape:
+ A présent, vous pouvez envoyer la fiche de validation à l'entreprise pour ensuite la déposer complétée ci-dessous. +
+ + prepare('SELECT code_permission FROM users NATURAL JOIN roles NATURAL JOIN roles_has_permissions NATURAL JOIN permissions WHERE code_permission="SFx32" AND username=:user;'); + $query_perm_step3->execute(['user' => $_COOKIE["username"]]); + if ($query_perm_step3->rowCount() >= 1) { ?> +
+
+
+ + +
+ +
+ Vous n\'avez pas la permission d\'entrer la réponse de l\'entreprise... Veuillez contacter votre pilote ou délégué(e).'; + } + } else if ($result->progression_candidature == 3) { ?> +
Status
+
La candidature est actuellement en attendre d'une fiche de validation de sujet de stage signée par le pilote.
+
Prochaine étape:
+ Le pilote a été averti de votre dépôt. Il signera votre fiche de validation +
+ +
+
+
+ +
Fichiers en lien avec la candidature:
+ + + + + + + + + + + + + + + + +
Curriculum Vitae : + cv_file_path_candidature != "") {echo 'Déposé ';} + else {echo 'Non disponible ';} + ?> +
Lettre de motivation : + lm_file_path_candidature != "") {echo 'Déposé ';} + else {echo 'Non disponible ';} + ?> +
Fiche de validation : + validation_form_file_path_candidature != "") {echo 'Déposé ';} + else {echo 'Non disponible ';} + ?> +
Convention de stage : + internship_agreement_file_path_candidature != "") {echo 'Déposé ';} + else {echo 'Non disponible ';} + ?> +
+
+
+
+ +
+
Tout est vide...
+
+ Aucun de vos étudiants n'a postulé à un stage   +
+
+ diff --git a/controller/Auth.php b/controller/Auth.php index 195e950..d43cc41 100644 --- a/controller/Auth.php +++ b/controller/Auth.php @@ -18,7 +18,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { /*Seulem $query->execute(['user' => $user]); /*Execution de la requête*/ } else { echo "false";} $bdd = null; /*Fin de connexion*/ - } else {echo "false";} /*Dans le cas d'une erreur de connexion à la BDD, retour false (erreur d'authentification)*/ + } else {echo "falsee";} /*Dans le cas d'une erreur de connexion à la BDD, retour false (erreur d'authentification)*/ } } ?> \ No newline at end of file diff --git a/controller/Manage_candidatures.php b/controller/Manage_candidatures.php index cd94a1d..67de71f 100644 --- a/controller/Manage_candidatures.php +++ b/controller/Manage_candidatures.php @@ -16,33 +16,98 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) { $query_check_cookie->execute(['user' => $_COOKIE['username'], 'password_user' => $_COOKIE['pass']]); if ($query_check_cookie->rowCount() == 1){ - if (isset($_GET["response"]) && isset($_GET["ID_candidature"])) { - $response = $_GET["response"]; - $ID_candidature = $_GET["ID_candidature"]; + if (isset($_POST["ID_candidature"]) && isset($_POST["progression_candidature"])) { + $ID_candidature = $_POST["ID_candidature"]; + $progression_candidature = $_POST["progression_candidature"]; - $query_perm_step2 = $bdd->prepare('SELECT code_permission FROM users NATURAL JOIN roles NATURAL JOIN roles_has_permissions NATURAL JOIN permissions WHERE code_permission="SFx31" AND username=:user;'); - $query_perm_step2->execute(['user' => $_COOKIE["username"]]); - if ($query_perm_step2->rowCount() >= 1) { - $query_check_user_candidature = $bdd->prepare('SELECT * FROM users NATURAL JOIN candidatures WHERE username=:user AND ID_candidature=:ID_candidature;'); - $query_check_user_candidature->execute(['user' => $_COOKIE["username"], 'ID_candidature' => $ID_candidature]); - if ($query_perm_step2->rowCount() >= 1) { - if ($response == "y") { - $query_update_candidature = $bdd->prepare('UPDATE candidatures SET progression_candidature = "2" WHERE ID_candidature=:ID_candidature;'); - $query_update_candidature->execute(['ID_candidature' => $ID_candidature]); - } else if ($response == "n") { - $query_update_candidature = $bdd->prepare('UPDATE candidatures SET progression_candidature = "0" WHERE ID_candidature=:ID_candidature;'); - $query_update_candidature->execute(['ID_candidature' => $ID_candidature]); + if ($progression_candidature == "1"){ + if (isset($_POST["response"])) { + $response = $_POST["response"]; + + $query_perm_step2 = $bdd->prepare('SELECT code_permission FROM users NATURAL JOIN roles NATURAL JOIN roles_has_permissions NATURAL JOIN permissions WHERE code_permission="SFx31" AND username=:user;'); + $query_perm_step2->execute(['user' => $_COOKIE["username"]]); + if ($query_perm_step2->rowCount() >= 1) { + $query_check_user_candidature = $bdd->prepare('SELECT * FROM users NATURAL JOIN candidatures WHERE username=:user AND ID_candidature=:ID_candidature;'); + $query_check_user_candidature->execute(['user' => $_COOKIE["username"], 'ID_candidature' => $ID_candidature]); + if ($query_perm_step2->rowCount() >= 1) { + if ($response == "y") { + $query_update_candidature = $bdd->prepare('UPDATE candidatures SET progression_candidature = "2" WHERE ID_candidature=:ID_candidature;'); + $query_update_candidature->execute(['ID_candidature' => $ID_candidature]); + } else if ($response == "n") { + $query_update_candidature = $bdd->prepare('UPDATE candidatures SET progression_candidature = "0" WHERE ID_candidature=:ID_candidature;'); + $query_update_candidature->execute(['ID_candidature' => $ID_candidature]); + } + } + echo ""; + } else { + header('HTTP/1.0 403 Forbidden'); + require "controller/403.php"; + } + } + + } else if ($progression_candidature == "2") { + $query_perm_step3 = $bdd->prepare('SELECT ID_user, code_permission, firstname_user, lastname_user FROM users NATURAL JOIN roles NATURAL JOIN roles_has_permissions NATURAL JOIN permissions WHERE code_permission="SFx32" AND username=:user;'); + $query_perm_step3->execute(['user' => $_COOKIE["username"]]); + $results_perm_step3 = $query_perm_step3->fetchALL(PDO::FETCH_OBJ); + if ($query_perm_step3->rowCount() >= 1) { + $query_ID_internship = $bdd->prepare('SELECT ID_internship FROM candidatures WHERE ID_candidature=:ID_candidature;'); + $query_ID_internship->execute(['ID_candidature' => $ID_candidature]); + $results_ID_internship = $query_ID_internship->fetchALL(PDO::FETCH_OBJ); + if (is_uploaded_file($_FILES['fvss']['tmp_name'])){ + $query_pilots_of_user = $bdd->prepare('SELECT ID_user, firstname_user, lastname_user, email_user FROM users NATURAL JOIN user_belong_promo NATURAL JOIN promotions INNER JOIN roles ON roles.ID_role=users.ID_role WHERE (name_role="Pilote" OR name_role="Délégué(e)") AND ID_promotion=(SELECT ID_promotion FROM users NATURAL JOIN user_belong_promo NATURAL JOIN promotions WHERE username=:user);'); + $query_pilots_of_user->execute(['user' => $_COOKIE["username"]]); + $results_pilots_of_user = $query_pilots_of_user->fetchALL(PDO::FETCH_OBJ); + + $location_fvss = "/documents/users/".$results_perm_step3[0]->ID_user."/"."candidatures/".$results_ID_internship[0]->ID_internship."/".$_FILES['fvss']['name']; + + try { + if (!is_dir("../documents/users/".$results_perm_step3[0]->ID_user."/"."candidatures/".$results_ID_internship[0]->ID_internship)){ + mkdir("../documents/users/".$results_perm_step3[0]->ID_user."/"."candidatures/".$results_ID_internship[0]->ID_internship, 0700); + } + + move_uploaded_file($_FILES['fvss']['tmp_name'], "..".$location_fvss); + + $query_update_candidature = $bdd->prepare('UPDATE candidatures SET progression_candidature="3", validation_form_file_path_candidature=:location_fvss WHERE ID_candidature=:ID_candidature; '); + $query_update_candidature->execute(['location_fvss' => $location_fvss, 'ID_candidature' => $ID_candidature]); + + try { + $mail->isSMTP(); + $mail->Host = 'smtp.gmail.com'; + $mail->SMTPAuth = true; + $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; + $mail->Port = 587; + + $mail->Username = 'teamspeakcompte@gmail.com'; + $mail->Password = 'wptjusfmrxurmgcf'; + + $mail->setFrom('teamspeakcompte@gmail.com', 'Ceci Ton Stage'); + foreach ($results_pilots_of_user as $result) { + $mail->addAddress($result->email_user, $result->firstname_user." ".$result->lastname_user); + } + + $mail->IsHTML(true); + $mail->Subject = "CTS - Depot de candidature"; + $mail->Body = 'Bonjour, une fiche de validation a ete depose par '.$results_perm_step3[0]->firstname_user.' '.$results_perm_step3[0]->lastname_user.'. Vous pouvez des a present vous connecter et apposer votre signature.'; + //$mail->AltBody = 'Plain text message body for non-HTML email client. Gmail SMTP email body.'; + + $mail->send(); + echo "Email message sent."; + } catch (Exception $e) { + echo "Error in sending email. Mailer Error: {$mail->ErrorInfo}"; + } + + echo ""; + + } catch (Exception $e) { + echo "zut une erreur"; + } } - echo ""; - } else { - echo ""; } - } else { - header('HTTP/1.0 403 Forbidden'); - require "controller/403.php"; } } } } +} else { + echo ""; } ?> \ No newline at end of file diff --git a/controller/Postuler.php b/controller/Postuler.php index dca3fbb..12acc19 100644 --- a/controller/Postuler.php +++ b/controller/Postuler.php @@ -66,7 +66,6 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) { if ($permAlertPilot) { try { - $mail->SMTPDebug = SMTP::DEBUG_SERVER; $mail->isSMTP(); $mail->Host = 'smtp.gmail.com'; $mail->SMTPAuth = true; diff --git a/controller/Top_bar.php b/controller/Top_bar.php index a012884..26948c1 100644 --- a/controller/Top_bar.php +++ b/controller/Top_bar.php @@ -10,7 +10,7 @@
- +
diff --git a/documents/users/1/candidatures/4/CV.pdf b/documents/users/1/candidatures/4/CV.pdf new file mode 100644 index 0000000..e41ab97 Binary files /dev/null and b/documents/users/1/candidatures/4/CV.pdf differ diff --git a/documents/users/1/candidatures/4/FVSS.pdf b/documents/users/1/candidatures/4/FVSS.pdf new file mode 100644 index 0000000..c59a21e Binary files /dev/null and b/documents/users/1/candidatures/4/FVSS.pdf differ diff --git a/documents/users/1/candidatures/4/LM.pdf b/documents/users/1/candidatures/4/LM.pdf new file mode 100644 index 0000000..0d8eff2 Binary files /dev/null and b/documents/users/1/candidatures/4/LM.pdf differ diff --git a/documents/users/2/candidatures/2/CV.pdf b/documents/users/2/candidatures/2/CV.pdf new file mode 100644 index 0000000..e41ab97 Binary files /dev/null and b/documents/users/2/candidatures/2/CV.pdf differ diff --git a/documents/users/2/candidatures/2/FVSS.pdf b/documents/users/2/candidatures/2/FVSS.pdf new file mode 100644 index 0000000..c59a21e Binary files /dev/null and b/documents/users/2/candidatures/2/FVSS.pdf differ diff --git a/documents/users/2/candidatures/2/LM.pdf b/documents/users/2/candidatures/2/LM.pdf new file mode 100644 index 0000000..0d8eff2 Binary files /dev/null and b/documents/users/2/candidatures/2/LM.pdf differ diff --git a/documents/users/2/candidatures/3/CV.pdf b/documents/users/2/candidatures/3/CV.pdf new file mode 100644 index 0000000..e41ab97 Binary files /dev/null and b/documents/users/2/candidatures/3/CV.pdf differ diff --git a/documents/users/2/candidatures/3/LM.pdf b/documents/users/2/candidatures/3/LM.pdf new file mode 100644 index 0000000..0d8eff2 Binary files /dev/null and b/documents/users/2/candidatures/3/LM.pdf differ diff --git a/offres_stages.php b/offres_stages.php index 509245d..2a01ae3 100644 --- a/offres_stages.php +++ b/offres_stages.php @@ -112,11 +112,11 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) {
Curriculum Vitae
-
+
Lettre de motivation
-
+
@@ -135,9 +135,9 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) {
-
Localisation:
+
-
-
Competences:
+
-
-
Niveau de confiance:
+
-
-
Date de début:
+
- +
-
Durée:
+
- +
-
Promotion:
+
-