Commit 190eeb61 authored by okhin's avatar okhin 🚴

Merge branch '32-nouveau-front' into 'preprod'

Ajout des petits triangles

See merge request !30
parents 3d6385d9 3a43f954
Pipeline #2123 passed with stages
in 1 minute and 19 seconds
...@@ -25,6 +25,12 @@ class Perso extends Controller ...@@ -25,6 +25,12 @@ class Perso extends Controller
$this->get_contreparties($f3); $this->get_contreparties($f3);
$this->get_dons($f3); $this->get_dons($f3);
$this->get_recurrents($f3); $this->get_recurrents($f3);
if ($f3->exists('GET.validate')) {
$f3->set('modal_counterparts', '1');
$f3->clear('GET.validate');
} else {
$f3->set('modal_counterparts', '0');
};
$f3->set('block_content', 'user/perso.html'); $f3->set('block_content', 'user/perso.html');
} }
...@@ -356,6 +362,7 @@ class Perso extends Controller ...@@ -356,6 +362,7 @@ class Perso extends Controller
// Récupération des valeurs du formulaire // Récupération des valeurs du formulaire
$adresse_id = $f3->get('adresse_id'); $adresse_id = $f3->get('adresse_id');
$quoi = $f3->get('quoi'); $quoi = $f3->get('quoi');
$commentaire = $f3->get('commentaire');
$valeur = 0; $valeur = 0;
$piplome_id = intval(substr($f3->get('piplome_id'), 0, strpos($f3->get('piplome_id'), '_'))); $piplome_id = intval(substr($f3->get('piplome_id'), 0, strpos($f3->get('piplome_id'), '_')));
$taille = intval($f3->get('taille')); $taille = intval($f3->get('taille'));
...@@ -380,22 +387,22 @@ class Perso extends Controller ...@@ -380,22 +387,22 @@ class Perso extends Controller
if ($cumul >= $valeur) { if ($cumul >= $valeur) {
switch ($quoi) { switch ($quoi) {
case 'piplome': case 'piplome':
$db->query("INSERT INTO contreparties (user_id,datec,quoi,taille,adresse_id,status) VALUES ('".$f3->get('SESSION.id')."',NOW(),'piplome','".\Utils::asl($piplome_id)."','".\Utils::asl($adresse_id)."',1)"); $db->query("INSERT INTO contreparties (user_id,datec,quoi,taille,adresse_id,status,commentaire) VALUES ('".$f3->get('SESSION.id')."',NOW(),'piplome','".\Utils::asl($piplome_id)."','".\Utils::asl($adresse_id)."',1, '".\Utils::asl($commentaire)."')");
break; break;
case 'pibag': case 'pibag':
$db->query("INSERT INTO contreparties (user_id,datec,quoi,taille,adresse_id,status) VALUES ('".$f3->get('SESSION.id')."',NOW(),'pibag','','".\Utils::asl($adresse_id)."',1)"); $db->query("INSERT INTO contreparties (user_id,datec,quoi,taille,adresse_id,status) VALUES ('".$f3->get('SESSION.id')."',NOW(),'pibag','','".\Utils::asl($adresse_id)."',1, '".\Utils::asl($commentaire)."')");
break; break;
case 'pishirt': case 'pishirt':
$db->query("INSERT INTO contreparties (user_id,datec,quoi,taille,adresse_id,status) VALUES ('".$f3->get('SESSION.id')."',NOW(),'pishirt','".\Utils::asl($taille)."','".\Utils::asl($adresse_id)."',1)"); $db->query("INSERT INTO contreparties (user_id,datec,quoi,taille,adresse_id,status) VALUES ('".$f3->get('SESSION.id')."',NOW(),'pishirt','".\Utils::asl($taille)."','".\Utils::asl($adresse_id)."',1, '".\Utils::asl($commentaire)."')");
break; break;
case 'hoopie': case 'hoopie':
$db->query("INSERT INTO contreparties (user_id,datec,quoi,taille,adresse_id,status) VALUES ('".$f3->get('SESSION.id')."',NOW(),'hoodie','".\Utils::asl($taille_h)."','".\Utils::asl($adresse_id)."',1)"); $db->query("INSERT INTO contreparties (user_id,datec,quoi,taille,adresse_id,status) VALUES ('".$f3->get('SESSION.id')."',NOW(),'hoodie','".\Utils::asl($taille_h)."','".\Utils::asl($adresse_id)."',1, '".\Utils::asl($commentaire)."')");
} }
} }
// Puis diminution du cumul de la valeur des contreparties // Puis diminution du cumul de la valeur des contreparties
$db->query("UPDATE users SET cumul = cumul - ".$valeur." WHERE id='".$f3->get('SESSION.id')."'"); $db->query("UPDATE users SET cumul = cumul - ".$valeur." WHERE id='".$f3->get('SESSION.id')."'");
$f3->set('msg', _("Merci, vos contreparties seront envoyées dès que possible !")); $f3->set('msg', _("Merci, vos contreparties seront envoyées dès que possible !"));
$this->show($f3, $args); $f3->reroute('/perso');
} }
public function receipt($f3, $params) public function receipt($f3, $params)
......
...@@ -5,6 +5,5 @@ ...@@ -5,6 +5,5 @@
<include href="toolbar.html" /> <include href="toolbar.html" />
<include href="{{ @block_content }}" /> <include href="{{ @block_content }}" />
<include href="footer.html" /> <include href="footer.html" />
</check>
</body> </body>
</html> </html>
...@@ -30,11 +30,13 @@ ...@@ -30,11 +30,13 @@
<!-- Custom Styles pour la version 2018 --> <!-- Custom Styles pour la version 2018 -->
<link rel="stylesheet" href="./static/css/custom.css" media="all"> <link rel="stylesheet" href="./static/css/custom.css" media="all">
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<!--
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
-->
<!-- Latest compiled and minified JavaScript --> <!-- Latest compiled and minified JavaScript -->
<!--
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
-->
</head> </head>
<div id="subtitle" class="row fluid"> <div id="subtitle" class="row">
<div class="page-header"> <div class="page-header">
<h1 class="text-left">{{ _("Merci de soutenir La Quadrature du Net &lt;3&nbsp;!")}}</h1> <h1 class="text-left">{{ _("Merci de soutenir La Quadrature du Net &lt;3&nbsp;!")}}</h1>
</div> </div>
</div>
<div id="perso" class="row fluid"> <div id="perso" class="row fluid">
<div class="col-md-4"><!-- Form infos du compte --> <div class="col-md-4"><!-- Form infos du compte -->
<div class="panel panel-default"> <div class="panel panel-default">
<input id="compte" type="checkbox"> <input id="compte" type="checkbox">
<label for="compte" class="panel-heading" role="tab" id="headingInfos"> <label for="compte" class="panel-heading" role="tab" id="headingInfos">
<div class="panel-heading" role="tab" id="headingInfos">
<div class="panel-title col-xs text-left"> <div class="panel-title col-xs text-left">
{{ _("Compte")}} {{ _("Compte")}}
<div class="panel-title col-xs-2 text-right"> <div class="panel-title col-xs-2 text-right">
...@@ -39,6 +39,31 @@ ...@@ -39,6 +39,31 @@
</div> </div>
</div> </div>
</div> </div>
<div id="collapseInfos" class="panel-collapse collapse" aria-labelledby="headingInfos">
<div class="panel-body text-left">
<form method="POST" action="{{ 'infos' | alias }}">
<input type="hidden" name="csrf" value="{{ @CSRF }}" />
<div class="form-group">
<label for="pseudo">{{ _("Pseudo") }}</label>
<input type="text" class="form-control" id="pseudo" name="pseudo" value="{{ @infos.pseudo }}">
</div>
<div class="form-group">
<label for="email">{{ _("Adresse mail")}}</label>
<input type="email" class="form-control" name="email" id="email" value="{{ @infos.email }}">
</div>
<div class="form-group">
<label for="password">{{ _("Mot de passe")}}</label>
<input type="password" class="form-control" name="password" id="password">
</div>
<div class="form-group">
<label for="password_confirmation">{{ _("Confirmation de mot de passe")}}</label>
<input type="password" class="form-control" name="password_confirmation" id="password_confirmation">
</div>
<input type="submit" class="btn btn-lg btn-primary c-boutonslongs" value="{{ _("Mettre à jour") }}">
</form>
</div>
</div>
</div>
</div><!-- /Form infos du compte --> </div><!-- /Form infos du compte -->
<div class="col-md-4"><!-- Form addresses --> <div class="col-md-4"><!-- Form addresses -->
<div class="panel panel-default"> <div class="panel panel-default">
...@@ -60,50 +85,50 @@ ...@@ -60,50 +85,50 @@
<select class="form-control"> <select class="form-control">
<repeat group="{{ @adresses }}" value="{{ @adresse }}"> <repeat group="{{ @adresses }}" value="{{ @adresse }}">
<option value="{{ @adresse.id }}">{{ @adresse.alias }}</option> <option value="{{ @adresse.id }}">{{ @adresse.alias }}</option>
</repeat>
</select> </select>
</div> </div>
</form> </form>
<h3>{{ _("Ajouter une nouvelle adresse.")}}</h3>
<h3>{{ _("Ajouter une nouvelle adresse")}}</h3>
<form method="POST" action="{{ 'adresses' | alias }}" id="create-adress-form"> <form method="POST" action="{{ 'adresses' | alias }}" id="create-adress-form">
<input type="hidden" name="csrf" value="{{ @CSRF }}" /> <input type="hidden" name="csrf" value="{{ @CSRF }}" />
<input type="hidden" name="action" value="ADD" /> <input type="hidden" name="action" value="ADD" />
<input type="hidden" name="id" value="{{ @adresse.id }}" /> <input type="hidden" name="id" value="" />
<div class="form-group"> <div class="form-group">
<label for="alias">{{ _("Nom de l'adresse")}}</label> <label for="alias">{{ _("Nom de l'adresse")}}</label>
<input type="text" class="form-control" name="alias" value="{{ @adresse.alias }}"> <input type="text" class="form-control" name="alias" value="">
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="nom">{{ _("Destinataire") }}</label> <label for="nom">{{ _("Destinataire") }}</label>
<input type="text" class="form-control" name="nom" value="{{ @adresse.nom }}"> <input type="text" class="form-control" name="nom" value="">
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="adresse">{{ _("Adresse")}}</label> <label for="adresse">{{ _("Adresse")}}</label>
<input type="text" class="form-control" name="adresse" value="{{ @adresse.adresse }}"> <input type="text" class="form-control" name="adresse" value="">
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="adresse2">{{ _("Complément d'adresse")}}</label> <label for="adresse2">{{ _("Complément d'adresse")}}</label>
<input type="text" class="form-control" name="adresse2" value="{{ @adresse.adresse2 }}"> <input type="text" class="form-control" name="adresse2" value="">
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="codepostal">{{ _("Code Postal")}}</label> <label for="codepostal">{{ _("Code Postal")}}</label>
<input type="text" class="form-control" name="codepostal" value="{{ @adresse.codepostal }}"> <input type="text" class="form-control" name="codepostal" value="">
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="ville">{{ _("Ville")}}</label> <label for="ville">{{ _("Ville")}}</label>
<input type="text" class="form-control" name="ville" value="{{ @adresse.ville }}"> <input type="text" class="form-control" name="ville" value="">
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="state">{{ _("Province / État")}}</label> <label for="state">{{ _("Province / État")}}</label>
<input type="text" class="form-control" name="state" value="{{ @adresse.etat }}"> <input type="text" class="form-control" name="state" value="">
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="pays">{{ _("Pays")}}</label> <label for="pays">{{ _("Pays")}}</label>
<input type="text" class="form-control" name="pays" value="{{ @adresse.pays }}"> <input type="text" class="form-control" name="pays" value="">
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="default"> <label for="default">
<input type="checkbox" name="defaut" value="true" <check if="{{ @adresse.defaut > 0 }}">checked</check>>{{ _("Utiliser comme adresse par défaut.") }} <input type="checkbox" name="defaut" value="true" >{{ _("Utiliser comme adresse par défaut.") }}
</label> </label>
</div> </div>
<input type="submit" class="btn btn-lg c-boutonslongs" value="{{ _("Créer cette adresse")}}"> <input type="submit" class="btn btn-lg c-boutonslongs" value="{{ _("Créer cette adresse")}}">
...@@ -160,8 +185,7 @@ ...@@ -160,8 +185,7 @@
</div> </div>
</div> </div>
</div><!-- / Form historique --> </div><!-- / Form historique -->
</div> </div>
</section>
<section id="wrapper" class="text-center fluid"> <section id="wrapper" class="text-center fluid">
<div id="subtitle" class="row"> <div id="subtitle" class="row">
<div class="page-header"> <div class="page-header">
...@@ -207,10 +231,10 @@ ...@@ -207,10 +231,10 @@
<h2 class="text-left">{{ _("Demander des contreparties")}}</h2> <h2 class="text-left">{{ _("Demander des contreparties")}}</h2>
</div> </div>
<!-- FIXME: Lien page contrepartie --> <!-- FIXME: Lien page contrepartie -->
<p class="text-left">{{ _("Pour débloquer les objets associés à un bonus, cliquez sur l'icône de celui-ci. Le monant disponible pour les objets sera déduit du montant du palier et les objets seront disponibles sur la page <a href=\"#\">Mes contreparties</a> pour en demander la livraison.")}}</p> <p class="text-left">{{ _("Pour débloquer les objets associés à un bonus, cliquez sur l'icône de celui-ci. Le montant disponible pour les objets sera déduit du montant du palier et les objets seront disponibles sur la page <a href=\"#\">Mes contreparties</a> pour en demander la livraison.")}}</p>
<div id="" class="row"> <div id="" class="row">
<form method="POST" action="{{ 'add_contrepartie' | alias }}" name="contreparties"> <form method="GET" action="{{ 'perso' | alias }}" name="contreparties">
<input type="hidden" name="csrf" value="{{ @CSRF }}"> <input type="hidden" name="validate" value="true">
<check if="{{ @infos.cumul >= 30 }}"> <check if="{{ @infos.cumul >= 30 }}">
<div class="col-md-8 col-md-offset-2"><!-- piplome --> <div class="col-md-8 col-md-offset-2"><!-- piplome -->
<div class="panel panel-default"> <div class="panel panel-default">
...@@ -228,10 +252,10 @@ ...@@ -228,10 +252,10 @@
<label for="quoi1"> <label for="quoi1">
<h3 class="text-left">{{ _("Piplôme")}}</h3> <h3 class="text-left">{{ _("Piplôme")}}</h3>
</label> </label>
<form class="text-left"> <div class="text-left">
<label for="piplome_id">{{ _("Titulaire du Piplôme")}}</label> <label for="piplome_id">{{ _("Titulaire du Piplôme")}}</label>
<input type="text" class="form-control" id="piplome_id" name="piplome_id" value="" placeholder="Nom, prénom, pseudonyme, etc …"> <input type="text" class="form-control" id="piplome_id" name="piplome_id" value="" placeholder="Nom, prénom, pseudonyme, etc …">
</form> </div>
</div> </div>
</div> </div>
<div class="c-prixcontrepartie"> <div class="c-prixcontrepartie">
...@@ -239,6 +263,7 @@ ...@@ -239,6 +263,7 @@
</div> </div>
</div> </div>
</div> </div>
</div>
</div><!-- piplome --> </div><!-- piplome -->
</check> </check>
<check if="{{ @infos.cumul >= 50 }}"> <check if="{{ @infos.cumul >= 50 }}">
...@@ -260,9 +285,6 @@ ...@@ -260,9 +285,6 @@
</label> </label>
</div> </div>
</div> </div>
<div class="c-prixcontrepartie">
<p>50&nbsp;</p>
</div>
</div> </div>
</div> </div>
</div><!-- / Pibag --> </div><!-- / Pibag -->
...@@ -293,7 +315,6 @@ ...@@ -293,7 +315,6 @@
</repeat> </repeat>
</select> </select>
</div> </div>
</form>
</div> </div>
</div> </div>
<div class="c-prixcontrepartie"> <div class="c-prixcontrepartie">
...@@ -301,6 +322,7 @@ ...@@ -301,6 +322,7 @@
</div> </div>
</div> </div>
</div> </div>
</div>
</div><!-- / Pishirt --> </div><!-- / Pishirt -->
</check> </check>
<check if="{{ @infos.cumul >= 250 }}"> <check if="{{ @infos.cumul >= 250 }}">
...@@ -329,7 +351,6 @@ ...@@ -329,7 +351,6 @@
</repeat> </repeat>
</select> </select>
</div> </div>
</form>
</div> </div>
</div> </div>
<div class="c-prixcontrepartie"> <div class="c-prixcontrepartie">
...@@ -337,6 +358,7 @@ ...@@ -337,6 +358,7 @@
</div> </div>
</div> </div>
</div> </div>
</div>
</div><!-- / Hoopi --> </div><!-- / Hoopi -->
</check> </check>
<check if="{{ count(@adresses) > 0 }}"> <check if="{{ count(@adresses) > 0 }}">
...@@ -360,10 +382,44 @@ ...@@ -360,10 +382,44 @@
<!-- Modale de confirmation --> <!-- Modale de confirmation -->
<!-- TODO: Récupérer le contenu de la modale --> <!-- TODO: Récupérer le contenu de la modale -->
<div class="modal fade" id="ModaleConfirmation" tabindex="-1" role="dialog"> <!-- On utilise un GET /perso avec le formulaire précent pour peupler la modale -->
<check if="{{ @modal_counterparts == 1 }}">
<div class="modal fade show in" id="ModaleConfirmation" tabindex="-1" role="dialog">
<div class="modal-dialog modal-lg" role="document"> <div class="modal-dialog modal-lg" role="document">
<form class="text-left" method="POST" action="{{ 'add_contrepartie' | alias}}">
<div class="modal-content c-modale"> <div class="modal-content c-modale">
<div class="modal-body"> <div class="modal-body">
<h3>{{ _("Envoyer à l'adresse&nbsp;:") }}</h3>
<p>
{{ @adresses[@GET['adresse_id']].nom }}<br>
{{ @adresses[@GET['adresse_id']].adresse }}<br>
{{ @adresses[@GET['adresse_id']].adresse2 }}<br>
{{ @adresses[@GET['adresse_id']].codepostal }}&nbsp;
{{ @adresses[@GET['adresse_id']].ville }}
</p>
<h3>{{ _("Récapitulatif&nbsp;:") }}</h3>
<div class="media">
<div class="media-left">
<img class="media-object" src="" alt="{{ @GET['quoi']}}">
</div> </div>
<div class="media-body">
<p>{{ @GET['quoi'] }} {{ @GET['taille'] }}{{ @GET['taille_h']}}{{ @GET['piplome_id'] }}</p>
</div> </div>
</section> </div>
</div>
<div class="form-group text-left">
<label for="commentaire"><h3>{{ _("Un commentaire&nbsp;?") }}</h3></label>
<textarea class="form-control" id="commentaire" name="commentaire" placeholder="" row="3"></textarea>
<div class="modal-footer">
<input type="hidden" name="csrf" value="{{ @CSRF }}">
<repeat group="{{@GET}}" key="{{ @key }}" value="{{ @value }}">
<input type="hidden" name="{{ @key }}" value="@value">
</repeat>
<a href="{{ 'perso' | alias }}" type="button" class="btn btn-default" data-dismiss="modal">Close</a>
<input type="submit" class="btn btn-primary" value="{{ _('Valider') }}">
</div>
</div>
</div>
</form>
</div>
</check>
<?php
use Phinx\Migration\AbstractMigration;
class AddCommentaire extends AbstractMigration
{
/**
* Change Method.
*
* Write your reversible migrations using this method.
*
* More information on writing migrations is available here:
* http://docs.phinx.org/en/latest/migrations.html#the-abstractmigration-class
*
* The following commands can be used in this method and Phinx will
* automatically reverse them when rolling back:
*
* createTable
* renameTable
* addColumn
* renameColumn
* addIndex
* addForeignKey
*
* Remember to call "create()" or "update()" and NOT "save()" when working
* with the Table class.
*/
public function change()
{
$table = $this->table('contreparties');
$table->addColumn('commentaire', 'string')
->update();
}
}
...@@ -25,6 +25,7 @@ class CounterpartFinderTest extends FunctionalTest ...@@ -25,6 +25,7 @@ class CounterpartFinderTest extends FunctionalTest
'pdf_id' => '1', 'pdf_id' => '1',
'pdf_nom' => 'Main', 'pdf_nom' => 'Main',
'pdf_url' => 'pdf', 'pdf_url' => 'pdf',
'commentaire' => '',
]; ];
$this->assertEquals($expectedCounterpart, $firstCounterpart); $this->assertEquals($expectedCounterpart, $firstCounterpart);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment