Merge remote-tracking branch 'origin/master'

This commit is contained in:
Julien Fastré 2016-03-22 21:21:45 +01:00
commit 4744014cf2
6 changed files with 93 additions and 7 deletions

View File

@ -29,6 +29,7 @@ class ChillEventExtension extends Extension implements PrependExtensionInterface
$loader->load('repositories.yml');
$loader->load('search.yml');
$loader->load('authorization.yml');
$loader->load('forms.yml');
}
/* (non-PHPdoc)

View File

@ -5,6 +5,7 @@ namespace Chill\EventBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
use Chill\EventBundle\Form\Type\TranslatableEventType;
class EventType extends AbstractType
{
@ -16,10 +17,18 @@ class EventType extends AbstractType
{
$builder
->add('label')
->add('date')
->add(
'date',
'date',
array(
'required' => true,
'widget' => 'single_text',
'format' => 'dd-MM-yyyy'
)
)
->add('center')
->add('type')
->add('circle')
->add('type', TranslatableEventType::class)
//->add('circle')
;
}

View File

@ -0,0 +1,70 @@
<?php
/*
* Chill is a software for social workers
*
* Copyright (C) 2016, Champs Libres Cooperative SCRLFS,
* <http://www.champs-libres.coop>, <info@champs-libres.coop>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Chill\EventBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Chill\MainBundle\Templating\TranslatableStringHelper;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Doctrine\ORM\EntityRepository;
use Chill\EventBundle\Entity\EventType;
/**
* Description of TranslatableEventType
*
* @author Champs-Libres Coop
*/
class TranslatableEventType extends AbstractType
{
/**
* @var TranslatableStringHelper
*/
protected $translatableStringHelper;
public function __construct(TranslatableStringHelper $helper)
{
$this->translatableStringHelper = $helper;
}
public function getParent()
{
return EntityType::class;
}
public function configureOptions(OptionsResolver $resolver)
{
$helper = $this->translatableStringHelper;
$resolver->setDefaults(
array(
'class' => EventType::class,
'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('et')
->where('et.active = true');
},
'choice_label' => function (EventType $t) use ($helper) {
return $helper->localize($t->getLabel());
},
)
);
}
}

View File

@ -1,6 +1,6 @@
chill_event_event:
resource: "@ChillEventBundle/Resources/config/routing/event.yml"
prefix: /event
prefix: /{_locale}/event/event
chill_event_fr_admin_event_status:
resource: "@ChillEventBundle/Resources/config/routing/status.yml"
@ -13,4 +13,3 @@ chill_event_admin_role:
chill_event_admin_event_type:
resource: "@ChillEventBundle/Resources/config/routing/eventtype.yml"
prefix: /{_locale}/admin/event/event_type

View File

@ -0,0 +1,7 @@
services:
chill_event.form.event_type_type:
class: Chill\EventBundle\Form\Type\TranslatableEventType
arguments:
- "@chill.main.helper.translatable_string"
tags:
- { name: form.type }

View File

@ -1,6 +1,6 @@
{% extends '::base.html.twig' %}
{% extends 'ChillEventBundle::layout.html.twig' %}
{% block body -%}
{% block event_content -%}
<h1>Event creation</h1>
{{ form(form) }}