Skip to content

Commit 1cda033

Browse files
raphodnOursDesCavernes
authored andcommitted
Membre : pouvoir rajouter la notion de volant (elefan-grenoble#1058)
* New field Membership.flying * New parameter use_fly_and_fixed_entity_flying * Membership flying display * Update SearchUserFormHelper * Update controllers & PeriodService
1 parent 92a36d8 commit 1cda033

21 files changed

+210
-75
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Application\Migrations;
6+
7+
use Doctrine\DBAL\Schema\Schema;
8+
use Doctrine\Migrations\AbstractMigration;
9+
10+
/**
11+
* Auto-generated Migration: Please modify to your needs!
12+
*/
13+
final class Version20231027213416 extends AbstractMigration
14+
{
15+
public function getDescription() : string
16+
{
17+
return '';
18+
}
19+
20+
public function up(Schema $schema) : void
21+
{
22+
// this up() migration is auto-generated, please modify it to your needs
23+
$this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.');
24+
25+
$this->addSql('ALTER TABLE membership ADD flying TINYINT(1) DEFAULT \'0\' NOT NULL');
26+
$this->addSql('UPDATE membership LEFT OUTER JOIN beneficiary ON beneficiary.id = membership.main_beneficiary_id SET membership.flying=beneficiary.flying WHERE beneficiary.flying = 1');
27+
}
28+
29+
public function down(Schema $schema) : void
30+
{
31+
// this down() migration is auto-generated, please modify it to your needs
32+
$this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.');
33+
34+
$this->addSql('ALTER TABLE membership DROP flying');
35+
}
36+
}

app/Resources/views/admin/member/_partial/status_icons.html.twig

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,6 @@
1212
{% if member.mainBeneficiary and not member.mainBeneficiary.user.isEnabled %}
1313
<i class="material-icons" title="Compte pas encore activé">{{ user_account_not_enabled_material_icon }}</i>
1414
{% endif %}
15+
{% if use_fly_and_fixed and fly_and_fixed_entity_flying == 'Membership' and member.flying %}
16+
<i class="material-icons" title="Compte volant">{{ member_flying_material_icon }}</i>
17+
{% endif %}

app/Resources/views/admin/period/index.html.twig

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,11 @@
204204
<li>{{ member_frozen_icon }} Membre gelé</li>
205205
<li>{{ member_exempted_icon }} Membre exempté de créneaux</li>
206206
<li>{{ member_registration_missing_icon }} Membre avec une adhésion expirée</li>
207-
<li>{{ beneficiary_flying_icon }} Bénéficiaire avec un statut "volant"</li>
207+
{% if fly_and_fixed_entity_flying == 'Membership' %}
208+
<li>{{ beneficiary_flying_icon }} Membre avec un statut "volant"</li>
209+
{% else %}
210+
<li>{{ beneficiary_flying_icon }} Bénéficiaire avec un statut "volant"</li>
211+
{% endif %}
208212
</ul>
209213
</td>
210214
</tr>
@@ -234,7 +238,7 @@
234238
<td>
235239
{% for period in periods_by_day[key] %}
236240
{% if ((filling_filter == null) and (beneficiary_filter == null))
237-
or (filling_filter == "problematic" and period.isProblematic(week_filter))
241+
or (filling_filter == "problematic" and period_service.hasWarningStatus(period, week_filter))
238242
or (filling_filter == "empty" and period.isEmpty(week_filter))
239243
or (filling_filter == "full" and period.isFull(week_filter))
240244
or (filling_filter == "partial" and period.isPartial(week_filter))

app/Resources/views/admin/user/list.html.twig

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,32 +23,32 @@
2323
<div class="col s12 m4">
2424
<h5>Compte</h5>
2525
<div class="row">
26-
<div class="col s4">
26+
<div class="col s3">
2727
<div class="input-field">
2828
{{ form_widget(form.withdrawn) }}
2929
{{ form_label(form.withdrawn) }}
3030
</div>
3131
</div>
32-
<div class="col s4">
32+
<div class="col s3">
3333
<div class="input-field">
3434
{{ form_widget(form.enabled) }}
3535
{{ form_label(form.enabled) }}
3636
</div>
3737
</div>
38-
<div class="col s4">
38+
<div class="col s3">
3939
<div class="input-field">
4040
{{ form_widget(form.frozen) }}
4141
{{ form_label(form.frozen) }}
4242
</div>
4343
</div>
44-
</div>
45-
<div class="row">
46-
<div class="col s4">
44+
<div class="col s3">
4745
<div class="input-field">
4846
{{ form_widget(form.exempted) }}
4947
{{ form_label(form.exempted) }}
5048
</div>
5149
</div>
50+
</div>
51+
<div class="row">
5252
<div class="col s4">
5353
<div class="input-field">
5454
{{ form_widget(form.has_first_shift_date) }}
@@ -63,6 +63,14 @@
6363
</div>
6464
</div>
6565
{% endif %}
66+
{% if use_fly_and_fixed and fly_and_fixed_entity_flying == 'Membership' %}
67+
<div class="col s4">
68+
<div class="input-field">
69+
{{ form_widget(form.flying) }}
70+
{{ form_label(form.flying) }}
71+
</div>
72+
</div>
73+
{% endif %}
6674
</div>
6775
<div class="row">
6876
<div class="col s3">
@@ -176,10 +184,12 @@
176184
{{ form_label(form.phone) }}
177185
</div>
178186
{% if use_fly_and_fixed %}
179-
<div class="input-field">
180-
{{ form_widget(form.flying) }}
181-
{{ form_label(form.flying) }}
182-
</div>
187+
{% if fly_and_fixed_entity_flying == 'Beneficiary' %}
188+
<div class="input-field">
189+
{{ form_widget(form.flying) }}
190+
{{ form_label(form.flying) }}
191+
</div>
192+
{% endif %}
183193
<div class="input-field">
184194
{{ form_widget(form.has_period_position) }}
185195
{{ form_label(form.has_period_position) }}

app/Resources/views/beneficiary/_partial/info.html.twig

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,21 @@
77
{% if beneficiary.isMain and maximum_nb_of_beneficiaries_in_membership > 1 %}
88
<span class="badge main-color white-text">{{ beneficiary_main_icon }} principal</span>
99
{% endif %}
10+
{% if use_fly_and_fixed %}
11+
{% if fly_and_fixed_entity_flying == 'Membership' %}
12+
{% if beneficiary.membership.flying %}
13+
<span class="badge teal white-text">{{ member_flying_icon }} Compte volant</span>
14+
{% else %}
15+
<span class="badge main-color white-text">Compte fixe</span>
16+
{% endif %}
17+
{% else %}
18+
{% if beneficiary.flying %}
19+
<span class="badge teal white-text">{{ beneficiary_flying_icon }} Equipe volante</span>
20+
{% else %}
21+
<span class="badge main-color white-text">Equipe fixe</span>
22+
{% endif %}
23+
{% endif %}
24+
{% endif %}
1025
{% if beneficiary.membership.withdrawn %}
1126
<span class="badge red white-text">{{ member_withdrawn_icon }} fermé</span>
1227
{% endif %}
@@ -61,16 +76,6 @@
6176
{% endif %})
6277
{% endif %}
6378
</div>
64-
{% if use_fly_and_fixed %}
65-
<div class="col s12">
66-
<i class="material-icons tiny">accessibility</i>
67-
{% if beneficiary.flying %}
68-
<div class="chip green-text">Equipe volante</div>
69-
{% else %}
70-
<div class="chip green-text">Equipe fixe</div>
71-
{% endif %}
72-
</div>
73-
{% endif %}
7479
{% if beneficiary.formations | length %}
7580
<div class="col s12">
7681
<i class="material-icons tiny">assignment_ind</i>

app/config/config.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,8 @@ twig:
8787
member_exempted_icon: '%member_exempted_icon%'
8888
member_exempted_material_icon: '%member_exempted_material_icon%'
8989
member_exempted_background_color: '%member_exempted_background_color%'
90+
member_flying_icon: '%member_flying_icon%'
91+
member_flying_material_icon: '%member_flying_material_icon%'
9092
member_registration_missing_icon: '%member_registration_missing_icon%'
9193
member_registration_missing_material_icon: '%member_registration_missing_material_icon%'
9294
member_registration_missing_background_color: '%member_registration_missing_background_color%'
@@ -105,6 +107,7 @@ twig:
105107
display_name_shifters: '%display_name_shifters%'
106108
use_card_reader_to_validate_shifts: '%use_card_reader_to_validate_shifts%'
107109
# fly and fixed
110+
fly_and_fixed_entity_flying: '%fly_and_fixed_entity_flying%'
108111
fly_and_fixed_allow_fixed_shift_free: '%fly_and_fixed_allow_fixed_shift_free%'
109112
# time log saving
110113
time_log_saving_shift_free_min_time_in_advance_days: '%time_log_saving_shift_free_min_time_in_advance_days%'

app/config/parameters.yml.dist

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ parameters:
107107

108108
# Shifting: fly & fixed
109109
use_fly_and_fixed: false
110+
fly_and_fixed_entity_flying: 'Beneficiary'
110111
fly_and_fixed_allow_fixed_shift_free: false
111112

112113
# Shifting: card reader
@@ -146,6 +147,8 @@ parameters:
146147
member_exempted_icon: '☂'
147148
member_exempted_material_icon: 'beach_access'
148149
member_exempted_background_color: rgb(0, 150, 136, 0.1)
150+
member_flying_icon: '✈'
151+
member_flying_material_icon: 'flightsmode'
149152
member_registration_missing_icon: '$'
150153
member_registration_missing_material_icon: 'attach_money'
151154
member_registration_missing_background_color: rgb(0, 150, 136, 0.1)

src/AppBundle/Command/ImportUsersCommand.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ protected function execute(InputInterface $input, OutputInterface $output)
143143
$membership = new Membership();
144144
$output->writeln("<info>No Membership with number <fg=cyan>$member_number</> found, create one</info>",OutputInterface::VERBOSITY_DEBUG);
145145
$membership->setMemberNumber($member_number);
146+
$membership->setFlying(false);
146147
$membership->setWithdrawn(false);
147148
$membership->setFrozen(false);
148149
$membership->setFrozenChange(false);

src/AppBundle/Controller/AdminController.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
use AppBundle\Entity\Formation;
1313
use AppBundle\Entity\User;
1414
use AppBundle\Event\HelloassoEvent;
15-
use AppBundle\Form\BeneficiaryType;
1615
use AppBundle\Service\SearchUserFormHelper;
1716
use Doctrine\ORM\Query\ResultSetMappingBuilder;
1817
use Doctrine\ORM\QueryBuilder;

src/AppBundle/Controller/BeneficiaryController.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ public function detachBeneficiaryAction(Request $request, Beneficiary $beneficia
143143
$new_member->setMainBeneficiary($beneficiary);
144144
}
145145
// init other fields
146+
$new_member->setFlying(false);
146147
$new_member->setWithdrawn(false);
147148
$new_member->setFrozen(false);
148149
$new_member->setFrozenChange(false);

0 commit comments

Comments
 (0)