Merge branch 'master' into ticket-app-master

# Conflicts:
#	docs/source/development/create-a-new-bundle.md
#	src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/components/SocialIssuesAcc/CheckSocialAction.vue
#	src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/components/SocialIssuesAcc/CheckSocialIssue.vue
#	src/Bundle/ChillCalendarBundle/Menu/UserMenuBuilder.php
#	src/Bundle/ChillCalendarBundle/Resources/views/Calendar/_list.html.twig
#	src/Bundle/ChillCalendarBundle/Resources/views/Calendar/cancelCalendarByAccompanyingCourse.html.twig
#	src/Bundle/ChillCalendarBundle/Resources/views/Calendar/cancelCalendarByPerson.html.twig
#	src/Bundle/ChillCalendarBundle/translations/messages.fr.yml
#	src/Bundle/ChillDocStoreBundle/Resources/public/types/index.ts
#	src/Bundle/ChillMainBundle/Resources/public/lib/api/apiMethods.ts
#	src/Bundle/ChillMainBundle/translations/messages.fr.yml
#	src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourse/components/Confirm.vue
This commit is contained in:
2025-12-05 17:04:49 +01:00
248 changed files with 11337 additions and 5040 deletions

View File

@@ -11,15 +11,19 @@ declare(strict_types=1);
namespace Chill\PersonBundle\DataFixtures\ORM;
use Chill\MainBundle\DataFixtures\ORM\LoadAdministrativeLocation;
use Chill\MainBundle\DataFixtures\ORM\LoadPostalCodes;
use Chill\MainBundle\DataFixtures\ORM\LoadUserJob;
use Chill\MainBundle\Entity\Address;
use Chill\MainBundle\Entity\Center;
use Chill\MainBundle\Entity\Country;
use Chill\MainBundle\Entity\Gender;
use Chill\MainBundle\Entity\GenderEnum;
use Chill\MainBundle\Entity\Location;
use Chill\MainBundle\Entity\PostalCode;
use Chill\MainBundle\Entity\Scope;
use Chill\MainBundle\Entity\User;
use Chill\MainBundle\Entity\UserJob;
use Chill\MainBundle\Repository\CenterRepository;
use Chill\MainBundle\Repository\CountryRepository;
use Chill\MainBundle\Repository\GenderRepository;
@@ -362,6 +366,10 @@ class LoadPeople extends AbstractFixture implements ContainerAwareInterface, Ord
$origin = $this->getReference(LoadAccompanyingPeriodOrigin::ACCOMPANYING_PERIOD_ORIGIN, AccompanyingPeriod\Origin::class);
$accompanyingPeriod->setOrigin($origin);
$accompanyingPeriod->setIntensity('regular');
$userJob = $this->getReference(LoadUserJob::USER_JOB, UserJob::class);
$accompanyingPeriod->setJob($userJob);
$administrativeLocation = $this->getReference(LoadAdministrativeLocation::ADMINISTRATIVE_LOCATION, Location::class);
$accompanyingPeriod->setAdministrativeLocation($administrativeLocation);
$accompanyingPeriod->setAddressLocation($this->createAddress());
$manager->persist($accompanyingPeriod->getAddressLocation());
$workflow = $this->workflowRegistry->get($accompanyingPeriod);

View File

@@ -20,32 +20,34 @@
</ul>
</div>
<ul class="record_actions">
<li>
<button class="btn btn-save" disabled>
{{ $t("confirm.ok") }}
</button>
</li>
<li>
<a class="btn btn-delete" :href="deleteLink">
{{ $t("confirm.delete") }}
</a>
</li>
<li>
<button class="btn btn-save" disabled>
{{ $t("confirm.ok") }}
</button>
</li>
</ul>
</div>
<div v-else>
<p v-html="$t('confirm.text_active', [$t('course.step.active')])" />
<ul class="record_actions">
<li>
<button class="btn btn-save" @click="modal.showModal = true">
{{ $t("confirm.ok") }}
</button>
</li>
<li>
<a class="btn btn-delete" :href="deleteLink">
{{ $t("confirm.delete") }}
</a>
</li>
<li>
<button
class="btn btn-save"
@click="modal.showModal = true">
{{ $t("confirm.ok") }}
</button>
</li>
</ul>
</div>
</div>
@@ -105,7 +107,7 @@
</template>
<template #footer>
<button
class="btn btn-danger"
class="btn btn-save"
:disabled="disableConfirm"
@click="confirmCourse"
>

View File

@@ -52,20 +52,7 @@
</div>
</div>
<!-- results which are not attached to an objective -->
<div v-if="hasResultsForAction">
<div class="results_without_objective">
{{ $t("results_without_objective") }}
</div>
<div>
<add-result
:availableResults="resultsForAction"
destination="action"
></add-result>
</div>
</div>
<!-- results which **are** attached to an objective -->
<!-- 1. Goals with results that were already selected/saved to the entity -->
<div v-for="g in goalsPicked" :key="g.goal.id">
<div class="item-title" @click="removeGoal(g)">
<span class="removable">{{
@@ -76,6 +63,32 @@
<add-result :goal="g.goal" destination="goal"></add-result>
</div>
</div>
<!-- 2. Results without objectives that were already selected/saved to the entity -->
<div v-if="hasResultsForAction">
<div
class="results_without_objective"
style="
background: repeating-linear-gradient(
45deg,
#e6e6e6,
#e6e6e6 10px,
#f3f3f3 0,
#f3f3f3 20px
);
"
>
{{ $t("results_without_objective") }}
</div>
<div>
<add-result
:availableResults="resultsForAction"
destination="action"
></add-result>
</div>
</div>
<!-- 3. Selector for objectives with results -->
<div class="accordion" id="expandedSuggestions">
<div
v-if="availableForCheckGoal.length > 0"
@@ -138,6 +151,8 @@
}}</span>
</div>
</div>
<!-- 4. Selector for results without objectives is already included above in section 2 -->
</div>
<div id="evaluations" class="action-row">

View File

@@ -293,11 +293,11 @@ function onInputDocumentTitle(event) {
});
}
function addDocument({ stored_object, stored_object_version }) {
function addDocument({ stored_object, stored_object_version, file_name }) {
let document = {
type: "accompanying_period_work_evaluation_document",
storedObject: stored_object,
title: "Nouveau document",
title: file_name,
};
store.commit("addDocument", {
key: props.evaluation.key,

View File

@@ -2,30 +2,6 @@
# OPTIONS
# - displayContent: [short|long] default: short
#}
{% if w.results|length > 0 %}
<table class="obj-res-eval">
<thead>
<th class="obj"><h4 class="title_label">{{ 'accompanying_course_work.goal'|trans }}</h4></th>
<th class="res"><h4 class="title_label">{{ 'accompanying_course_work.results'|trans }}</h4></th>
</thead>
<tbody>
<tr>
<td class="obj">
<p class="chill-no-data-statement">{{ 'accompanying_course_work.results without objective'|trans }}</p>
</td>
<td class="res">
<ul class="result_list">
{% for r in w.results %}
<li>{{ r.title|localize_translatable_string }}</li>
{% endfor %}
</ul>
</td>
</tr>
</tbody>
</table>
{% endif %}
{% if w.goals|length > 0 %}
<table class="obj-res-eval">
<thead>
@@ -57,6 +33,31 @@
</table>
{% endif %}
{% if w.results|length > 0 %}
<table class="obj-res-eval">
<thead>
<th class="obj"><h4 class="title_label">{{ 'accompanying_course_work.goal'|trans }}</h4></th>
<th class="res"><h4 class="title_label">{{ 'accompanying_course_work.results'|trans }}</h4></th>
</thead>
<tbody>
<tr>
<td class="obj">
<p class="chill-no-data-statement">{{ 'accompanying_course_work.results without objective'|trans }}</p>
</td>
<td class="res">
<ul class="result_list">
{% for r in w.results %}
<li>{{ r.title|localize_translatable_string }}</li>
{% endfor %}
</ul>
</td>
</tr>
</tbody>
</table>
{% endif %}
{% if w.accompanyingPeriodWorkEvaluations|length > 0 %}
<table class="obj-res-eval">
<thead>

View File

@@ -81,25 +81,25 @@
</div>
{%- if options['addInfo'] -%}
<p class="moreinfo">
{% if person.gender is not null %}{{ person.gender.icon|chill_entity_render_box }}{% endif %}
{% if person.gender is not null %}{{ person.gender.icon|chill_entity_render_box }} {% endif %}
{%- if person.deathdate is not null -%}
{%- if person.birthdate is not null -%}
{# must be on one line to avoid spaces with dash #}
<time datetime="{{ person.birthdate|date('Y-m-d') }}" title="{{ 'birthdate'|trans|e('html_attr') }}">{{ person.birthdate|format_date("medium") }}</time>&#x2013;
{%- else -%}
{{ 'Date of death'|trans }}:
<span>{{ 'Date of death'|trans }}: </span>
{%- endif -%}
{#- must be on one line to avoid spaces with dash -#}
<time datetime="{{ person.deathdate|date('Y-m-d') }}" title="{{ 'deathdate'|trans }}">{{ person.deathdate|format_date("medium") }}</time>
{%- if options['addAge'] -%}
<span class="age">&nbsp;{{ 'years_old'|trans({ 'age': person.age }) }}</span>
{%- endif -%}
{%- if options['addId'] -%}
{%- set personId = person|chill_person_id_render_text %}
<span class="id-number" title="{{ 'Person'|trans ~ ' ' ~ personId }}">
({{ personId }})
</span>
{%- endif -%}
{# {%- if options['addId'] -%}#}
{# {%- set personId = person|chill_person_id_render_text %}#}
{# <span class="id-number" title="{{ 'Person'|trans ~ ' ' ~ personId }}">#}
{# ({{ personId }})#}
{# </span>#}
{# {%- endif -%}#}
{%- elseif person.birthdate is not null -%}
<time datetime="{{ person.birthdate|date('Y-m-d') }}" title="{{ 'Birthdate'|trans }}">
{{ 'Born the date'|trans({'gender': person.gender ? person.gender.genderTranslation.value : 'neutral',

View File

@@ -168,9 +168,8 @@ final readonly class PersonContext implements PersonContextInterface
if ($this->isScopeNecessary($entity)) {
$builder->add('scope', ScopePickerType::class, [
'center' => $this->centerResolverManager->resolveCenters($entity),
'role' => PersonDocumentVoter::CREATE,
'label' => 'Scope',
'subject' => $entity,
]);
}
}

View File

@@ -0,0 +1,211 @@
Born the date: >-
{gender, select,
man {Geboren op {birthdate}}
woman {Geboren op {birthdate}}
neutral {Geboren op {birthdate}}
other {Geboren op {birthdate}}
}
Requestor: >-
{gender, select,
man {Aanvrager}
woman {Aanvraagster}
neutral {Aanvrager}
}
accompanying_period:
Participants_without_count: >-
{count, plural,
=0 {Deelnemer}
=1 {Deelnemer}
other {Deelnemers}
}
number: >-
nr. {id}
person:
from_the: sinds
And himself: >-
{gender, select,
man {en hijzelf}
woman {en zijzelf}
neutral {en zijzelf}
other {en zijzelf}
}
household:
Household: Huishouden
Household number: Huishouden {household_num}
Household members: Leden van het huishouden
Household editor: Lidmaatschap invullen
Members at same time: Gelijktijdige leden
Any simultaneous members: Geen gelijktijdige leden
Select people to move: Gebruikers kiezen
Show future or past memberships: >-
{length, plural,
one {Oud lidmaatschap tonen}
many {# oude of toekomstige lidmaatschappen tonen}
other {# oude of toekomstige lidmaatschappen tonen}
}
Show accompanying periods of past or future memberships: >-
{length, plural,
one {De trajecten van een oud lidmaatschap tonen}
many {# trajecten van oude of toekomstige lidmaatschappen tonen}
other {# trajecten van oude of toekomstige lidmaatschappen tonen}
}
Hide memberships: Verbergen
Those members does not share address: Deze gebruikers delen het adres van het huishouden niet.
Any persons into this position: Geen persoon behoort tot het huishouden in deze positie.
Leave household: Huishouden verlaten
Leave: Loskoppelen
person:
leave: De gebruiker verlaat het huishouden
Join: Huishouden aansluiten
Change position: Herpositioneren
Household file: Huishoudendossier
Add a member: Lid toevoegen
Update membership: Bewerken
successfully saved member: Lid succesvol opgeslagen
Start date: Startdatum van het lidmaatschap van het huishouden
End date: Einddatum van het lidmaatschap van het huishouden
Comment: Opmerking
is holder: Is houder
is not holder: Is geen houder
holder: Houder
Edit member household: Lidmaatschap van het huishouden invullen
Edit his household: Zijn lidmaatschap van het huishouden bewerken
Current household members: Huidige leden
Household summary: Overzicht van het huishouden
Accompanying period: Begeleidingstraject
Addresses: Adresgeschiedenis
Relationship: Verwantschap
Budget: Budget
Household relationships: Verwantschappen in het huishouden
Current address: Huidig adres
Household does not have any address currently: Het huishouden heeft momenteel geen adres ingevuld
Edit household members: Lidmaatschap van het huishouden invullen
and x other persons: >-
{x, plural,
one {en één andere persoon}
many {en # andere personen}
other {en # andere personen}
}
Expecting for birth on date: Geboorte verwacht op {date}
Expecting for birth: Geboorte verwacht (datum onbekend)
Any expecting birth: Geen aanstaande geboorte ingevuld.
New comment and expecting birth: Opmerking schrijven
Edit comment and expecting birth: Opmerking bijwerken
Edit member metadata: Aanvullende gegevens
comment_membership: Algemene opmerking over leden
expecting_birth: Geboorte verwacht?
date_expecting_birth: Datum van de verwachte geboorte
data_saved: Gegevens opgeslagen
Household history: Geschiedenis van de huishoudens
Household history for person: Geschiedenis van de huishoudens van de persoon
Household history for %name%: Geschiedenis van de huishoudens voor {name}
Household shared: Woonhuishouden
Household not shared: Huishoudens buiten woonplaats
Members without position: Leden zonder positie
Never in any household: Lid van geen enkel huishouden
Membership currently running: Lopend
from: Sinds
to: Tot
person history: Huishoudens
As member: Als
household_composition:
Since: >-
Sinds {startDate, date, long}
Still active: Nog steeds actief
Until: >-
Tot {endDate, date, long}
numberOfChildren children in household: >-
{numberOfChildren, plural,
=0 {Geen kind in het huishouden}
one {1 kind in het huishouden}
few {# kinderen in het huishouden}
other {# kinderen in het huishouden}
}
numberOfDependents adult dependents: >-
{numberOfDependents, plural,
=0 {Geen meerderjarige ten laste}
one {1 meerderjarige ten laste}
few {# meerderjarigen ten laste}
other {# meerderjarigen ten laste}
}
numberOfDependentsWithDisabilities dependents with disabilities: >-
{numberOfDependentsWithDisabilities, plural,
=0 {Geen ten laste erkend als persoon met beperking}
one {1 ten laste erkend als persoon met beperking}
few {# ten laste erkend als persoon met beperking}
other {# ten laste erkend als persoon met beperking}
}
periods:
title: Begeleidingstraject (nr. {id})
show closed periods: >-
{nb_items, plural,
=0 {Geen afgesloten traject}
one {Eén afgesloten traject of oud traject tonen}
many {# afgesloten trajecten of oude trajecten tonen}
other {# afgesloten trajecten of oude trajecten tonen}
}
hide closed periods: >-
{nb_items, plural,
=0 {Geen afgesloten traject}
one {Eén afgesloten traject of oud traject verbergen}
many {# afgesloten trajecten of oude trajecten verbergen}
other {# afgesloten trajecten of oude trajecten verbergen}
}
exports:
by_person:
Filtered by person\'s geographical unit (based on address) computed at date, only units:
"Gefilterd op geografische zone op basis van het adres, berekend op {datecalc, date, short}, alleen de volgende zones: {units}"
filter:
person:
without_participation_between_dates:
"Filtered by having no participations during period: between": "Alleen de gebruikers die door geen enkel traject zijn geraakt tussen {dateafter, date, short} en {datebefore, date, short}"
course:
not_having_address_reference:
describe: >-
Alleen de trajecten die niet gelokaliseerd zijn op een referentieadres, op de datum van {date_calc, date, medium}
by_referrer_between_dates:
description: >-
Gefilterd op referent van het traject, tussen twee data: vanaf {start_date, date, medium}, tot {end_date, date, medium}, alleen {agents}
by_user_job:
"Filtered by user job: only job": "Gefilterd op beroep van de referent tussen {startDate, date, short} en {endDate, date, short}: alleen {job}"
by_user_scope:
"Filtered by user main scope: only scopes": "Gefilterd op dienst van de referent tussen {startDate, date, short} en {endDate, date, short}: alleen {scopes}"
work:
by_treating_agent:
Filtered by treating agent at date: >-
De behandelende agenten op { agent_at, date, medium }, alleen {agents}
step_history:
by_date:
description: >-
Statuswijzigingen gefilterd op datum: na { start_date, date, medium } (inclusief), voor { end_date, date, medium }
'total persons matching the search pattern': >-
{ total, plural,
=0 {Geen gebruiker komt overeen met de zoektermen}
one {Eén gebruiker komt overeen met de zoektermen}
many {# gebruikers komen overeen met de zoektermen}
other {# gebruikers komen overeen met de zoektermen}
}
'nb person with similar name. Please verify that this is a new person': >-
{ nb, plural,
=0 {Geen gebruiker heeft een vergelijkbare naam}
one {Eén gebruiker heeft een vergelijkbare naam. Controleer dat het niet om hem/haar gaat.}
other {# gebruikers hebben een vergelijkbare naam. Controleer dat het niet om één van hen gaat}
}
accompanying_course_evaluation_document:
title: Evaluatie (nr. {id}) - {doc_title}
duplicated_at: >-
Gedupliceerd op {at, date, long} om {at, time, short}
accompanying_period_work:
title: Begeleidingsactie (nr. {id}) - {action_title}

File diff suppressed because it is too large Load Diff

View File

@@ -9,4 +9,69 @@
'Opening date is not valid': 'Startdatum is ongeldig'
'Opening date can not be null': 'Startdatum kan niet nul zijn'
'Closing date is not valid': 'De datum van afsluiten is niet correct'
'Closing date can not be null': 'De datum van afsluiten kan niet nul zijn'
'Closing date can not be null': 'De datum van afsluiten kan niet nul zijn'
The date of closing is before the date of opening: De sluitingsdatum ligt voor de openingsdatum
The closing date must be later than the date of creation: De sluitingsdatum moet later zijn dan de aanmaakdatum van het traject
The birthdate must be before %date%: De geboortedatum moet voor %date% zijn
'Invalid phone number: it should begin with the international prefix starting with "+", hold only digits and be smaller than 20 characters. Ex: +33123456789': 'Ongeldig telefoonnummer: het moet beginnen met het internationale voorvoegsel voorafgegaan door "+", alleen cijfers bevatten en minder dan 20 tekens zijn. Bijv.: +31623456789'
'Invalid phone number: it should begin with the international prefix starting with "+", hold only digits and be smaller than 20 characters. Ex: +33623456789': 'Ongeldig telefoonnummer: het moet beginnen met het internationale voorvoegsel voorafgegaan door "+", alleen cijfers bevatten en minder dan 20 tekens zijn. Bijv.: +33623456789'
'The email is not valid': 'Het e-mailadres is niet geldig'
Two addresses has the same validFrom date: De geldigheidsdatum is identiek aan die van een ander adres
The firstname cannot be empty: De voornaam kan niet leeg zijn
The lastname cannot be empty: De achternaam kan niet leeg zijn
The gender must be set: Het geslacht moet worden ingevuld
You are not allowed to perform this action: U heeft niet het recht om deze waarde te wijzigen.
Sorry, but someone else has already changed this entity. Please refresh the page and apply the changes again: Sorry, maar iemand anders heeft deze entiteit al gewijzigd. Vernieuw de pagina en pas de wijzigingen opnieuw toe
A center is required: Een territorium is vereist
#export list
You must select at least one element: U moet ten minste één element selecteren
# filter by person birthdate
The "date to" should not be empty: Het veld "geboren vóór deze datum" kan niet leeg zijn
The "date from" should not be empty: Het veld "geboren na deze datum" kan niet leeg zijn
The date "date to" should be after the date given in "date from" field: De datum "geboren vóór deze datum" moet eerder zijn dan de datum "geboren na deze datum".
# filter by nationality
A nationality must be selected: Een nationaliteit moet worden gekozen
# aggregator by country, nationality
You should select an option: Een optie moet worden gekozen.
# aggregator by age
The date should not be empty: De datum mag niet leeg zijn
# household
household:
max_holder_overflowed_infinity: Er kunnen niet meer dan twee houders tegelijk zijn. Met deze wijziging zal dit aantal vanaf {{ start }} worden overschreden.
max_holder_overflowed: Er kunnen niet meer dan twee houders tegelijk zijn. Met deze wijziging zal dit aantal tussen {{ start }} en {{ end }} worden overschreden.
household_membership:
The end date must be after start date: De einddatum van het lidmaatschap moet later zijn dan de begindatum.
Person with membership covering: Een gebruiker kan niet tegelijkertijd tot twee huishoudens behoren. Met deze wijziging zou %person_name% vanaf %from% tot %nbHousehold% huishoudens behoren.
# Accompanying period
'{{ name }} is already associated to this accompanying course.': '{{ name }} is al gekoppeld aan dit traject.'
A course must contains at least one social issue: 'Een traject moet aan ten minste één sociale problematiek worden gekoppeld'
A course must be associated to at least one scope: 'Een traject moet aan ten minste één dienst worden gekoppeld'
The social %name% issue cannot be deleted because it is associated with an activity or an action: 'De sociale problematiek "%name%" kan niet worden verwijderd omdat deze is gekoppeld aan een uitwisseling of een actie'
A confidential parcours must have a referrer: 'Een vertrouwelijk traject moet een referent hebben'
Only the referrer can change the confidentiality of a parcours: 'Alleen de referent kan de vertrouwelijkheid wijzigen'
# resource
You must associate at least one entity: Koppel een gebruiker, een derde of geef een vrije beschrijving op
You cannot associate a resource with the same person: U kunt de gebruiker zelf niet als hulpbron toevoegen.
#location
The period must remain located: 'Een traject moet worden gelokaliseerd'
The person where the course is located must be associated to the course. Change course's location before removing the person.: "Het traject is gelokaliseerd bij deze gebruiker. Wijzig de lokalisatie van het traject voordat u de gebruiker verwijdert"
#relationship
relationship:
duplicate: Er bestaat al een verwantschapsrelatie tussen deze 2 gebruikers
person_creation:
If you want to create an household, an address is required: Voor het aanmaken van een huishouden is een adres vereist
accompanying_course_work:
The endDate should be greater or equal than the start date: De einddatum moet gelijk zijn aan of later dan de begindatum