LivraisonParSecteurs : onglet "Horaires de livraison" terminé
This commit is contained in:
@@ -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" />
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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()
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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}">
|
||||
|
||||
@@ -23,7 +23,8 @@
|
||||
{/form_field}
|
||||
|
||||
<div class="row form-inline">
|
||||
<div class="col-md-6">
|
||||
<div class="col-md-3"> </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"> </div>
|
||||
</div>
|
||||
</form>
|
||||
{/loop}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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 () {
|
||||
|
||||
@@ -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'}
|
||||
}
|
||||
|
||||
@@ -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}
|
||||
Reference in New Issue
Block a user