From ba39162735374353645d0e6ec47d6370774d597b Mon Sep 17 00:00:00 2001 From: niladic Date: Tue, 4 May 2021 11:25:19 +0200 Subject: [PATCH] =?UTF-8?q?Peut=20faire=20un=20essai=20avant=20d=E2=80=99a?= =?UTF-8?q?jouter=20des=20pr=C3=A9inscriptions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/SignupController.scala | 14 ++++++++++---- app/models/formModels.scala | 3 ++- app/views/signupAdmin.scala | 16 +++++++++++++++- 3 files changed, 27 insertions(+), 6 deletions(-) diff --git a/app/controllers/SignupController.scala b/app/controllers/SignupController.scala index 38e03afbe..8594842e7 100644 --- a/app/controllers/SignupController.scala +++ b/app/controllers/SignupController.scala @@ -185,11 +185,17 @@ case class SignupController @Inject() ( ) ) + val insertRequests: Future[List[(Either[Error, Unit], SignupRequest)]] = + if (form.dryRun) + Future.successful(newSignups.map(signup => (().asRight, signup))) + else + Future + .traverse(newSignups)(signup => + signupService.addSignupRequest(signup).map(result => (result, signup)) + ) + EitherT( - Future - .traverse(newSignups)(signup => - signupService.addSignupRequest(signup).map(result => (result, signup)) - ) + insertRequests .map { results => val errors: List[(SignupRequest, Error)] = results .flatMap { case (result, signup) => diff --git a/app/models/formModels.scala b/app/models/formModels.scala index 7cbb58618..fcd2a7edf 100644 --- a/app/models/formModels.scala +++ b/app/models/formModels.scala @@ -83,7 +83,7 @@ object formModels { } - final case class AddSignupsFormData(emails: String) + final case class AddSignupsFormData(emails: String, dryRun: Boolean) object AddSignupsFormData { @@ -91,6 +91,7 @@ object formModels { Form( mapping( "emails" -> text, + "dryRun" -> boolean, )(AddSignupsFormData.apply)(AddSignupsFormData.unapply) ) diff --git a/app/views/signupAdmin.scala b/app/views/signupAdmin.scala index 648d6d5da..b9ba8b32b 100644 --- a/app/views/signupAdmin.scala +++ b/app/views/signupAdmin.scala @@ -188,6 +188,20 @@ object signupAdmin { ), ) ), + div( + cls := "mdl-cell mdl-cell--12-col", + label( + cls := "mdl-checkbox mdl-js-checkbox", + input( + id := "dryRun", + name := "dryRun", + `type` := "checkbox", + cls := "mdl-checkbox__input", + value := "true" + ), + span(cls := "mdl-checkbox__label", "Essai (test sans ajout)") + ) + ), div( cls := "mdl-cell mdl-cell--12-col", button( @@ -210,7 +224,7 @@ object signupAdmin { ), tbody( frag( - signups.filter(_._2.isEmpty).map { case (signup, _) => + signups.filter(_._2.isEmpty).sortBy(_._1.requestDate).reverse.map { case (signup, _) => tr( td(cls := "mdl-data-table__cell--non-numeric", signup.email), td(signup.requestDate.toString),