restart thelia form type

This commit is contained in:
Etienne Roudeix
2013-10-16 16:20:21 +02:00
parent dde7f15f42
commit 60fd54d5c3
6 changed files with 47 additions and 8 deletions

View File

@@ -392,6 +392,8 @@ abstract class AbstractCrudController extends BaseAdminController
// Get the form field values
$data = $form->getData();
$dataType = $form->all();
$changeEvent = $this->getUpdateEvent($data);
$this->dispatch($this->updateEventIdentifier, $changeEvent);

View File

@@ -76,6 +76,11 @@ class TaxController extends AbstractCrudController
{
$event = new TaxEvent();
/* check the requirements */
if(!$this->checkRequirements($formData)) {
}
$event->setLocale($formData['locale']);
$event->setId($formData['id']);
$event->setTitle($formData['title']);
@@ -195,4 +200,11 @@ class TaxController extends AbstractCrudController
"admin.configuration.taxes-rules.list"
);
}
protected function checkRequirements($formData)
{
$type = $formData['type'];
}
}

View File

@@ -12,12 +12,16 @@ class TheliaType extends AbstractType
{
$resolver->setDefaults(array(
'instance' => false,
'type' => false,
'options' => false,
'type' => false,
'options' => false,
));
$resolver->setAllowedTypes(array(
'instance' => array('Thelia\Type\TypeInterface'),
'instance' => array('Thelia\Type\TypeInterface'),
));
$resolver->setAllowedValues(array(
'type' => array('text', 'choice'),
));
}

View File

@@ -151,10 +151,12 @@ class Tax extends BaseI18nLoop
$loopResultRow = new LoopResultRow($loopResult, $tax, $this->versionable, $this->timestampable, $this->countable);
$requirements = json_decode( base64_decode( $tax->getSerializedRequirements() ), true );
$loopResultRow
->set("ID" , $tax->getId())
->set("TYPE" , $tax->getType())
->set("SERIALIZED_REQUIREMENTS" , $tax->getSerializedRequirements())
->set("REQUIREMENTS" , $requirements)
->set("IS_TRANSLATED" , $tax->getVirtualColumn('IS_TRANSLATED'))
->set("LOCALE" , $locale)
->set("TITLE" , $tax->getVirtualColumn('i18n_TITLE'))

View File

@@ -24,6 +24,7 @@ namespace Thelia\Form;
use Symfony\Component\Validator\Constraints;
use Symfony\Component\Validator\Constraints\NotBlank;
use Symfony\Component\Validator\ExecutionContextInterface;
use Thelia\Core\Form\Type\TheliaType;
use Thelia\Core\Translation\Translator;
use Thelia\TaxEngine\TaxEngine;
@@ -54,6 +55,13 @@ class TaxCreationForm extends BaseForm
"required" => true,
"constraints" => array(
new Constraints\NotBlank(),
new Constraints\Callback(
array(
"methods" => array(
array($this, "verifyRequirements"),
),
)
),
),
"label" => Translator::getInstance()->trans("Type"),
"label_attr" => array("for" => "type_field"),
@@ -66,8 +74,12 @@ class TaxCreationForm extends BaseForm
->add($type . '_' . $name, new TheliaType(), array(
"instance" => $requirementType,
"constraints" => array(
"methods" => array(
array($this, "verifyTaxId"),
new Constraints\Callback(
array(
"methods" => array(
array($this, "verifyRequirements"),
),
)
),
),
"attr" => array(
@@ -91,4 +103,11 @@ class TaxCreationForm extends BaseForm
{
return "thelia_tax_creation";
}
public function verifyRequirements($value, ExecutionContextInterface $context)
{
$in = true;
}
}

View File

@@ -93,12 +93,12 @@
{if $formType == 'choice'}
<select name="{$name}">
{foreach $choices as $choice}
<option value="{$choice->value}">{$choice->label}</option>
<option value="{$choice->value}" {if $REQUIREMENTS.$label == $choice->value}selected="selected" {/if}>{$choice->label}</option>
{/foreach}
</select>
{/if}
{if $formType == 'text'}
<input type="text" name="{$name}" value="">
<input type="text" name="{$name}" value="{$REQUIREMENTS.$label}">
{/if}
</div>
{/form_tagged_fields}