diff --git a/app/controller/perso.php b/app/controller/perso.php index a86dacc4840db5cc759e64bb754e7dc8c149a762..3673e7c29ffaee57e82fa111593e9d073b1c5663 100644 --- a/app/controller/perso.php +++ b/app/controller/perso.php @@ -93,7 +93,7 @@ class Perso extends Controller { // Chargement des dons de l'utilisateur $db = $f3->get('DB'); - $result = $db->query("SELECT datec, somme, id, pdf, status FROM dons WHERE user_id='".$f3->get('infos.id')."' AND status IN (1,4,102) ORDER BY datec ASC"); + $result = $db->query("SELECT datec, somme, id, pdf, status FROM dons WHERE user_id='".$f3->get('infos.id')."' AND status IN (1,4,102) ORDER BY datec DESC"); $data = array(); foreach ($result->fetchAll(\PDO::FETCH_ASSOC) as $row) { $data[] = $row; @@ -116,6 +116,7 @@ class Perso extends Controller public function login($f3, $args) { $f3->clear('SESSION.error'); + $f3->clear('SESSION.message'); $f3->set('form_visible', 'login'); if ($f3->get('action')=='renew_password') { @@ -268,7 +269,7 @@ class Perso extends Controller if ($f3->exists('SESSION.id')) { // Let's firts check that both the password match if ($f3->get('password') != $f3->get('password_confirmation')) { - $f3->set('SESSION.error', 'Passwords mismatch'); + $f3->set('SESSION.error', _("Les mots de passe ne correspondent pas")); } else { $sql = "UPDATE users SET email='".\Utils::asl($f3->get('email'))."', pseudo='".\Utils::asl($f3->get('pseudo'))."'"; @@ -311,6 +312,7 @@ class Perso extends Controller $f3->set("error", _("Cette adresse existe déjà .")); $f3->error('403'); } + $f3->set('SESSION.message', _("Adresse ajoutée à votre profil")); break; case 'DELETE': try { @@ -324,6 +326,7 @@ class Perso extends Controller $f3->set("error", _("Cette adresse est utilisée pour une de vos contreparties")); $f3->error('403'); }; + $f3->set('SESSION.message', _("Adresse supprimée de votre profil")); break; } $f3->reroute('/perso'); @@ -382,7 +385,7 @@ class Perso extends Controller } // Puis diminution du cumul de la valeur des contreparties $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('SESSION.message', _("Merci, vos contreparties seront envoyées dès que possible !")); $f3->reroute('/perso'); } @@ -532,6 +535,7 @@ class Perso extends Controller user_id = '".$user_id."', identifier = '".$identifier."', cumul = 0;"); + $f3->set('SESSION.message', _("Don récurrent supprimé.")); $f3->reroute('/perso'); } diff --git a/app/view/campaign/donation.html b/app/view/campaign/donation.html index f69fb7948ce088d4e4923d9a6b0d9ce2d083443c..2c53d8543e0fb632dea6c4f84539f4845e37ae29 100644 --- a/app/view/campaign/donation.html +++ b/app/view/campaign/donation.html @@ -19,9 +19,6 @@ </form> <p>Erreur: </p> - <repeat group="{{ @SESSION.errors }}" value="{{ @error }}"> - <p>{{@error}}</p> - </repeat> <section id="gift_holder"> <!-- Différents affichages possibles --> <div id="no_cado" class="cadeaux" style="display:none"> diff --git a/app/view/toolbar.html b/app/view/toolbar.html index ec3fe9bf9b632f2aecf2e6e4e94b635be20df091..ef2eb590435e7fee61c5b23eb029528dbe0a0e92 100644 --- a/app/view/toolbar.html +++ b/app/view/toolbar.html @@ -1,13 +1,19 @@ <div class="modal-form <check if="{{ @@form_visible == 'login' }}">visible</check>" id="login"> <div class="modal-form-title modal-form-only"> <a class="close modal-form-only" href="/#"><span>{{ _("Fermer") }}</span></a> - <h1>{{_("Se connecter")}}</h1> + <h1>{{_("Connexion")}}</h1> </div> <form method="POST" class="form-inline" action="{{ 'login' | alias }}"> <div class="modal-form-body"> <input type="hidden" name="csrf" id="csrf" value="{{ @CSRF }}" /> <fieldset class="form-group modal-form-only"> <h3>{{ _("Le site de dons a changé. À présent, utilisez votre adresse e-mail comme identifiant.") }} </h3> + <check if="{{ @@SESSION.message }}"> + <p class="modal-row alert alert-info">{{ @SESSION.message }}</p> + </check> + <check if="{{ @@SESSION.error }}"> + <p class="modal-row alert alert-danger">{{ @SESSION.error }}</p> + </check> <div class="modal-row form-group"> <label for="email">{{ _("Adresse mail") }}</label> <input class="form-control" type="email" name="email" id="email" required> @@ -91,10 +97,10 @@ </ul> <ul class="nav navbar-nav navbar-right"> <check if="{{ array_key_exists('user', @SESSION) }}"> - <true><li><a href="{{ 'logout' | alias }}">{{ _("Se déconnecter") }}</a></li> - <li><a href="{{ 'perso' | alias }}">{{ _("Réclamer les contreparties") }}</a></li></true> + <true><li><a href="{{ 'logout' | alias }}">{{ _("Déconnexion") }}</a></li> + <li><a href="{{ 'perso' | alias }}">{{ _("Contreparties") }}</a></li></true> <false><li><a href="#add-account">{{ _("Créer un compte")}}</a></li> - <li><a href="#login">{{ _("Se connecter")}}</a></li></false> + <li><a href="#login">{{ _("Connexion")}}</a></li></false> </check> </ul> <ul class="nav navbar-nav navbar-right"> @@ -125,7 +131,7 @@ <ul class="nav navbar-nav"> <check if="{{ array_key_exists('user', @SESSION) }}"> <true><li class="pull-right collapsible-menu"><a href="#perso-menu">{{ _("Perso") }}</a></li></true> - <false><li class="pull-right"><a href="#login">{{ _("Se connecter")}}</a></li></false> + <false><li class="pull-right"><a href="#login">{{ _("Connexion")}}</a></li></false> </check> <li class="pull-right collapsible-menu"><a href="#action-menu">{{ _("Menu") }}</a> </li> @@ -149,3 +155,12 @@ </div> </nav> </div> +<section id="messages"> + <check if="{{ @@SESSION.message }}"> + <p class="alert alert-info">{{ @SESSION.message }}</p> + </check> + <check if="{{ @@SESSION.error }}"> + <p class="alert alert-danger">{{ @SESSION.error }}</p> + </check> +</section> + diff --git a/app/view/user/infos.html b/app/view/user/infos.html index 4dab9c22c11aa3cf746a8ff55c46cf7f422acf13..e8e463209632ab98b5f69ede4c3471aad78b0018 100644 --- a/app/view/user/infos.html +++ b/app/view/user/infos.html @@ -149,9 +149,6 @@ </select></p> <input type="submit" class="big_button" value="Valider" <check if="{{ @adresse }}"><false>disabled</false>/</check>/> </div> - <check if="{{ @error!='' }}"> - <p class="error">{{ @error }}</p> - </check> </form> </check> </section> diff --git a/app/view/user/login.html b/app/view/user/login.html index 47088bc14d76de6a964e80eae3346e970831d1ba..0a3e46fd865f1a666b7a306a5d22471848a78d89 100644 --- a/app/view/user/login.html +++ b/app/view/user/login.html @@ -32,12 +32,6 @@ <p><input type="button" onclick="document.forms['f1']['create_user'].value=1;document.forms['f1'].submit()" class="btn_password" value="{{ _('Créer un compte') }}" /></p> </form> - <check if="{{ @error!='' }}"> - <p class="error">{{ @error }}</p> - </check> - <check if="{{ @information!='' }}"> - <p class="information">{{ @information }}</p> - </check> </false> </check> </section> diff --git a/app/view/user/perso.html b/app/view/user/perso.html index c5d4e1e6aeda1868c892346372c98c83e2d1a7cf..2941a27beaf458c36072ad0a4fd20c157436b6c2 100644 --- a/app/view/user/perso.html +++ b/app/view/user/perso.html @@ -139,14 +139,21 @@ <th>{{ _("Date") }}</th> <th>{{ _("Dons") }}</th> <th>{{ _("Récurent") }}</th> - <th>{{ _("Contreparties") }}</th> + <th>{{ _("Piplome") }}</th> </tr> <repeat group="{{ @dons_recurrents }}" value="{{ @don }}"> <tr> <td>{{ @don.datec }}</td> <td>{{ @don.somme }}</td> <td>{{ _("Oui")}}</td> - <td></td> + <td> + <check if="{{ @don.pdf == '' }}"> + <a href="/cron/piplome/{{ @don.id }}">{{ _("Générer") }}</a> + <false> + <a href="{{ PIPLOME_URL }}/{{ @don.pdf }}.pdf" target="_blank">{{ @pdfs[@don.pdf].decimale }}.pdf</a> + </false> + </check> + </td> </tr> </repeat> <repeat group="{{ @dons }}" value="{{ @don }}"> @@ -154,14 +161,26 @@ <td>{{ @don.datec }}</td> <td>{{ @don.somme }}</td> <td>{{ _("Non")}}</td> - <td></td> + <td> + <check if="{{ @don.pdf == '' }}"> + <a href="/cron/piplome/{{ @don.id }}">{{ _("Générer") }}</a> + <false> + <a href="{{ PIPLOME_URL }}/{{ @don.pdf }}.pdf" target="_blank">{{ @pdfs[@don.pdf].decimale }}.pdf</a> + </false> + </check> + + </td> </tr> </repeat> + </table> + <table class="table text-left"> + <tr> + <th>{{ _("Date") }}</th> + <th>{{ _("Contreparties") }}</th> + </tr> <repeat group="{{ @contreparties }}" value="{{ @contrepartie }}"> <tr> <td>{{ @contrepartie.datec }}</td> - <td></td> - <td></td> <td>{{ @contrepartie.quoi }}</td> </tr> </repeat> diff --git a/db/seeds/CounterpartSeeder.php b/db/seeds/CounterpartSeeder.php index b47cdf580ef8e3f9cc9891b9bf0aeb78ee878025..9dced14093cd7d878a8de7446290130d2e0ac932 100644 --- a/db/seeds/CounterpartSeeder.php +++ b/db/seeds/CounterpartSeeder.php @@ -30,7 +30,7 @@ class CounterpartSeeder extends AbstractSeed 'user_id' => 2, 'quoi' => 'piplome', // [piplome|pibag|pishirt|hoodie] 'taille' => 2, - 'status' => 1, + 'status' => 2, 'adresse_id' => null, ), ); diff --git a/src/LQDN/Handler/AddressHandler.php b/src/LQDN/Handler/AddressHandler.php index c4dda1d2f2c3787e94fc075b51507a4d8f7b65fc..efb393db8775c64faed0bcd9792a0b88d1267520 100644 --- a/src/LQDN/Handler/AddressHandler.php +++ b/src/LQDN/Handler/AddressHandler.php @@ -92,7 +92,7 @@ EOF; private function addressUsed($addressId) { $count = (int) $this->connection->fetchColumn( - "SELECT count(1) FROM contreparties, dons WHERE contreparties.adresse_id = :id OR dons.adresse_id = :id", + "SELECT count(1) FROM contreparties, dons WHERE contreparties.adresse_id = :id AND contreparties.status = 1;", [ 'id' => $addressId, ], diff --git a/tests/functional/Finder/CounterpartFinderTest.php b/tests/functional/Finder/CounterpartFinderTest.php index ac46f81b2f18f431c00dd1fd71265594a5e4733f..8f2a15cb6303ef300fe417530857973457258fdf 100644 --- a/tests/functional/Finder/CounterpartFinderTest.php +++ b/tests/functional/Finder/CounterpartFinderTest.php @@ -20,7 +20,7 @@ class CounterpartFinderTest extends FunctionalTest 'datec' => '2016-06-22 12:34:00', 'quoi' => 'piplome', 'taille' => '2', - 'status' => '1', + 'status' => '2', 'adresse_id' => null, 'pdf_id' => '1', 'pdf_nom' => 'Main', diff --git a/tests/functional/Handler/AddressHandlerTest.php b/tests/functional/Handler/AddressHandlerTest.php index 84393be61599089009cc3ea26498e552f042a777..81558168925e6fdf564d75d46eff1847d3c4bf72 100644 --- a/tests/functional/Handler/AddressHandlerTest.php +++ b/tests/functional/Handler/AddressHandlerTest.php @@ -16,6 +16,10 @@ class AddressHandlerTest extends FunctionalTest $this->setExpectedException('LQDN\Exception\AddressUsedException'); $this->container['command_handler']->handle(new AddressDeleteCommand(1, 1)); + + $this->container['command_handler']->handle(new AddressDeleteCommand(2, 1)); + + $this->assertFalse($this->addressExists(2)); } public function testAdressDelete()