allow country update

This commit is contained in:
Manuel Raynaud
2013-10-10 14:20:53 +02:00
parent d8ec745fea
commit 6bfca2c6b4
9 changed files with 140 additions and 74 deletions

View File

@@ -59,7 +59,19 @@ class Country extends BaseAction implements EventSubscriberInterface
public function update(CountryUpdateEvent $event)
{
if (null !== $country = CountryQuery::create()->findPk($event->getCountryId())) {
$country
->setIsocode($event->getIsocode())
->setIsoalpha2($event->getIsoAlpha2())
->setIsoalpha3($event->getIsoAlpha3())
->setLocale($event->getLocale())
->setTitle($event->getTitle())
->setChapo($event->getChapo())
->setDescription($event->getDescription())
->save();
$event->setCountry($country);
}
}
public function delete(CountryDeleteEvent $event)

View File

@@ -420,11 +420,16 @@
<requirement key="country_id">\d+</requirement>
</route>
<route id="admin.configuration.countries.save" path="/admin/configuration/country/save/{country_id}">
<default key="_controller">Thelia\Controller\Admin\CountryController::processUpdateAction</default>
<requirement key="country_id">\d+</requirement>
</route>
<route id="admin.configuration.countries.delete" path="/admin/configuration/countries/delete">
<default key="_controller">Thelia\Controller\Admin\CountryController::deleteAction</default>
</route>
<route id="admin.configuration.toggle-default" path="/admin/configuration/country/toggleDefault">
<route id="admin.configuration.countries.toggle-default" path="/admin/configuration/country/toggleDefault">
<default key="_controller">Thelia\Controller\Admin\CountryController::toggleDefaultAction</default>
</route>

View File

@@ -246,7 +246,7 @@ class BaseAdminController extends BaseController
* @param unknown $routeId the route ID, as found in Config/Resources/routing/admin.xml
* @param unknown $urlParameters the URL parametrs, as a var/value pair array
*/
public function redirectToRoute($routeId, $urlParameters = array(), $routeParameters = array())
public function redirectToRoute($routeId, array $urlParameters = array(), array $routeParameters = array())
{
$this->redirect(URL::getInstance()->absoluteUrl($this->getRoute($routeId, $routeParameters), $urlParameters));
}

View File

@@ -129,7 +129,7 @@ class CountryController extends AbstractCrudController
*/
protected function getUpdateEvent($formData)
{
$event = new CountryUpdateEvent();
$event = new CountryUpdateEvent($formData['id']);
return $this->hydrateEvent($event, $formData);
}
@@ -139,6 +139,8 @@ class CountryController extends AbstractCrudController
$event
->setLocale($formData['locale'])
->setTitle($formData['title'])
->setChapo($formData['chapo'])
->setDescription($formData['description'])
->setIsocode($formData['isocode'])
->setIsoAlpha2($formData['isoalpha2'])
->setIsoAlpha3($formData['isoalpha3'])
@@ -236,7 +238,10 @@ class CountryController extends AbstractCrudController
*/
protected function redirectToEditionTemplate()
{
$this->redirectToRoute('admin.configuration.countries.update', array(), $this->getRequest()->get('country_id', 0));
$this->redirectToRoute('admin.configuration.countries.update', array(), array(
"country_id" => $this->getRequest()->get('country_id', 0)
)
);
}
/**

View File

@@ -31,5 +31,90 @@ namespace Thelia\Core\Event\Country;
*/
class CountryUpdateEvent extends CountryCreateEvent
{
protected $country_id;
protected $chapo;
protected $description;
protected $postscriptum;
function __construct($country_id)
{
$this->country_id = $country_id;
}
/**
* @param mixed $chapo
*/
public function setChapo($chapo)
{
$this->chapo = $chapo;
return $this;
}
/**
* @return mixed
*/
public function getChapo()
{
return $this->chapo;
}
/**
* @param mixed $description
*/
public function setDescription($description)
{
$this->description = $description;
return $this;
}
/**
* @return mixed
*/
public function getDescription()
{
return $this->description;
}
/**
* @param mixed $postscriptum
*/
public function setPostscriptum($postscriptum)
{
$this->postscriptum = $postscriptum;
return $this;
}
/**
* @return mixed
*/
public function getPostscriptum()
{
return $this->postscriptum;
}
/**
* @param mixed $country_id
*/
public function setCountryId($country_id)
{
$this->country_id = $country_id;
return $this;
}
/**
* @return mixed
*/
public function getCountryId()
{
return $this->country_id;
}
}

View File

@@ -122,16 +122,6 @@ abstract class DocumentModification extends BaseForm
)
)
)
->add(
'postscriptum',
'text',
array(
'constraints' => array(),
'label' => Translator::getInstance()->trans('Post Scriptum'),
'label_attr' => array(
'for' => 'postscriptum'
)
)
);
;
}
}

View File

@@ -130,16 +130,6 @@ abstract class ImageModification extends BaseForm
)
)
)
->add(
'postscriptum',
'text',
array(
'constraints' => array(),
'label' => Translator::getInstance()->trans('Post Scriptum'),
'label_attr' => array(
'for' => 'postscriptum'
)
)
);
;
}
}