add alert for not-in-household and actions in page

accompanyingCourse/summary

* alert for people not in household for each accompanying course;
* style for action in alert
* form to members editor
This commit is contained in:
Julien Fastré 2021-06-14 11:34:05 +02:00
parent 1df759e970
commit c40019da8f
11 changed files with 118 additions and 11 deletions

View File

@ -0,0 +1,10 @@
/*
* when an alert is the first child of the page, with a banner, we do not want the alert to be merged with the banner
*/
div.container.content {
& > div {
div.alert:nth-child(2) {
margin-top: 1rem;
}
}
}

View File

@ -0,0 +1,29 @@
div.alert.alert-with-actions {
display: flex;
flex-direction: row;
ul.record_actions {
display: flex;
flex-direction: column;
padding: 0;
margin: 0;
li:nth-child(1n+2) {
margin-top: 0.5rem;
}
li {
margin-right: 0;
}
}
@media screen and (max-width: 1050px) {
flex-direction: column;
ul.record_actions {
margin-top: 1rem;
text-align: center;
}
}
}

View File

@ -7,6 +7,10 @@
*/
@import 'alert-first-child';
@import 'alert-with-actions';
/* [hack] /!\ Contourne le positionnement problématique du div#content_conainter suivant,
* car sa position: relative le place au-dessus du bandeau et les liens sont incliquables */
div.subheader {

View File

@ -169,7 +169,7 @@
$('.select2').select2({allowClear: true});
chill.categoryLinkParentChildSelect();
});
</script>
{% block js%}<!-- nothing added to js -->{% endblock %}
</body>
</html>
</script>
{% block js%}<!-- nothing added to js -->{% endblock %}
</body>
</html>

View File

@ -86,8 +86,19 @@ class AccompanyingCourseController extends Controller
*/
public function indexAction(AccompanyingPeriod $accompanyingCourse): Response
{
// compute some warnings
// get persons without household
$withoutHousehold = [];
foreach ($accompanyingCourse->getParticipations() as
$p) {
if (FALSE === $p->getPerson()->isSharingHousehold()) {
$withoutHousehold[] = $p->getPerson();
}
}
return $this->render('@ChillPerson/AccompanyingCourse/index.html.twig', [
'accompanyingCourse' => $accompanyingCourse
'accompanyingCourse' => $accompanyingCourse,
'withoutHousehold' => $withoutHousehold
]);
}

View File

@ -162,6 +162,8 @@ const store = createStore({
},
setWarnings(state, warnings) {
state.warnings = warnings;
// reset errors, which should come from servers
state.errors.splice(0, state.errors.length);
},
setErrors(state, errors) {
state.errors = errors;
@ -176,8 +178,9 @@ const store = createStore({
commit('markPosition', { person_id, position_id });
dispatch('computeWarnings');
},
toggleHolder({ commit }, conc) {
toggleHolder({ commit, dispatch }, conc) {
commit('toggleHolder', conc);
dispatch('computeWarnings');
},
removePosition({ commit, dispatch }, conc) {
commit('removePosition', conc);
@ -195,8 +198,9 @@ const store = createStore({
commit('forceLeaveWithoutHousehold');
dispatch('computeWarnings');
},
setStartDate({ commit }, date) {
setStartDate({ commit, dispatch }, date) {
commit('setStartDate', date);
dispatch('computeWarnings');
},
setComment({ commit }, payload) {
commit('setComment', payload);
@ -240,8 +244,9 @@ const store = createStore({
} else {
// we assume the answer was 422...
error = household;
for (let e in error.violations) {
errors.push('TODO');
for (let i in error.violations) {
let e = error.violations[i];
errors.push(e.title);
}
commit('setErrors', errors);

View File

@ -18,6 +18,45 @@
</div>
{% endif %}
{% if withoutHousehold|length > 0 %}
<div class="alert alert-danger alert-with-actions">
<div class="message">
{{ 'Some peoples does not belong to any household currently. Add them to an household soon'|trans }}
</div>
<ul class="record_actions">
<li>
<button class="btn btn-primary" data-toggle="collapse" href="#withoutHouseholdList">
{{ 'Add to household now'|trans }}
</button>
</li>
</ul>
</div>
<div id="withoutHouseholdList" class="collapse">
<form method="GET" action="{{ chill_path_add_return_path('chill_person_household_members_editor') }}">
<h3>{{ 'household.Select people to move'|trans }}</h3>
<ul>
{% for p in withoutHousehold %}
<li>
<input type="checkbox" name="persons[]" value="{{ p.id }}" />
{{ p|chill_entity_render_box }}
</li>
{% endfor %}
</ul>
<ul class="record_actions">
<li>
<button type="submit" class="sc-button bt-edit">
{{ 'household.Household editor'|trans }}
</button>
</li>
</ul>
</form>
</div>
{% endif %}
<h2>{{ 'Associated peoples'|trans }}</h2>
<div class="flex-table">
{% for p in accompanyingCourse.participations %}

View File

@ -36,8 +36,8 @@ class MaxHolderValidator extends ConstraintValidator
$this->context->buildViolation($msg)
->setParameters([
'start' => $start->format('d-m-Y'), // TODO fix when MessageParameter works with timezone
'end' => $end === null ? null : $end->format('d-m-Y')
'{{ start }}' => $start->format('d-m-Y'), // TODO fix when MessageParameter works with timezone
'{{ end }}' => $end === null ? null : $end->format('d-m-Y')
])
->addViolation();
}

View File

@ -8,6 +8,8 @@ Born the date: >-
household:
Household: Ménage
Household members: Membres du ménage
Household editor: Modifier l'appartenance
Select people to move: Choisir les usagers
Show future or past memberships: >-
{length, plural,
one {Montrer une ancienne appartenance}

View File

@ -178,6 +178,8 @@ Edit & activate accompanying course: Modifier et valider
See accompanying periods: Voir les périodes d'accompagnement
See accompanying period: Voir cette période d'accompagnement
Referrer: Référent
Some peoples does not belong to any household currently. Add them to an household soon: Certaines personnes n'appartiennent à aucun ménage actuellement. Renseignez leur appartenance à un ménage dès que possible.
Add to household now: Ajouter à un ménage
# pickAPersonType
Pick a person: Choisir une personne

View File

@ -33,3 +33,8 @@ You should select an option: Une option doit être choisie.
# aggregator by age
The date should not be empty: La date ne doit pas être vide
# household
household:
max_holder_overflowed_infinity: Il ne peut pas y avoir plus de deux titulaires simultanément. Or, avec cette modification, ce nombre sera dépassé à partir du {{ start }}.
max_holder_overflowed: Il ne peut y avoir plus de deux titulaires simultanément. Or, avec cette modification, ce nombre sera dépassé entre le {{ start }} et le {{ end }}.