Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

issue#1479 Sponsor ticket transport #1511

Merged
merged 3 commits into from
Jul 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions app/Resources/translations/messages.fr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -208,3 +208,11 @@ venue_speaker.expenses.intro: |
Le package speaker prend en charge le remboursement des frais de transport, sur base d'un trajet en 2nde classe ou classe économique.<br />
Envoyez-nous vos justificatifs (par exemple, une facture de billet de train ou une copie du billet), ainsi que votre RIB/IBAN.<br />
Utilisez le formulaire ci-dessous pour nous envoyer ces informations (au format PDF). Vous pouvez nous envoyer plusieurs fichiers.
certification_lead.info: |
<p>
Dans le cadre de la <a href="https://event.afup.org/forum-php-2024/certification-lead/"
target="_blank">certification LEAD</a>,
nous devons vous demander des informations à propos de votre venue,
afin d'établir notre bilan carbone.<br />
Si vous n'êtes pas sûr·e de votre mode de transport, indiquez le plus probable.
</p>
24 changes: 23 additions & 1 deletion app/Resources/views/event/ticket/sponsor.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,11 @@
<th>
Email
</th>
{% if with_transport %}
<th>
Mode de transport
</th>
{% endif %}
<th>
¤
</th>
Expand All @@ -51,6 +56,12 @@
<td>
{{ ticket.email }}
</td>
{% if with_transport %}
<td>
{{ constant('AppBundle\\Event\\Model\\Ticket::TRANSPORT_MODES')[ticket.transportMode] }}<br />
{{ constant('AppBundle\\Event\\Model\\Ticket::TRANSPORT_DISTANCES')[ticket.transportDistance] }}
</td>
{% endif %}
<td>
<form method="post" class="sponsor--ticket">
<a href="{{ url('sponsor_ticket_form', {ticket: ticket.id, eventSlug: event.path}) }}" class="button">Modifier</a>
Expand All @@ -60,7 +71,7 @@
</tr>
{% else %}
<tr>
<td colspan="4"><em>Aucun ticket enregistré pour le moment.</em></td>
<td colspan="{{ with_transport ? 5 : 4 }}"><em>Aucun ticket enregistré pour le moment.</em></td>
</tr>

{% endfor %}
Expand All @@ -76,6 +87,17 @@
<p>Vous avez utilisé toutes vos invitations. Nous avons hâte de vous retrouver lors de cet évènement !</p>
{% else %}
{{ form_start(ticketForm, {attr: {class: 'sponsor--ticket-edit'}}) }}
{{ form_row(ticketForm.civility) }}
{{ form_row(ticketForm.firstname) }}
{{ form_row(ticketForm.lastname) }}
{{ form_row(ticketForm.email) }}

{% if with_transport %}
{{ 'certification_lead.info'|trans|raw }}
{{ form_row(ticketForm.transport_mode) }}
{{ form_row(ticketForm.transport_distance) }}
{% endif %}

{{ form_errors(ticketForm) }}
{{ form_widget(ticketForm) }}
<input type="submit" value="Enregistrer" />
Expand Down
8 changes: 1 addition & 7 deletions app/Resources/views/event/ticket/ticket.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -178,13 +178,7 @@

{% if ticket.transportMode is defined %}
<div class="transport">
<p>
Dans le cadre de la <a href="https://event.afup.org/forum-php-2024/certification-lead/"
target="_blank">certification LEAD</a>,
nous devons vous demander des informations à propos de votre venue,
afin d'établir notre bilan carbone.<br />
Si vous n'êtes pas sûr·e de votre mode de transport, indiquez le plus probable.
</p>
{{ 'certification_lead.info'|trans|raw }}
{{ form_row(ticket.transportMode) }}
{{ form_row(ticket.transportDistance) }}

Expand Down
3 changes: 2 additions & 1 deletion sources/AppBundle/Controller/TicketController.php
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ public function sponsorTicketFormAction(Request $request, $eventSlug)
} else {
$ticket = $ticketFactory->createTicketFromSponsorTicket($sponsorTicket);
}
$ticketForm = $this->createForm(SponsorTicketType::class, $ticket);
$ticketForm = $this->createForm(SponsorTicketType::class, $ticket, ['with_transport' => $event->getTransportInformationEnabled()]);
$ticketForm->handleRequest($request);

if ($ticketForm->isSubmitted() && $ticketForm->isValid() && $sponsorTicket->getPendingInvitations() > 0) {
Expand Down Expand Up @@ -148,6 +148,7 @@ public function sponsorTicketFormAction(Request $request, $eventSlug)
'event' => $event,
'sponsors_infos' => $event->getSponsorInfos($request->getLocale()),
'sponsorTicket' => $sponsorTicket,
'with_transport' => $event->getTransportInformationEnabled(),
'ticketForm' => $ticketForm->createView(),
'registeredTickets' => $sponsorTicketHelper->getRegisteredTickets($sponsorTicket),
'edit' => $edit,
Expand Down
28 changes: 25 additions & 3 deletions sources/AppBundle/Event/Form/SponsorTicketType.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints\NotBlank;

class SponsorTicketType extends AbstractType
{
Expand All @@ -30,14 +31,35 @@ public function buildForm(FormBuilderInterface $builder, array $options)
])
->add('email', EmailType::class, [
'label' => 'Email'
])
;
]);

if ($options['with_transport']) {
$transportMode = Ticket::TRANSPORT_MODES;
asort($transportMode);

$builder
->add('transport_mode', ChoiceType::class, [
'label' => 'Votre mode de transport ?',
'placeholder' => '',
'required' => true,
'constraints' => [new NotBlank()],
'choices' => array_flip($transportMode),
])
->add('transport_distance', ChoiceType::class, [
'label' => 'La distance parcourue ?',
'placeholder' => '',
'required' => true,
'constraints' => [new NotBlank()],
'choices' => array_flip(Ticket::TRANSPORT_DISTANCES)
]);
}
}

public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => Ticket::class
'data_class' => Ticket::class,
'with_transport' => false
]);
}
}
2 changes: 2 additions & 0 deletions tests/behat/features/Admin/Events/TokensSponsors.feature
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ Feature: Administration - Évènements - Tokens Sponsors
When I fill in "sponsor_ticket[firstname]" with "Nom personne invitée"
And I fill in "sponsor_ticket[lastname]" with "Prénom personne invitée"
And I fill in "sponsor_ticket[email]" with "[email protected]"
And I fill in "sponsor_ticket[transport_mode]" with "70"
And I fill in "sponsor_ticket[transport_distance]" with "50"
And I press "Enregistrer"
# Listing des invitations renseignées
Then I should see "[email protected]"
Expand Down
Loading