LivraisonParSecteurs : onglet "Horaires de livraison" terminé

This commit is contained in:
2021-02-15 17:48:05 +01:00
parent 6c7b25e5a2
commit bdc040b7a4
14 changed files with 150 additions and 142 deletions

View File

@@ -7,8 +7,8 @@
<forms>
<form name="lps-area-general-update" class="LivraisonParSecteurs\Form\GeneralForm"/>
<form name="lps-area-cities-update" class="LivraisonParSecteurs\Form\CitiesForm" />
<form name="lps-area-schedule-create" class="LivraisonParSecteurs\Form\ScheduleCreateForm"/>
<form name="lps-area-schedule-update" class="LivraisonParSecteurs\Form\ScheduleUpdateForm" />
<form name="lps-area-schedule-create" class="LivraisonParSecteurs\Form\ScheduleCreateForm"/>
</forms>
<loops>
@@ -17,12 +17,6 @@
<loop name="lps_area_cities" class="LivraisonParSecteurs\Loop\AreaCitiesLoop"/>
</loops>
<!--
<services>
</services>
-->
<hooks>
<hook id="lps.admin.hook" class="LivraisonParSecteurs\Hook\AdminHook">
<tag name="hook.event_listener" event="module.configuration" type="back" method="onModuleConfig" />

View File

@@ -27,5 +27,8 @@
<default key="_controller">LivraisonParSecteurs\Controller\BackOfficeController::updateSchedule</default>
</route>
<route id="livraisonparsecteurs.area.schedule.create" path="admin/module/LivraisonParSecteurs/schedule/create" methods="post">
<default key="_controller">LivraisonParSecteurs\Controller\BackOfficeController::createSchedule</default>
</route>
</routes>

View File

@@ -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);
}
}
}

View File

@@ -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",
[
"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()
]);
}

View File

@@ -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()
]);
}

View File

@@ -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',

View File

@@ -83,8 +83,7 @@ class LivraisonParSecteurs extends AbstractDeliveryModule
{
$translator = Translator::getInstance();
if ($int === null) {
return [
$days = [
$translator->trans("Monday", [], LivraisonParSecteurs::MESSAGE_DOMAIN),
$translator->trans("Tuesday", [], LivraisonParSecteurs::MESSAGE_DOMAIN),
$translator->trans("Wednesday", [], LivraisonParSecteurs::MESSAGE_DOMAIN),
@@ -93,18 +92,10 @@ class LivraisonParSecteurs extends AbstractDeliveryModule
$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];
}
}

View File

@@ -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');
});
</script>

View File

@@ -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"}
<div class="form-group hidden">
<input type="hidden" class="form-control" name="{$name}" id="{$label_attr.for}"
value="{$area-schedule_id|default:$ID}"/>
</div>
{/form_field}
{form_field form=$form field="area_id"}
<div class="form-group hidden">
<input type="hidden" class="form-control" name="{$name}" id="{$label_attr.for}"
value="{$area_id}"/>
</div>
{/form_field}
{if {$update|default:false} == true}
{form_field form=$form field="area-schedule_id"}
<div class="form-group hidden">
<input type="hidden" class="form-control" name="{$name}" id="{$label_attr.for}"
value=""/>
</div>
{/form_field}
{/if}
{form_field form=$form field="day"}
<div class="form-group {if $error}has-error{/if}">
@@ -25,7 +27,7 @@
</label>
{form_error form=$form field="day"}{$message}{/form_error}
<select class="form-control" name="{$name}" id="{$label_attr.for}" {if {$update|default:false} == false}multiple{/if}>
<select class="form-control" name="{$name}" id="{$label_attr.for}">
{if {$update|default:false} == true}
<option value="" selected></option>
{/if}
@@ -36,10 +38,11 @@
</div>
{/form_field}
{if {$update|default:false} == false}
<!-- Mode Création d'un nouveau créneau /-->
<div class="row">
<div class="col-sm-12">
<h3>{intl l="AM" d='livraisonparsecteurs'}</h3>
{form_field form=$form field="begin_time"}
<div class="form-group {if $error}has-error{/if}">
<label class="control-label" for="{$label_attr.for}">
@@ -75,6 +78,7 @@
</div>
</div>
{else}
<!-- Mode Modification d'un créneau existant /-->
{form_field form=$form field="begin_time"}
<div class="form-group {if $error}has-error{/if}">
<label class="control-label" for="{$label_attr.for}">

View File

@@ -23,7 +23,8 @@
{/form_field}
<div class="row form-inline">
<div class="col-md-6">
<div class="col-md-3">&nbsp;</div>
<div class="col-md-3">
{form_field form=$form field="active"}
<div class="form-group">
<label class="control-label" for="{$label_attr.for}">
@@ -40,7 +41,7 @@
{/form_field}
</div>
<div class="col-md-6">
<div class="col-md-3">
{form_field form=$form field="price"}
<div class="form-group form-inline">
<label class="control-label" for="{$label_attr.for}">
@@ -53,6 +54,7 @@
{form_error form=$form field="price"}{$message}{/form_error}
{/form_field}
</div>
<div class="col-md-3">&nbsp;</div>
</div>
</form>
{/loop}

View File

@@ -9,6 +9,14 @@
<form action="{url path='/admin/module/LivraisonParSecteurs/edit' area_id={$area_id}}" method="POST" class="clearfix" {form_enctype form=$form}>
{form_hidden_fields form=$form}
{include
file = "includes/inner-form-toolbar.html"
hide_flags = true
hide_submit_buttons = true
close_url = "{url path='/admin/module/LivraisonParSecteurs'}"
current_tab = "schedule"
}
{form_field form=$form field="area_id"}
<input type="hidden" name="{$name}" value="{$area_id}"/>
{/form_field}
@@ -21,7 +29,7 @@
<caption class="clearfix">
{loop name="auth-create" type="auth" role="ADMIN" resource="admin.lps.schedule" access="CREATE" module="LivraisonParSecteurs"}
<div class="pull-right">
<a class="btn btn-default btn-primary area-schedule-default"
<a class="btn btn-default btn-primary area-schedule-add"
title="{intl l='Add a new delivery day' d='livraisonparsecteurs'}"
data-target="#area-schedule-create" data-toggle="modal">
<i class="glyphicon glyphicon-plus-sign"></i>

View File

@@ -16,15 +16,10 @@
$("#attr-area-schedule-day").prop('required', true);
});
// $('a.dealer-schedules-default').click(function (ev) {
// $(".period").addClass("hidden");
// $("#attr-dealer-schedules-closed", "#dealer-schedules-create").val("0");
// $("#attr-dealer-schedules-period-begin input, #attr-dealer-schedules-period-end input").prop('required', false);
// $("#attr-dealer-schedules-day").prop('required', true);
// $('#attr-dealer-schedules-day option').prop('selected', false);
// });
$('a.area-schedule-add').click(function (ev) {
$("#attr-area-schedule-begin input, #attr-area-schedule-end input").prop('required', false);
$("#attr-area-schedule-day").prop('required', true);
});
{$langcode = {lang attr="code"}|substr:0:2}
$(document).ready(function () {

View File

@@ -1,62 +0,0 @@
{* CREATE Modal *}
{form name="lps-area-schedule-create"}
{capture "schedule_create"}
{include file="form/dealer-schedules-create.html" form_name="lps-area-schedule-create" area_id=$smarty.get.area_id}
{/capture}
{include file="includes/generic-create-dialog.html"
dialog_id = "dealer-schedules-create"
dialog_title = {intl l="Create a schedules" d="dealer.bo.default"}
dialog_body = {$smarty.capture.schedules_create nofilter}
dialog_ok_label = {intl l="Create"}
dialog_cancel_label = {intl l="Cancel"}
form_action = {url path="admin/module/Dealer/schedules"}
form_enctype = {form_enctype form=$form}
}
{/form}
{*Update Modal*}
{form name="dealer-schedules.update"}
{capture "schedules_update"}
{form_field form=$form field="id"}
<input type="hidden" id="{$label_attr.for}" name="{$name}" value=""/>
{/form_field}
{* {include file="form/dealer-schedules-create.html" form_name="dealer-schedules.update" dealer_id=$smarty.get.dealer_id update=true} *}
{/capture}
{include file="includes/generic-create-dialog.html"
dialog_id = "dealer-schedules-update"
dialog_title = {intl l="Modify a schedules" d="dealer.bo.default"}
dialog_body = {$smarty.capture.schedules_update nofilter}
dialog_ok_label = {intl l="Save"}
dialog_cancel_label = {intl l="Cancel"}
form_action = {url path="admin/module/Dealer/schedules/update"}
form_enctype = {form_enctype form=$form}
}
{/form}
{* DELETE modal *}
{capture "schedules_delete"}
{intl l="Do you really want to delete this schedules ?" d="dealer.bo.default"}
<input type="hidden" name="dealer-schedules_id" id="dealer_schedules_delete_id" value=""/>
<input type="hidden" name="dealer_id" value="{$smarty.get.dealer_id}"/>
<input type="hidden" name="success_url" value="{url path="/admin/module/Dealer/dealer/edit?dealer_id={$dealer_id}#schedules"}"/>
{/capture}
{include file="includes/generic-confirm-dialog.html"
dialog_id = "dealer-schedules-delete"
dialog_title = {intl l="Delete an entry of schedules" d="dealer.bo.default"}
dialog_message = {$smarty.capture.schedules_delete nofilter}
dialog_ok_label = {intl l="Delete"}
dialog_cancel_label = {intl l="Cancel"}
form_action = {token_url path='/admin/module/Dealer/schedules/delete'}
}

View File

@@ -31,7 +31,7 @@ form_action = {token_url path='/admin/module/LivraisonParSecteurs/schedu
{include file="includes/generic-create-dialog.html"
dialog_id = "area-schedule-update"
dialog_title = {intl l="Modify a schedule" d="livraisonparsecteurs"}
dialog_title = {intl l="Modify a delivery day" d="livraisonparsecteurs"}
dialog_body = {$smarty.capture.schedule_update nofilter}
dialog_ok_label = {intl l="Save"}
dialog_cancel_label = {intl l="Cancel"}
@@ -39,3 +39,21 @@ form_action = {token_url path='/admin/module/LivraisonParSecteurs/schedu
form_enctype = {form_enctype form=$form}
}
{/form}
{* CREATE Modal *}
{form name="lps-area-schedule-create"}
{capture "schedule_create"}
{include file="form/area-schedule-create.html" form_name="lps-area-schedule-create" area_id=$smarty.get.area_id}
{/capture}
{include file="includes/generic-create-dialog.html"
dialog_id = "area-schedule-create"
dialog_title = {intl l="Create a delivery day" d="livraisonparsecteurs"}
dialog_body = {$smarty.capture.schedule_create nofilter}
dialog_ok_label = {intl l="Create"}
dialog_cancel_label = {intl l="Cancel"}
form_action = {url path="admin/module/LivraisonParSecteurs/schedule/create"}
form_enctype = {form_enctype form=$form}
}
{/form}