LivraisonParSecteurs : partie back-office terminée !!!

This commit is contained in:
2021-02-16 17:09:17 +01:00
parent 54a4b98b7d
commit c3af0a66ba
22 changed files with 603 additions and 162 deletions

View File

@@ -3,12 +3,15 @@
namespace LivraisonParSecteurs\Loop;
use LivraisonParSecteurs\Model\LpsAreaCityQuery;
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 Thelia\Type\EnumListType;
use Thelia\Type\TypeCollection;
/**
* Class AreaCitiesLoop
@@ -48,7 +51,9 @@ class AreaCitiesLoop extends BaseLoop implements PropelSearchLoopInterface
protected function getArgDefinitions()
{
return new ArgumentCollection(
Argument::createIntListTypeArgument('area_id')
Argument::createIntListTypeArgument('area_id'),
Argument::createEnumListTypeArgument('order',
['title', 'zipcode'], 'title')
);
}
@@ -58,11 +63,23 @@ class AreaCitiesLoop extends BaseLoop implements PropelSearchLoopInterface
public function buildModelCriteria()
{
$query = LpsAreaCityQuery::create();
if (null != $id = $this->getAreaId()) {
$query->filterByIdArea($id);
}
return $query->orderByZipcode();
foreach ($this->getOrder() as $order) {
switch ($order) {
case 'title':
$query->orderByTitle();
break;
case 'zipcode':
$query->orderByZipcode()->orderByTitle();
break;
}
}
return $query;
}
}