From bdc040b7a478e26aa5fc1c1a69875edbb6e9acb4 Mon Sep 17 00:00:00 2001 From: TheCoreDev Date: Mon, 15 Feb 2021 17:48:05 +0100 Subject: [PATCH] =?UTF-8?q?LivraisonParSecteurs=20:=20onglet=20"Horaires?= =?UTF-8?q?=20de=20livraison"=20termin=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LivraisonParSecteurs/Config/config.xml | 8 +-- .../LivraisonParSecteurs/Config/routing.xml | 3 + .../Controller/BackOfficeController.php | 62 ++++++++++++++++++- .../Form/ScheduleCreateForm.php | 40 +++++------- .../Form/ScheduleUpdateForm.php | 4 +- .../LivraisonParSecteurs/I18n/fr_FR.php | 4 +- .../LivraisonParSecteurs.php | 35 ++++------- .../backOffice/default/deliveryarea-edit.html | 5 +- .../default/form/area-schedule-create.html | 20 +++--- .../default/includes/area-general.html | 6 +- .../default/includes/area-schedule.html | 10 ++- .../default/js/area-schedule-js.html | 13 ++-- .../modal/area-schedule-modal-FULL.html | 62 ------------------- .../default/modal/area-schedule-modal.html | 20 +++++- 14 files changed, 150 insertions(+), 142 deletions(-) delete mode 100644 local/modules/LivraisonParSecteurs/templates/backOffice/default/modal/area-schedule-modal-FULL.html diff --git a/local/modules/LivraisonParSecteurs/Config/config.xml b/local/modules/LivraisonParSecteurs/Config/config.xml index c2e7951e..8b9bf557 100644 --- a/local/modules/LivraisonParSecteurs/Config/config.xml +++ b/local/modules/LivraisonParSecteurs/Config/config.xml @@ -7,8 +7,8 @@
- + @@ -17,12 +17,6 @@ - - diff --git a/local/modules/LivraisonParSecteurs/Config/routing.xml b/local/modules/LivraisonParSecteurs/Config/routing.xml index 39f4a72c..e25dbb91 100644 --- a/local/modules/LivraisonParSecteurs/Config/routing.xml +++ b/local/modules/LivraisonParSecteurs/Config/routing.xml @@ -27,5 +27,8 @@ LivraisonParSecteurs\Controller\BackOfficeController::updateSchedule + + LivraisonParSecteurs\Controller\BackOfficeController::createSchedule + diff --git a/local/modules/LivraisonParSecteurs/Controller/BackOfficeController.php b/local/modules/LivraisonParSecteurs/Controller/BackOfficeController.php index 0b0b2617..d787b6de 100644 --- a/local/modules/LivraisonParSecteurs/Controller/BackOfficeController.php +++ b/local/modules/LivraisonParSecteurs/Controller/BackOfficeController.php @@ -4,6 +4,7 @@ namespace LivraisonParSecteurs\Controller; use LivraisonParSecteurs\LivraisonParSecteurs; use LivraisonParSecteurs\Model\LpsAreaQuery; +use LivraisonParSecteurs\Model\LpsAreaSchedule; use LivraisonParSecteurs\Model\LpsAreaScheduleQuery; use Propel\Runtime\Map\TableMap; use Propel\Runtime\Propel; @@ -144,13 +145,72 @@ class BackOfficeController extends BaseAdminController } } catch (FormValidationException $ex) { $error_msg = $this->createStandardFormValidationErrorMessage($ex); + + if (false !== $error_msg) { + $this->setupFormErrorContext( + $this->getTranslator()->trans("Schedule update"), + $error_msg, + $changeForm, + $ex + ); + + return $this->generateErrorRedirect($changeForm); + } } if ($data['success_url'] == null) { return new RedirectResponse(URL::getInstance()->absoluteUrl("/admin/module/LivraisonParSecteurs")); } else { - return new RedirectResponse(URL::getInstance()->absoluteUrl($data['success_url'])); + return $this->generateSuccessRedirect($changeForm); } } + + /* + * Update a day in an area's delivery schedule + */ + public function createSchedule() + { + // Check current user authorization + if (null !== $response = $this->checkAuth(AdminResources::MODULE, LivraisonParSecteurs::getModuleCode(), AccessManager::UPDATE)) + return $response; + + $con = Propel::getConnection(); + $con->beginTransaction(); + + $error_msg = ""; + $changeForm = $this->createForm("lps-area-schedule-create", "form"); + try { + $form = $this->validateForm($changeForm, "POST"); + $data = $form->getData(); + + $query = new LpsAreaSchedule(); + $query->fromArray($data, TableMap::TYPE_FIELDNAME); + $query->setIdArea($data['area_id']); + $query->save($con); + $con->commit(); + + } catch (FormValidationException $ex) { + $error_msg = $this->createStandardFormValidationErrorMessage($ex); + + if (false !== $error_msg) { + $this->setupFormErrorContext( + $this->getTranslator()->trans("Schedule update"), + $error_msg, + $changeForm, + $ex + ); + + return $this->generateErrorRedirect($changeForm); + } + } + + if ($data['success_url'] == null) { + return new RedirectResponse(URL::getInstance()->absoluteUrl("/admin/module/LivraisonParSecteurs")); + } else { + return $this->generateSuccessRedirect($changeForm); + } + + } + } \ No newline at end of file diff --git a/local/modules/LivraisonParSecteurs/Form/ScheduleCreateForm.php b/local/modules/LivraisonParSecteurs/Form/ScheduleCreateForm.php index f8448fb8..2828de2f 100644 --- a/local/modules/LivraisonParSecteurs/Form/ScheduleCreateForm.php +++ b/local/modules/LivraisonParSecteurs/Form/ScheduleCreateForm.php @@ -19,41 +19,35 @@ class ScheduleCreateForm extends BaseForm { $this->formBuilder ->add( - "area_id", - "integer", - [ - "required" => true, - "constraints" => [new Constraints\NotBlank()] - ]) - ->add( - "area-schedule_id", - "integer", - [ - "required" => true, - "constraints" => [new Constraints\NotBlank()] - ]) + "area_id","integer", [ + "label_attr" => ["for" => "attr-area-id"], + "required" => true, + "constraints" => [new Constraints\NotBlank()] + ]) ->add("day", "choice", [ - "choices" => $this->getDay(), - "label" => $this->translator->trans("Day", [], LivraisonParSecteurs::MESSAGE_DOMAIN), + "choices" => LivraisonParSecteurs::getDayLabel(null), + "label" => $this->translator->trans("Delivery day", [], LivraisonParSecteurs::MESSAGE_DOMAIN), "label_attr" => ["for" => "attr-area-schedule-day"], - "required" => false, - "multiple" => true, + "required" => true, + "multiple" => false, + "constraints" => [new Constraints\NotBlank()], "attr" => array() ]) - ->add("begin", "time", [ - "label" => $this->translator->trans("Begin", [], LivraisonParSecteurs::MESSAGE_DOMAIN), + ->add("begin_time", "time", [ + "label" => $this->translator->trans("Delivery beginning time", [], LivraisonParSecteurs::MESSAGE_DOMAIN), "label_attr" => ["for" => "attr-area-schedule-begin"], "input" => "string", "widget" => "single_text", - "required" => false, + "required" => true, + "constraints" => [new Constraints\NotBlank(), new Constraints\NotNull()], "attr" => array() ]) - ->add("end", "time", [ - "label" => $this->translator->trans("End", [], LivraisonParSecteurs::MESSAGE_DOMAIN), + ->add("end_time", "time", [ + "label" => $this->translator->trans("Delivery ending time", [], LivraisonParSecteurs::MESSAGE_DOMAIN), "label_attr" => ["for" => "attr-area-schedule-end"], "input" => "string", "widget" => "single_text", - "required" => false, + "required" => true,"constraints" => [new Constraints\NotBlank(), new Constraints\NotNull()], "attr" => array() ]); } diff --git a/local/modules/LivraisonParSecteurs/Form/ScheduleUpdateForm.php b/local/modules/LivraisonParSecteurs/Form/ScheduleUpdateForm.php index 8e198869..134cae84 100644 --- a/local/modules/LivraisonParSecteurs/Form/ScheduleUpdateForm.php +++ b/local/modules/LivraisonParSecteurs/Form/ScheduleUpdateForm.php @@ -36,6 +36,7 @@ class ScheduleUpdateForm extends BaseForm "label_attr" => ["for" => "attr-area-schedule-day"], "required" => true, "multiple" => false, + "constraints" => [new Constraints\NotBlank()], "attr" => array() ]) ->add("begin_time", "time", [ @@ -44,6 +45,7 @@ class ScheduleUpdateForm extends BaseForm "input" => "string", "widget" => "single_text", "required" => true, + "constraints" => [new Constraints\NotBlank(), new Constraints\NotNull()], "attr" => array() ]) ->add("end_time", "time", [ @@ -51,7 +53,7 @@ class ScheduleUpdateForm extends BaseForm "label_attr" => ["for" => "attr-area-schedule-end"], "input" => "string", "widget" => "single_text", - "required" => true, + "required" => true,"constraints" => [new Constraints\NotBlank(), new Constraints\NotNull()], "attr" => array() ]); } diff --git a/local/modules/LivraisonParSecteurs/I18n/fr_FR.php b/local/modules/LivraisonParSecteurs/I18n/fr_FR.php index 5db234ba..b053cbeb 100644 --- a/local/modules/LivraisonParSecteurs/I18n/fr_FR.php +++ b/local/modules/LivraisonParSecteurs/I18n/fr_FR.php @@ -5,6 +5,7 @@ return array( 'Add a new delivery day' => 'Ajouter un jour de livraison', 'Area name' => 'Nom du secteur', 'Cities' => 'Communes desservies', + 'Create a delivery day' => 'Créer un nouveau jour de livraison', 'Delete an entry of schedule' => 'Supprimer un jour de livraison', 'Delivery beginning time' => 'Début de la tournée', 'Delivery day' => 'Jour de livraison', @@ -15,10 +16,11 @@ return array( 'Edit an area' => 'Modifier le secteur', 'General' => 'Général', 'Home delivery cost' => 'Frais de livraison à domicile', - 'Modify a schedule' => 'Modifier un jour de livraison', + 'Modify a delivery day' => 'Modifier un jour de livraison', 'My areas' => 'Mes secteurs de livraison', 'Save' => 'Sauvegarder', 'Schedule' => 'Horaires de livraison', + 'There is no schedule for this area' => 'Aucune livraison actuellement sur ce secteur', 'Title of config view' => 'Module LivraisonParSecteurs - Configuration', 'Monday' => 'Lundi', 'Tuesday' => 'Mardi', diff --git a/local/modules/LivraisonParSecteurs/LivraisonParSecteurs.php b/local/modules/LivraisonParSecteurs/LivraisonParSecteurs.php index 53382cfd..3cfcdc6d 100644 --- a/local/modules/LivraisonParSecteurs/LivraisonParSecteurs.php +++ b/local/modules/LivraisonParSecteurs/LivraisonParSecteurs.php @@ -83,28 +83,19 @@ class LivraisonParSecteurs extends AbstractDeliveryModule { $translator = Translator::getInstance(); - if ($int === null) { - return [ - $translator->trans("Monday", [], LivraisonParSecteurs::MESSAGE_DOMAIN), - $translator->trans("Tuesday", [], LivraisonParSecteurs::MESSAGE_DOMAIN), - $translator->trans("Wednesday", [], LivraisonParSecteurs::MESSAGE_DOMAIN), - $translator->trans("Thursday", [], LivraisonParSecteurs::MESSAGE_DOMAIN), - $translator->trans("Friday", [], LivraisonParSecteurs::MESSAGE_DOMAIN), - $translator->trans("Saturday", [], LivraisonParSecteurs::MESSAGE_DOMAIN), - $translator->trans("Sunday", [], LivraisonParSecteurs::MESSAGE_DOMAIN) - ]; - } + $days = [ + $translator->trans("Monday", [], LivraisonParSecteurs::MESSAGE_DOMAIN), + $translator->trans("Tuesday", [], LivraisonParSecteurs::MESSAGE_DOMAIN), + $translator->trans("Wednesday", [], LivraisonParSecteurs::MESSAGE_DOMAIN), + $translator->trans("Thursday", [], LivraisonParSecteurs::MESSAGE_DOMAIN), + $translator->trans("Friday", [], LivraisonParSecteurs::MESSAGE_DOMAIN), + $translator->trans("Saturday", [], LivraisonParSecteurs::MESSAGE_DOMAIN), + $translator->trans("Sunday", [], LivraisonParSecteurs::MESSAGE_DOMAIN) + ]; + + if ($int === null) + return $days; else - { - return [ - $translator->trans("Monday", [], LivraisonParSecteurs::MESSAGE_DOMAIN), - $translator->trans("Tuesday", [], LivraisonParSecteurs::MESSAGE_DOMAIN), - $translator->trans("Wednesday", [], LivraisonParSecteurs::MESSAGE_DOMAIN), - $translator->trans("Thursday", [], LivraisonParSecteurs::MESSAGE_DOMAIN), - $translator->trans("Friday", [], LivraisonParSecteurs::MESSAGE_DOMAIN), - $translator->trans("Saturday", [], LivraisonParSecteurs::MESSAGE_DOMAIN), - $translator->trans("Sunday", [], LivraisonParSecteurs::MESSAGE_DOMAIN) - ][$int]; - } + return $days[$int]; } } diff --git a/local/modules/LivraisonParSecteurs/templates/backOffice/default/deliveryarea-edit.html b/local/modules/LivraisonParSecteurs/templates/backOffice/default/deliveryarea-edit.html index 5e2479c8..4d51bd81 100644 --- a/local/modules/LivraisonParSecteurs/templates/backOffice/default/deliveryarea-edit.html +++ b/local/modules/LivraisonParSecteurs/templates/backOffice/default/deliveryarea-edit.html @@ -71,10 +71,7 @@ }); var hash = location.hash.slice(1); - if (!hash) { - hash = "general"; - } - + if (!hash) hash = "general"; $('#tabbed-menu a[href="#' + hash + '"]').tab('show'); }); diff --git a/local/modules/LivraisonParSecteurs/templates/backOffice/default/form/area-schedule-create.html b/local/modules/LivraisonParSecteurs/templates/backOffice/default/form/area-schedule-create.html index f0be255a..8030641e 100644 --- a/local/modules/LivraisonParSecteurs/templates/backOffice/default/form/area-schedule-create.html +++ b/local/modules/LivraisonParSecteurs/templates/backOffice/default/form/area-schedule-create.html @@ -4,18 +4,20 @@ {render_form_field form=$form field="success_url" value={url path="/admin/module/LivraisonParSecteurs/edit?area_id={$area_id}#schedule"}} {render_form_field form=$form field="error_url" value={url path="/admin/module/LivraisonParSecteurs/edit?area_id={$area_id}#schedule"}} -{form_field form=$form field="area-schedule_id"} - -{/form_field} {form_field form=$form field="area_id"} {/form_field} +{if {$update|default:false} == true} + {form_field form=$form field="area-schedule_id"} + + {/form_field} +{/if} {form_field form=$form field="day"}
@@ -25,7 +27,7 @@ {form_error form=$form field="day"}{$message}{/form_error} - {if {$update|default:false} == true} {/if} @@ -36,10 +38,11 @@
{/form_field} + {if {$update|default:false} == false} +
-

{intl l="AM" d='livraisonparsecteurs'}

{form_field form=$form field="begin_time"}
{else} + {form_field form=$form field="begin_time"}