On avance sur LivraisonParSecteurs
This commit is contained in:
38
local/modules/LivraisonParSecteurs/Config/insert.sql
Normal file
38
local/modules/LivraisonParSecteurs/Config/insert.sql
Normal file
@@ -0,0 +1,38 @@
|
||||
INSERT INTO `lps_area`(`id`,`title`) VALUES
|
||||
(1, 'Capso'),
|
||||
(2, 'Pays de Lumbres'),
|
||||
(3, 'Haut des Flandres'),
|
||||
(4, 'Flandres intérieur');
|
||||
|
||||
|
||||
|
||||
INSERT INTO `lps_area_city`(`id_area`,`zipcode`) VALUES
|
||||
(1,'62120'),
|
||||
(1,'62129'),
|
||||
(1,'62219'),
|
||||
(1,'62500'),
|
||||
(1,'62510'),
|
||||
(1,'62570'),
|
||||
(1,'62575'),
|
||||
(1,'62910');
|
||||
|
||||
INSERT INTO `lps_area_city`(`id_area`,`zipcode`) VALUES
|
||||
(2,'62010'),
|
||||
(2,'62024'),
|
||||
(2,'62088'),
|
||||
(2,'62229'),
|
||||
(2,'62292'),
|
||||
(2,'62309'),
|
||||
(2,'62504'),
|
||||
(2,'62534'),
|
||||
(2,'62613'),
|
||||
(2,'62656'),
|
||||
(2,'62674'),
|
||||
(2,'62702'),
|
||||
(2,'62788'),
|
||||
(2,'62794'),
|
||||
(2,'62803'),
|
||||
(2,'62882'),
|
||||
(2,'62897'),
|
||||
(2,'62898'),
|
||||
(2,'62905');
|
||||
@@ -4,15 +4,18 @@
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">
|
||||
|
||||
<route id="livraisonparsecteurs.back.config" path="/admin/module/LivraisonParSecteurs">
|
||||
<route id="livraisonparsecteurs.area.list" path="/admin/module/LivraisonParSecteurs">
|
||||
<default key="_controller">LivraisonParSecteurs\Controller\BackOfficeController::viewAction</default>
|
||||
</route>
|
||||
<route id="livraisonparsecteurs.back.price" path="/admin/module/LivraisonParSecteurs/config">
|
||||
<default key="_controller">LivraisonParSecteurs\Controller\BackOfficeController::updatePrice</default>
|
||||
</route>
|
||||
<route id="livraisonparsecteurs.toggle.visible" path="/admin/module/LivraisonParSecteurs/toggle-online/{id}" methods="post">
|
||||
<route id="livraisonparsecteurs.toggle.active" path="/admin/module/LivraisonParSecteurs/toggle-online/{id}" methods="post">
|
||||
<default key="_controller">LivraisonParSecteurs\Controller\BackOfficeController::toggleActive</default>
|
||||
<requirement key="id">\d+</requirement>
|
||||
</route>
|
||||
<route id="livraisonparsecteurs.area.view" path="/admin/module/LivraisonParSecteurs/edit" methods="get">
|
||||
<default key="_controller">LivraisonParSecteurs\Controller\BackOfficeController::viewArea</default>
|
||||
</route>
|
||||
<route id="livraisonparsecteurs.area.edit" path="/admin/module/LivraisonParSecteurs/edit" methods="post">
|
||||
<default key="_controller">LivraisonParSecteurs\Controller\BackOfficeController::editArea</default>
|
||||
</route>
|
||||
|
||||
</routes>
|
||||
|
||||
@@ -4,95 +4,63 @@
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
-- lps_secteur
|
||||
-- lps_area
|
||||
-- ---------------------------------------------------------------------
|
||||
|
||||
DROP TABLE IF EXISTS `lps_secteur`;
|
||||
DROP TABLE IF EXISTS `lps_area`;
|
||||
|
||||
CREATE TABLE `lps_secteur`
|
||||
CREATE TABLE `lps_area`
|
||||
(
|
||||
`id` INTEGER NOT NULL,
|
||||
`nom` VARCHAR(50) NOT NULL,
|
||||
`title` VARCHAR(50) NOT NULL,
|
||||
`active` TINYINT DEFAULT 1 NOT NULL,
|
||||
`price` INTEGER DEFAULT 0 NOT NULL,
|
||||
`created_at` DATETIME,
|
||||
`updated_at` DATETIME,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
INSERT INTO `lps_secteur`(`id`,`nom`) VALUES (1, 'Capso'), (2, 'Pays de Lumbres'), (3, 'Haut des Flanders'), (4, 'Flandres intérieur');
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
-- lps_secteur_commune
|
||||
-- lps_area_city
|
||||
-- ---------------------------------------------------------------------
|
||||
|
||||
DROP TABLE IF EXISTS `lps_secteur_commune`;
|
||||
DROP TABLE IF EXISTS `lps_area_city`;
|
||||
|
||||
CREATE TABLE `lps_secteur_commune`
|
||||
CREATE TABLE `lps_area_city`
|
||||
(
|
||||
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
||||
`id_secteur` INTEGER NOT NULL,
|
||||
`id_area` INTEGER NOT NULL,
|
||||
`zipcode` VARCHAR(10) NOT NULL,
|
||||
`created_at` DATETIME,
|
||||
`updated_at` DATETIME,
|
||||
PRIMARY KEY (`id`),
|
||||
INDEX `fi_secteur_commune_secteur` (`id_secteur`),
|
||||
CONSTRAINT `fk_secteur_commune_secteur`
|
||||
FOREIGN KEY (`id_secteur`)
|
||||
REFERENCES `lps_secteur` (`id`)
|
||||
INDEX `fi_area_area_city` (`id_area`),
|
||||
CONSTRAINT `fk_area_area_city`
|
||||
FOREIGN KEY (`id_area`)
|
||||
REFERENCES `lps_area` (`id`)
|
||||
ON DELETE CASCADE
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
INSERT INTO `lps_secteur_commune`(`id_secteur`,`zipcode`) VALUES
|
||||
(1,'62120'),
|
||||
(1,'62129'),
|
||||
(1,'62219'),
|
||||
(1,'62500'),
|
||||
(1,'62510'),
|
||||
(1,'62570'),
|
||||
(1,'62575'),
|
||||
(1,'62910');
|
||||
|
||||
INSERT INTO `lps_secteur_commune`(`id_secteur`,`zipcode`) VALUES
|
||||
(2,'62010'),
|
||||
(2,'62024'),
|
||||
(2,'62088'),
|
||||
(2,'62229'),
|
||||
(2,'62292'),
|
||||
(2,'62309'),
|
||||
(2,'62504'),
|
||||
(2,'62534'),
|
||||
(2,'62613'),
|
||||
(2,'62656'),
|
||||
(2,'62674'),
|
||||
(2,'62702'),
|
||||
(2,'62788'),
|
||||
(2,'62794'),
|
||||
(2,'62803'),
|
||||
(2,'62882'),
|
||||
(2,'62897'),
|
||||
(2,'62898'),
|
||||
(2,'62905');
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
-- lps_secteur_horaires
|
||||
-- lps_area_schedule
|
||||
-- ---------------------------------------------------------------------
|
||||
|
||||
DROP TABLE IF EXISTS `lps_secteur_horaires`;
|
||||
DROP TABLE IF EXISTS `lps_area_schedule`;
|
||||
|
||||
CREATE TABLE `lps_secteur_horaires`
|
||||
CREATE TABLE `lps_area_schedule`
|
||||
(
|
||||
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
||||
`id_secteur` INTEGER NOT NULL,
|
||||
`jour` INTEGER NOT NULL,
|
||||
`heure_debut` TIME NOT NULL,
|
||||
`heure_fin` TIME NOT NULL,
|
||||
`id_area` INTEGER NOT NULL,
|
||||
`day` INTEGER NOT NULL,
|
||||
`begin_time` TIME NOT NULL,
|
||||
`end_time` TIME NOT NULL,
|
||||
`created_at` DATETIME,
|
||||
`updated_at` DATETIME,
|
||||
PRIMARY KEY (`id`),
|
||||
INDEX `fi_secteur_horaires_secteur` (`id_secteur`),
|
||||
CONSTRAINT `fk_secteur_horaires_secteur`
|
||||
FOREIGN KEY (`id_secteur`)
|
||||
REFERENCES `lps_secteur` (`id`)
|
||||
INDEX `fi_area_area_schedule` (`id_area`),
|
||||
CONSTRAINT `fk_area_area_schedule`
|
||||
FOREIGN KEY (`id_area`)
|
||||
REFERENCES `lps_area` (`id`)
|
||||
ON DELETE CASCADE
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
|
||||
@@ -2,7 +2,11 @@
|
||||
|
||||
namespace LivraisonParSecteurs\Controller;
|
||||
|
||||
use LivraisonParSecteurs\LivraisonParSecteurs;
|
||||
use LivraisonParSecteurs\Model\LpsAreaQuery;
|
||||
use Thelia\Controller\Admin\BaseAdminController;
|
||||
use Thelia\Core\Security\AccessManager;
|
||||
use Thelia\Core\Security\Resource\AdminResources;
|
||||
|
||||
/**
|
||||
* Class BackOfficeController
|
||||
@@ -12,17 +16,36 @@ class BackOfficeController extends BaseAdminController
|
||||
{
|
||||
public function viewAction($params = [])
|
||||
{
|
||||
return $this->render("secteurs");
|
||||
return $this->render("deliveryarea-list");
|
||||
}
|
||||
|
||||
public function toggleActive($params = [])
|
||||
public function toggleActive($id)
|
||||
{
|
||||
return $this->render("secteurs");
|
||||
// Check current user authorization
|
||||
if (null !== $response = $this->checkAuth(AdminResources::MODULE, LivraisonParSecteurs::getModuleCode(), AccessManager::UPDATE))
|
||||
return $response;
|
||||
|
||||
$deliveryarea = LpsAreaQuery::create()->findOneById($id);
|
||||
$deliveryarea->setActive($deliveryarea->getActive() ? 0 : 1)->save();
|
||||
|
||||
return $this->render("deliveryarea-list");
|
||||
}
|
||||
|
||||
public function updatePrice($params = [])
|
||||
{
|
||||
return $this->render("secteurs");
|
||||
return $this->render("deliveryarea-list");
|
||||
}
|
||||
|
||||
public function viewArea()
|
||||
{
|
||||
$selectedArea = LpsAreaQuery::create()->findOneById($this->getRequest()->query->get("area_id"));
|
||||
return $this->render("deliveryarea-edit", array('module_code' => 'DeliveryRound',
|
||||
'area_id' => $selectedArea));
|
||||
}
|
||||
|
||||
public function editArea()
|
||||
{
|
||||
$selectedArea = LpsAreaQuery::create()->findOneById($id);
|
||||
return $this->render("deliveryarea-edit");
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,7 @@
|
||||
namespace LivraisonParSecteurs\Form;
|
||||
|
||||
use LivraisonParSecteurs\LivraisonParSecteurs;
|
||||
use LivraisonParSecteurs\Model\LpsAreaQuery;
|
||||
use Thelia\Form\BaseForm;
|
||||
use Symfony\Component\Validator\Constraints;
|
||||
|
||||
@@ -23,7 +24,16 @@ class ConfigForm extends BaseForm
|
||||
'required' => true,
|
||||
'label' => $this->translator->trans('Price', [], LivraisonParSecteurs::DOMAIN_NAME),
|
||||
'label_attr' => ['for' => 'price'],
|
||||
'data' => LivraisonParSecteurs::getConfigValue('price', 0)
|
||||
'attr' => array()
|
||||
])
|
||||
->add(
|
||||
'active',
|
||||
'number',
|
||||
[
|
||||
'required' => true,
|
||||
'label' => $this->translator->trans('Active', [], LivraisonParSecteurs::DOMAIN_NAME),
|
||||
'label_attr' => ['for' => 'active'],
|
||||
'attr' => array()
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
@@ -30,13 +30,8 @@ class AdminHook extends BaseHook
|
||||
);
|
||||
|
||||
if ($isGranted) {
|
||||
$event->add($this->render("secteurs.html", $event->getArguments()));
|
||||
$event->add($this->render("deliveryarea-list.html", $event->getArguments()));
|
||||
}
|
||||
}
|
||||
|
||||
public function onModuleConfigJs(HookRenderEvent $event)
|
||||
{
|
||||
$event->add($this->render('script/livraisonparsecteurs-js.html'));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -2,14 +2,13 @@
|
||||
|
||||
namespace LivraisonParSecteurs\Loop;
|
||||
|
||||
use Propel\Runtime\ActiveQuery\Criteria;
|
||||
use Thelia\Core\Template\Element\BaseLoop;
|
||||
use Thelia\Core\Template\Element\LoopResult;
|
||||
use Thelia\Core\Template\Element\LoopResultRow;
|
||||
use Thelia\Core\Template\Element\PropelSearchLoopInterface;
|
||||
use Thelia\Core\Template\Loop\Argument\Argument;
|
||||
use Thelia\Core\Template\Loop\Argument\ArgumentCollection;
|
||||
use LivraisonParSecteurs\Model\LpsSecteurQuery;
|
||||
use LivraisonParSecteurs\Model\LpsAreaQuery;
|
||||
|
||||
/**
|
||||
* Class AreaLoop
|
||||
@@ -33,8 +32,9 @@ class AreaLoop extends BaseLoop implements PropelSearchLoopInterface
|
||||
$loopResultRow = new LoopResultRow($lps_area);
|
||||
$loopResultRow
|
||||
->set("ID", $lps_area->getId())
|
||||
->set("NAME", $lps_area->getNom())
|
||||
->set("TITLE", $lps_area->getTitle())
|
||||
->set("ACTIVE", $lps_area->getActive())
|
||||
->set("PRICE", $lps_area->getPrice())
|
||||
->set("DELIVERY_DAYS", "Lundi....")
|
||||
;
|
||||
$loopResult->addRow($loopResultRow);
|
||||
@@ -58,9 +58,17 @@ class AreaLoop extends BaseLoop implements PropelSearchLoopInterface
|
||||
*/
|
||||
public function buildModelCriteria()
|
||||
{
|
||||
$query = LpsSecteurQuery::create();
|
||||
$query = LpsAreaQuery::create();
|
||||
|
||||
return $query->orderByNom();
|
||||
/* Filtrage éventuel */
|
||||
if (null != $id = $this->getId()) {
|
||||
$query->filterById($id);
|
||||
}
|
||||
if (null != $active = $this->getActive()) {
|
||||
$query->filterByActive($active);
|
||||
}
|
||||
|
||||
return $query->orderByTitle();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
67
local/modules/LivraisonParSecteurs/Loop/AreaScheduleLoop.php
Normal file
67
local/modules/LivraisonParSecteurs/Loop/AreaScheduleLoop.php
Normal file
@@ -0,0 +1,67 @@
|
||||
<?php
|
||||
|
||||
namespace LivraisonParSecteurs\Loop;
|
||||
|
||||
use LivraisonParSecteurs\Model\LpsAreaScheduleQuery;
|
||||
use Thelia\Core\Template\Element\BaseLoop;
|
||||
use Thelia\Core\Template\Element\LoopResult;
|
||||
use Thelia\Core\Template\Element\LoopResultRow;
|
||||
use Thelia\Core\Template\Element\PropelSearchLoopInterface;
|
||||
use Thelia\Core\Template\Loop\Argument\Argument;
|
||||
use Thelia\Core\Template\Loop\Argument\ArgumentCollection;
|
||||
use LivraisonParSecteurs\Model\LpsAreaQuery;
|
||||
|
||||
/**
|
||||
* Class AreaScheduleLoop
|
||||
* @package LivraisonParSecteurs\Loop
|
||||
*/
|
||||
class AreaScheduleLoop extends BaseLoop implements PropelSearchLoopInterface
|
||||
{
|
||||
public $countable = false;
|
||||
public $timestampable = false;
|
||||
public $versionable = false;
|
||||
|
||||
/**
|
||||
* @param LoopResult $loopResult
|
||||
*
|
||||
* @return LoopResult
|
||||
*/
|
||||
public function parseResults(LoopResult $loopResult)
|
||||
{
|
||||
foreach ($loopResult->getResultDataCollection() as $lps_area_schedule) {
|
||||
|
||||
$loopResultRow = new LoopResultRow($lps_area_schedule);
|
||||
$loopResultRow
|
||||
->set("ID", $lps_area->getId())
|
||||
->set("TITLE", $lps_area->getTitle())
|
||||
->set("ACTIVE", $lps_area->getActive())
|
||||
->set("PRICE", $lps_area->getPrice())
|
||||
->set("DELIVERY_DAYS", "Lundi....")
|
||||
;
|
||||
$loopResult->addRow($loopResultRow);
|
||||
}
|
||||
return $loopResult;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
protected function getArgDefinitions()
|
||||
{
|
||||
return new ArgumentCollection(
|
||||
Argument::createIntListTypeArgument('id_area')
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
public function buildModelCriteria()
|
||||
{
|
||||
$query = LpsAreaScheduleQuery::create();
|
||||
$query->filterByIdArea($this->getIdArea());
|
||||
|
||||
return $query->orderByDay()->orderByBeginTime();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2,10 +2,10 @@
|
||||
|
||||
namespace LivraisonParSecteurs\Model;
|
||||
|
||||
use LivraisonParSecteurs\Model\Base\LpsSecteur as BaseLpsSecteur;
|
||||
use LivraisonParSecteurs\Model\Base\LpsArea as BaseLpsArea;
|
||||
|
||||
/**
|
||||
* Skeleton subclass for representing a row from the 'lps_secteur' table.
|
||||
* Skeleton subclass for representing a row from the 'lps_area' table.
|
||||
*
|
||||
*
|
||||
*
|
||||
@@ -14,7 +14,7 @@ use LivraisonParSecteurs\Model\Base\LpsSecteur as BaseLpsSecteur;
|
||||
* long as it does not already exist in the output directory.
|
||||
*
|
||||
*/
|
||||
class LpsSecteur extends BaseLpsSecteur
|
||||
class LpsArea extends BaseLpsArea
|
||||
{
|
||||
|
||||
}
|
||||
@@ -2,10 +2,10 @@
|
||||
|
||||
namespace LivraisonParSecteurs\Model;
|
||||
|
||||
use LivraisonParSecteurs\Model\Base\LpsSecteurCommune as BaseLpsSecteurCommune;
|
||||
use LivraisonParSecteurs\Model\Base\LpsAreaCity as BaseLpsAreaCity;
|
||||
|
||||
/**
|
||||
* Skeleton subclass for representing a row from the 'lps_secteur_commune' table.
|
||||
* Skeleton subclass for representing a row from the 'lps_area_city' table.
|
||||
*
|
||||
*
|
||||
*
|
||||
@@ -14,7 +14,7 @@ use LivraisonParSecteurs\Model\Base\LpsSecteurCommune as BaseLpsSecteurCommune;
|
||||
* long as it does not already exist in the output directory.
|
||||
*
|
||||
*/
|
||||
class LpsSecteurCommune extends BaseLpsSecteurCommune
|
||||
class LpsAreaCity extends BaseLpsAreaCity
|
||||
{
|
||||
|
||||
}
|
||||
@@ -2,10 +2,10 @@
|
||||
|
||||
namespace LivraisonParSecteurs\Model;
|
||||
|
||||
use LivraisonParSecteurs\Model\Base\LpsSecteurCommuneQuery as BaseLpsSecteurCommuneQuery;
|
||||
use LivraisonParSecteurs\Model\Base\LpsAreaCityQuery as BaseLpsAreaCityQuery;
|
||||
|
||||
/**
|
||||
* Skeleton subclass for performing query and update operations on the 'lps_secteur_commune' table.
|
||||
* Skeleton subclass for performing query and update operations on the 'lps_area_city' table.
|
||||
*
|
||||
*
|
||||
*
|
||||
@@ -14,7 +14,7 @@ use LivraisonParSecteurs\Model\Base\LpsSecteurCommuneQuery as BaseLpsSecteurComm
|
||||
* long as it does not already exist in the output directory.
|
||||
*
|
||||
*/
|
||||
class LpsSecteurCommuneQuery extends BaseLpsSecteurCommuneQuery
|
||||
class LpsAreaCityQuery extends BaseLpsAreaCityQuery
|
||||
{
|
||||
|
||||
}
|
||||
@@ -2,10 +2,10 @@
|
||||
|
||||
namespace LivraisonParSecteurs\Model;
|
||||
|
||||
use LivraisonParSecteurs\Model\Base\LpsSecteurQuery as BaseLpsSecteurQuery;
|
||||
use LivraisonParSecteurs\Model\Base\LpsAreaQuery as BaseLpsAreaQuery;
|
||||
|
||||
/**
|
||||
* Skeleton subclass for performing query and update operations on the 'lps_secteur' table.
|
||||
* Skeleton subclass for performing query and update operations on the 'lps_area' table.
|
||||
*
|
||||
*
|
||||
*
|
||||
@@ -14,7 +14,7 @@ use LivraisonParSecteurs\Model\Base\LpsSecteurQuery as BaseLpsSecteurQuery;
|
||||
* long as it does not already exist in the output directory.
|
||||
*
|
||||
*/
|
||||
class LpsSecteurQuery extends BaseLpsSecteurQuery
|
||||
class LpsAreaQuery extends BaseLpsAreaQuery
|
||||
{
|
||||
|
||||
}
|
||||
@@ -2,10 +2,10 @@
|
||||
|
||||
namespace LivraisonParSecteurs\Model;
|
||||
|
||||
use LivraisonParSecteurs\Model\Base\LpsSecteurHoraires as BaseLpsSecteurHoraires;
|
||||
use LivraisonParSecteurs\Model\Base\LpsAreaSchedule as BaseLpsAreaSchedule;
|
||||
|
||||
/**
|
||||
* Skeleton subclass for representing a row from the 'lps_secteur_horaires' table.
|
||||
* Skeleton subclass for representing a row from the 'lps_area_schedule' table.
|
||||
*
|
||||
*
|
||||
*
|
||||
@@ -14,7 +14,7 @@ use LivraisonParSecteurs\Model\Base\LpsSecteurHoraires as BaseLpsSecteurHoraires
|
||||
* long as it does not already exist in the output directory.
|
||||
*
|
||||
*/
|
||||
class LpsSecteurHoraires extends BaseLpsSecteurHoraires
|
||||
class LpsAreaSchedule extends BaseLpsAreaSchedule
|
||||
{
|
||||
|
||||
}
|
||||
@@ -2,10 +2,10 @@
|
||||
|
||||
namespace LivraisonParSecteurs\Model;
|
||||
|
||||
use LivraisonParSecteurs\Model\Base\LpsSecteurHorairesQuery as BaseLpsSecteurHorairesQuery;
|
||||
use LivraisonParSecteurs\Model\Base\LpsAreaScheduleQuery as BaseLpsAreaScheduleQuery;
|
||||
|
||||
/**
|
||||
* Skeleton subclass for performing query and update operations on the 'lps_secteur_horaires' table.
|
||||
* Skeleton subclass for performing query and update operations on the 'lps_area_schedule' table.
|
||||
*
|
||||
*
|
||||
*
|
||||
@@ -14,7 +14,7 @@ use LivraisonParSecteurs\Model\Base\LpsSecteurHorairesQuery as BaseLpsSecteurHor
|
||||
* long as it does not already exist in the output directory.
|
||||
*
|
||||
*/
|
||||
class LpsSecteurHorairesQuery extends BaseLpsSecteurHorairesQuery
|
||||
class LpsAreaScheduleQuery extends BaseLpsAreaScheduleQuery
|
||||
{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
{extends file="admin-layout.tpl"}
|
||||
|
||||
{block name="page-title"}{intl l='My areas' d="livraisonparsecteurs"}{/block}
|
||||
|
||||
{block name="check-access"}update{/block}
|
||||
{block name="check-module"}LivraisonParSecteurs{/block}
|
||||
|
||||
{block name="main-content"}
|
||||
<div id="wrapper" class="container">
|
||||
{assign "area_id" $smarty.get.area_id}
|
||||
|
||||
{if $form_error}
|
||||
<div class="alert alert-danger">{$form_error_message}</div>
|
||||
{/if}
|
||||
|
||||
<div class="form-container">
|
||||
{include
|
||||
file = "includes/inner-form-toolbar.html"
|
||||
hide_submit_buttons = false
|
||||
pageUrl = "{url path='/admin/module/LivraisonParSecteurs/edit' area_id=$area_id}"
|
||||
closeUrl = "{url path='/admin/module/LivraisonParSecteurs'}"
|
||||
current_tab = "general"
|
||||
}
|
||||
</div>
|
||||
|
||||
<div class="general-block-decorator">
|
||||
<div class="title title-without-tabs">
|
||||
{intl l='Edit an area' d='livraisonparsecteurs'} : <b>{loop name="area" type="lps_area" id={$area_id}}{$TITLE}{/loop}</b>
|
||||
</div>
|
||||
|
||||
{hookblock name="area.tabs" area=$area_id}
|
||||
<ul class="nav nav-tabs" id="tabbed-menu">
|
||||
{loop name="auth-general" type="auth" role="ADMIN" resource="admin" access="VIEW" module="LivraisonParSecteurs"}
|
||||
<li class="active"><a href="#general" data-toggle="tab">{intl l="General" d="livraisonparsecteurs"}</a></li>
|
||||
{/loop}
|
||||
{loop name="auth-schedule" type="auth" role="ADMIN" resource="admin.schedule" access="VIEW" module="LivraisonParSecteurs"}
|
||||
<li><a href="#schedule" data-toggle="tab">{intl l="Schedule" d="livraisonparsecteurs"}</a></li>
|
||||
{/loop}
|
||||
{loop name="auth-cities" type="auth" role="ADMIN" resource="admin.cities" access="VIEW" module="LivraisonParSecteurs"}
|
||||
<li><a href="#cities" data-toggle="tab">{intl l="Cities" d="livraisonparsecteurs"}</a></li>
|
||||
{/loop}
|
||||
</ul>
|
||||
|
||||
<div class="tab-content">
|
||||
{loop name="auth-general-tab" type="auth" role="ADMIN" resource="admin" access="VIEW" module="LivraisonParSecteurs"}
|
||||
<div class="tab-pane fade in active" id="general">
|
||||
{include file="includes/area-general.html"}
|
||||
</div>
|
||||
{/loop}
|
||||
{loop name="auth-schedule-tab" type="auth" role="ADMIN" resource="admin.schedule" access="VIEW" module="LivraisonParSecteurs"}
|
||||
<div class="tab-pane fade" id="schedule">
|
||||
{* {include file="includes/area-schedule.html"} *}
|
||||
</div>
|
||||
{/loop}
|
||||
{loop name="auth-cities-tab" type="auth" role="ADMIN" resource="admin.cities" access="VIEW" module="LivraisonParSecteurs"}
|
||||
<div class="tab-pane fade" id="cities">
|
||||
{* {include file="includes/area-cities.html"} *}
|
||||
</div>
|
||||
{/loop}
|
||||
</div>
|
||||
{/hookblock}
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
|
||||
{block name="javascript-initialization"}
|
||||
{javascripts file='assets/js/bootstrap-switch/bootstrap-switch.js'}
|
||||
<script src="{$asset_url}"></script>
|
||||
{/javascripts}
|
||||
{/block}
|
||||
@@ -4,7 +4,7 @@
|
||||
{$admin_current_location = 'module'}
|
||||
{/block}
|
||||
|
||||
{block name="page-title"}{intl l='Configuration'}{/block}
|
||||
{block name="page-title"}{intl l='Title of config view' d='livraisonparsecteurs'}{/block}
|
||||
|
||||
{block name="check-resource"}admin.module{/block}
|
||||
{block name="check-access"}view{/block}
|
||||
@@ -19,39 +19,7 @@
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div class="general-block-decorator">
|
||||
<div class="title title-without-tabs">
|
||||
{intl l="Home delivery cost" d='livraisonparsecteurs'}
|
||||
</div>
|
||||
|
||||
{form name='livraisonparsecteurs.config_form'}
|
||||
<form action="{url path='/admin/module/LivraisonParSecteurs/config'}" method="post" class="form-inline">
|
||||
|
||||
{form_hidden_fields form=$form}
|
||||
|
||||
{if $form_error}
|
||||
<div class="alert alert-danger">{$form_error_message}</div>
|
||||
{/if}
|
||||
|
||||
{form_field form=$form field="price"}
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="{$label_attr.for}">
|
||||
{$label}
|
||||
</label>
|
||||
|
||||
<input type="text" id="{$label_attr.for}" class="form-control" name="{$name}" value="{$value}"
|
||||
{if $required}required{/if} />
|
||||
</div>
|
||||
{/form_field}
|
||||
|
||||
<div class="form-group">
|
||||
<button class="btn btn-info" type="submit">{intl l='Save' d='livraisonparsecteurs'}</button>
|
||||
</div>
|
||||
</form>
|
||||
{/form}
|
||||
</div>
|
||||
|
||||
<div class="general-block-decorator">
|
||||
<div class="general-block-decorator">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped table-condensed" id="areas-table">
|
||||
<caption class="clearfix">
|
||||
@@ -60,28 +28,18 @@
|
||||
|
||||
<thead>
|
||||
<tr>
|
||||
{$order}
|
||||
<th>
|
||||
{intl l="Area name" d='livraisonparsecteurs'}
|
||||
</th>
|
||||
<th>
|
||||
{intl l="Active" d='livraisonparsecteurs'}
|
||||
</th>
|
||||
<th>
|
||||
{intl l="Delivery days" d='livraisonparsecteurs'}
|
||||
</th>
|
||||
<th>
|
||||
{intl l="Actions" d='livraisonparsecteurs'}
|
||||
</th>
|
||||
<th>{intl l="Area name" d='livraisonparsecteurs'}</th>
|
||||
<th>{intl l="Active" d='livraisonparsecteurs'}</th>
|
||||
<th>{intl l="Delivery price" d='livraisonparsecteurs'}</th>
|
||||
<th>{intl l="Delivery days" d='livraisonparsecteurs'}</th>
|
||||
<th>{intl l="Actions" d='livraisonparsecteurs'}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{loop name="areas" type="lps_area" backend_context="yes" order=$order force_return=true}
|
||||
{loop name="areas" type="lps_area" backend_context="yes"}
|
||||
<tr>
|
||||
<td>
|
||||
<a href="{url path='/admin/module/LivraisonParSecteurs/secteurs/edit' area_id=$ID}">{$NAME}</a>
|
||||
</td>
|
||||
<td><a href="{url path='/admin/module/LivraisonParSecteurs/edit' area_id=$ID}">{$TITLE}</a></td>
|
||||
<td>
|
||||
<div class="make-switch switch-small toggle-visible" data-id="{$ID}" data-on="success"
|
||||
data-off="danger" data-on-label="<i class='glyphicon glyphicon-ok'></i>"
|
||||
@@ -89,12 +47,11 @@
|
||||
<input type="checkbox" class="link" {if $ACTIVE == 1}checked="checked"{/if}>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
{$DELIVERY_DAYS}
|
||||
</td>
|
||||
<td>{$PRICE} €</td>
|
||||
<td>{$DELIVERY_DAYS}</td>
|
||||
<td>
|
||||
<div class="btn-group">
|
||||
<a class="btn btn-default btn-xs" title="{intl l='Edit this area'}" href="{url path='/admin/module/LivraisonParSecteurs/secteurs/edit' area_id=$ID}">
|
||||
<a class="btn btn-default btn-xs" title="{intl l='Edit this area'}" href="{url path='/admin/module/LivraisonParSecteurs/edit' area_id=$ID}">
|
||||
<i class="glyphicon glyphicon-edit"></i>
|
||||
</a>
|
||||
<a class="btn btn-default btn-xs area-delete" title="{intl l='Delete this area'}" data-target="#area-delete" data-toggle="modal" data-id="{$ID}">
|
||||
@@ -124,7 +81,7 @@
|
||||
$(".toggle-visible").on('switch-change', function (event, data) {
|
||||
$.ajax({
|
||||
method: "POST",
|
||||
url: "{url path='admin/module/LivraisonParSecteurs/secteurs/toggle-online/'}" + $(this).data('id')
|
||||
url: "{url path='admin/module/LivraisonParSecteurs/toggle-online/'}" + $(this).data('id')
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,88 @@
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<table class="table table-striped table-condensed">
|
||||
<caption class="clearfix">
|
||||
{loop name="auth-create" type="auth" role="ADMIN" resource="admin.livraisonparsecteurs.schedules" access="CREATE" module="LivraisonParSecteurs"}
|
||||
<div class="pull-right">
|
||||
<a class="btn btn-default btn-primary dealer-schedules-default"
|
||||
title="{intl l='Create a new Default Schedules' d='livraisonparsecteurs'}"
|
||||
data-target="#dealer-schedules-create" data-toggle="modal">
|
||||
<i class="glyphicon glyphicon-plus-sign"></i>
|
||||
</a>
|
||||
</div>
|
||||
{/loop}
|
||||
<h4>{intl l="Default Schedules" d="livraisonparsecteurs"}</h4>
|
||||
</caption>
|
||||
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
{intl l="Day" d="livraisonparsecteurs"}
|
||||
</th>
|
||||
<th>
|
||||
{intl l="Begin" d="livraisonparsecteurs"}
|
||||
</th>
|
||||
<th>
|
||||
{intl l="End" d="livraisonparsecteurs"}
|
||||
</th>
|
||||
<th>
|
||||
{intl l="Actions" d="livraisonparsecteurs"}
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{loop name="dealer-schedules-defaults" type="dealer_schedules" dealer_id=$smarty.get.dealer_id default_period=true order="day,begin"}
|
||||
<tr>
|
||||
<td>
|
||||
{$DAY_LABEL}
|
||||
</td>
|
||||
<td>
|
||||
{format_date date=$BEGIN format="H:i"}
|
||||
</td>
|
||||
<td>
|
||||
{format_date date=$END format="H:i"}
|
||||
</td>
|
||||
{* Actions *}
|
||||
<td>
|
||||
<div class="btn-group">
|
||||
{loop name="auth-edit" type="auth" role="ADMIN" resource="admin.dealer.schedules" access="UPDATE" module="Dealer"}
|
||||
<a class="btn btn-default btn-xs dealer-schedules-update-default"
|
||||
title="{intl l='Modify this Schedule' d='livraisonparsecteurs'}"
|
||||
data-target="#dealer-schedules-update" data-toggle="modal" data-id="{$ID}"
|
||||
data-day="{$DAY}" data-begin="{format_date date=$BEGIN format="H:i"}"
|
||||
data-end="{format_date date=$END format="H:i"}">
|
||||
<i class="glyphicon glyphicon-edit"></i>
|
||||
</a>
|
||||
{/loop}
|
||||
{loop name="auth-edit" type="auth" role="ADMIN" resource="admin.dealer.schedules" access="CREATE" module="Dealer"}
|
||||
<a class="btn btn-default btn-xs dealer-schedules-clone"
|
||||
title="{intl l='Clone this Schedule' d='livraisonparsecteurs'}"
|
||||
data-target="#dealer-schedules-clone" data-toggle="modal" data-id="{$ID}">
|
||||
<i class="glyphicon glyphicon-plus-sign"></i>
|
||||
</a>
|
||||
{/loop}
|
||||
{loop name="auth-delete" type="auth" role="ADMIN" resource="admin.dealer.schedules" access="DELETE" module="Dealer"}
|
||||
<a class="btn btn-default btn-xs dealer-schedules-delete"
|
||||
title="{intl l='Delete this Schedule' d='livraisonparsecteurs'}"
|
||||
data-target="#dealer-schedules-delete" data-toggle="modal" data-id="{$ID}">
|
||||
<i class="glyphicon glyphicon-trash"></i>
|
||||
</a>
|
||||
{/loop}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{/loop}
|
||||
{elseloop rel="dealer-schedules-defaults"}
|
||||
<tr>
|
||||
<td colspan="1000">
|
||||
<div class="alert alert-info">
|
||||
{intl l="There is no Default Schedules" d="livraisonparsecteurs"}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{/elseloop}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,49 @@
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="general-block-decorator">
|
||||
|
||||
{loop name="area" type="lps_area" id="$area_id"}
|
||||
|
||||
{form name='livraisonparsecteurs_config_general'}
|
||||
<form action="{url path='/admin/module/LivraisonParSecteurs/edit'}" method="post" class="form-inline">
|
||||
{form_hidden_fields form=$form}
|
||||
|
||||
{if $form_error}
|
||||
<div class="alert alert-danger">{$form_error_message}</div>
|
||||
{/if}
|
||||
|
||||
{form_field form=$form field="price"}
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="{$label_attr.for}">
|
||||
{$label}
|
||||
</label>
|
||||
|
||||
<input type="text" id="{$label_attr.for}" class="form-control" name="{$name}" value="{$PRICE}"
|
||||
{if $required}required{/if} />
|
||||
</div>
|
||||
{/form_field}
|
||||
|
||||
{form_field form=$form field="active"}
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="{$label_attr.for}">
|
||||
{$label}
|
||||
</label>
|
||||
|
||||
<div class="make-switch switch-small toggle-visible" data-id="{$ID}" data-on="success"
|
||||
data-off="danger" data-on-label="<i class='glyphicon glyphicon-ok'></i>"
|
||||
data-off-label="<i class='glyphicon glyphicon-remove'></i>">
|
||||
<input type="checkbox" class="link" {if $ACTIVE == 1}checked="checked"{/if}>
|
||||
</div>
|
||||
</div>
|
||||
{/form_field}
|
||||
|
||||
<div class="form-group">
|
||||
<button class="btn btn-info" type="submit">{intl l='Save' d='livraisonparsecteurs'}</button>
|
||||
</div>
|
||||
</form>
|
||||
{/form}
|
||||
|
||||
{/loop}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,91 @@
|
||||
<link rel="stylesheet"
|
||||
href="{stylesheet file='assets/js/bootstrap-datetimepicker/bootstrap-datetimepicker.min.css'}">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<table class="table table-striped table-condensed">
|
||||
<caption class="clearfix">
|
||||
{loop name="auth-create" type="auth" role="ADMIN" resource="admin.livraisonparsecteurs.schedules" access="CREATE" module="LivraisonParSecteurs"}
|
||||
<div class="pull-right">
|
||||
<a class="btn btn-default btn-primary dealer-schedules-default"
|
||||
title="{intl l='Create a new Default Schedules' d='livraisonparsecteurs'}"
|
||||
data-target="#dealer-schedules-create" data-toggle="modal">
|
||||
<i class="glyphicon glyphicon-plus-sign"></i>
|
||||
</a>
|
||||
</div>
|
||||
{/loop}
|
||||
<h4>{intl l="Default Schedules" d="livraisonparsecteurs"}</h4>
|
||||
</caption>
|
||||
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
{intl l="Day" d="livraisonparsecteurs"}
|
||||
</th>
|
||||
<th>
|
||||
{intl l="Begin" d="livraisonparsecteurs"}
|
||||
</th>
|
||||
<th>
|
||||
{intl l="End" d="livraisonparsecteurs"}
|
||||
</th>
|
||||
<th>
|
||||
{intl l="Actions" d="livraisonparsecteurs"}
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{loop name="dealer-schedules-defaults" type="dealer_schedules" dealer_id=$smarty.get.dealer_id default_period=true order="day,begin"}
|
||||
<tr>
|
||||
<td>
|
||||
{$DAY_LABEL}
|
||||
</td>
|
||||
<td>
|
||||
{format_date date=$BEGIN format="H:i"}
|
||||
</td>
|
||||
<td>
|
||||
{format_date date=$END format="H:i"}
|
||||
</td>
|
||||
{* Actions *}
|
||||
<td>
|
||||
<div class="btn-group">
|
||||
{loop name="auth-edit" type="auth" role="ADMIN" resource="admin.dealer.schedules" access="UPDATE" module="Dealer"}
|
||||
<a class="btn btn-default btn-xs dealer-schedules-update-default"
|
||||
title="{intl l='Modify this Schedule' d='livraisonparsecteurs'}"
|
||||
data-target="#dealer-schedules-update" data-toggle="modal" data-id="{$ID}"
|
||||
data-day="{$DAY}" data-begin="{format_date date=$BEGIN format="H:i"}"
|
||||
data-end="{format_date date=$END format="H:i"}">
|
||||
<i class="glyphicon glyphicon-edit"></i>
|
||||
</a>
|
||||
{/loop}
|
||||
{loop name="auth-edit" type="auth" role="ADMIN" resource="admin.dealer.schedules" access="CREATE" module="Dealer"}
|
||||
<a class="btn btn-default btn-xs dealer-schedules-clone"
|
||||
title="{intl l='Clone this Schedule' d='livraisonparsecteurs'}"
|
||||
data-target="#dealer-schedules-clone" data-toggle="modal" data-id="{$ID}">
|
||||
<i class="glyphicon glyphicon-plus-sign"></i>
|
||||
</a>
|
||||
{/loop}
|
||||
{loop name="auth-delete" type="auth" role="ADMIN" resource="admin.dealer.schedules" access="DELETE" module="Dealer"}
|
||||
<a class="btn btn-default btn-xs dealer-schedules-delete"
|
||||
title="{intl l='Delete this Schedule' d='livraisonparsecteurs'}"
|
||||
data-target="#dealer-schedules-delete" data-toggle="modal" data-id="{$ID}">
|
||||
<i class="glyphicon glyphicon-trash"></i>
|
||||
</a>
|
||||
{/loop}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{/loop}
|
||||
{elseloop rel="dealer-schedules-defaults"}
|
||||
<tr>
|
||||
<td colspan="1000">
|
||||
<div class="alert alert-info">
|
||||
{intl l="There is no Default Schedules" d="livraisonparsecteurs"}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{/elseloop}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
Reference in New Issue
Block a user