mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-07 18:44:08 +00:00
Merge remote-tracking branch 'origin/master' into fix-phpstan-issues-202303
This commit is contained in:
commit
d9dd8d7317
@ -195,7 +195,7 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac
|
|||||||
* @ORM\ManyToOne(targetEntity="Chill\MainBundle\Entity\User")
|
* @ORM\ManyToOne(targetEntity="Chill\MainBundle\Entity\User")
|
||||||
* @Groups({"docgen:read"})
|
* @Groups({"docgen:read"})
|
||||||
*/
|
*/
|
||||||
private User $user;
|
private ?User $user;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\ManyToMany(targetEntity="Chill\MainBundle\Entity\User")
|
* @ORM\ManyToMany(targetEntity="Chill\MainBundle\Entity\User")
|
||||||
@ -494,7 +494,7 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac
|
|||||||
return $this->activityType;
|
return $this->activityType;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getUser(): User
|
public function getUser(): ?User
|
||||||
{
|
{
|
||||||
return $this->user;
|
return $this->user;
|
||||||
}
|
}
|
||||||
@ -681,14 +681,14 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac
|
|||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setUser(UserInterface $user): self
|
public function setUser(?User $user): self
|
||||||
{
|
{
|
||||||
$this->user = $user;
|
$this->user = $user;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setUsers(?Collection $users): self
|
public function setUsers(Collection $users): self
|
||||||
{
|
{
|
||||||
$this->users = $users;
|
$this->users = $users;
|
||||||
|
|
||||||
|
@ -225,6 +225,7 @@ class ActivityType extends AbstractType
|
|||||||
$builder->add('user', PickUserDynamicType::class, [
|
$builder->add('user', PickUserDynamicType::class, [
|
||||||
'label' => $activityType->getLabel('user'),
|
'label' => $activityType->getLabel('user'),
|
||||||
'required' => $activityType->isRequired('user'),
|
'required' => $activityType->isRequired('user'),
|
||||||
|
'multiple' => false,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ final class PersonMenuBuilder implements LocalMenuBuilderInterface
|
|||||||
|
|
||||||
if ($this->authorizationChecker->isGranted(ActivityVoter::SEE, $person)) {
|
if ($this->authorizationChecker->isGranted(ActivityVoter::SEE, $person)) {
|
||||||
$menu->addChild(
|
$menu->addChild(
|
||||||
$this->translator->trans('Activity list'),
|
$this->translator->trans('Activities'),
|
||||||
[
|
[
|
||||||
'route' => 'chill_activity_activity_list',
|
'route' => 'chill_activity_activity_list',
|
||||||
'routeParameters' => ['person_id' => $person->getId()],
|
'routeParameters' => ['person_id' => $person->getId()],
|
||||||
|
@ -63,7 +63,7 @@
|
|||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if activity.user and t.userVisible %}
|
{% if activity.user is not null and t.userVisible %}
|
||||||
<div class="wl-row">
|
<div class="wl-row">
|
||||||
<div class="wl-col title"><h3>{{ 'Referrer'|trans }}</h3></div>
|
<div class="wl-col title"><h3>{{ 'Referrer'|trans }}</h3></div>
|
||||||
<div class="wl-col list">
|
<div class="wl-col list">
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
Maybe should we think about abstracting this file a bit more ? Moving it to PersonBundle ?
|
Maybe should we think about abstracting this file a bit more ? Moving it to PersonBundle ?
|
||||||
#}
|
#}
|
||||||
{% if context == 'calendar_accompanyingCourse' %}
|
{% if context == 'calendar_accompanyingCourse' or context == 'calendar_person' %}
|
||||||
{% import "@ChillCalendar/_invite.html.twig" as invite %}
|
{% import "@ChillCalendar/_invite.html.twig" as invite %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
@ -34,10 +34,12 @@
|
|||||||
|
|
||||||
<div class="item-row separator">
|
<div class="item-row separator">
|
||||||
<dl class="chill_view_data">
|
<dl class="chill_view_data">
|
||||||
<dt class="inline">{{ 'Referrer'|trans|capitalize }}</dt>
|
{%- if entity.user is not null %}
|
||||||
<dd>
|
<dt class="inline">{{ 'Referrer'|trans|capitalize }}</dt>
|
||||||
<span class="badge-user">{{ entity.user|chill_entity_render_box }}</span>
|
<dd>
|
||||||
</dd>
|
<span class="badge-user">{{ entity.user|chill_entity_render_box }}</span>
|
||||||
|
</dd>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{%- if entity.scope -%}
|
{%- if entity.scope -%}
|
||||||
<dt class="inline">{{ 'Scope'|trans }}</dt>
|
<dt class="inline">{{ 'Scope'|trans }}</dt>
|
||||||
|
@ -121,14 +121,14 @@ final class ActivityControllerTest extends WebTestCase
|
|||||||
$client->getResponse()->getStatusCode(),
|
$client->getResponse()->getStatusCode(),
|
||||||
'Unexpected HTTP status code for GET /activity/'
|
'Unexpected HTTP status code for GET /activity/'
|
||||||
);
|
);
|
||||||
$crawler = $client->click($crawler->selectLink('Ajouter une nouvelle activité')
|
$crawler = $client->click($crawler->selectLink('Ajouter un nouvel échange')
|
||||||
->link());
|
->link());
|
||||||
|
|
||||||
$reason1 = $this->getRandomActivityReason();
|
$reason1 = $this->getRandomActivityReason();
|
||||||
$reason2 = $this->getRandomActivityReason([$reason1->getId()]);
|
$reason2 = $this->getRandomActivityReason([$reason1->getId()]);
|
||||||
|
|
||||||
// Fill in the form and submit it
|
// Fill in the form and submit it
|
||||||
$form = $crawler->selectButton('Ajouter une nouvelle activité')->form([
|
$form = $crawler->selectButton('Ajouter un nouvel échange')->form([
|
||||||
'chill_activitybundle_activity' => [
|
'chill_activitybundle_activity' => [
|
||||||
'date' => '15-01-2015',
|
'date' => '15-01-2015',
|
||||||
'durationTime' => 600,
|
'durationTime' => 600,
|
||||||
@ -152,9 +152,9 @@ final class ActivityControllerTest extends WebTestCase
|
|||||||
);
|
);
|
||||||
|
|
||||||
// Edit the entity
|
// Edit the entity
|
||||||
$crawler = $client->click($crawler->selectLink("Modifier l'activité")->link());
|
$crawler = $client->click($crawler->selectLink("Modifier l'échange")->link());
|
||||||
|
|
||||||
$form = $crawler->selectButton("Sauver l'activité")->form([
|
$form = $crawler->selectButton("Sauver l'échange")->form([
|
||||||
'chill_activitybundle_activity' => [
|
'chill_activitybundle_activity' => [
|
||||||
'date' => '25-01-2015',
|
'date' => '25-01-2015',
|
||||||
// 'remark' => 'Foo'
|
// 'remark' => 'Foo'
|
||||||
|
@ -1,41 +1,41 @@
|
|||||||
#general
|
#general
|
||||||
Show the activity: Voir l'activité
|
Show the activity: Voir l'échange
|
||||||
Edit the activity: Modifier l'activité
|
Edit the activity: Modifier l'échange
|
||||||
Activity: Activité
|
Activity: Échange
|
||||||
Duration time: Durée
|
Duration time: Durée
|
||||||
Duration Time: Durée
|
Duration Time: Durée
|
||||||
durationTime: durée
|
durationTime: durée
|
||||||
Travel time: Durée de déplacement
|
Travel time: Durée de déplacement
|
||||||
Attendee: Présence de la personne
|
Attendee: Présence de l'usager
|
||||||
attendee: présence de la personne
|
attendee: présence de l'usager
|
||||||
list_reasons: liste des sujets
|
list_reasons: liste des sujets
|
||||||
user_username: nom de l'utilisateur
|
user_username: nom de l'utilisateur
|
||||||
circle_name: nom du cercle
|
circle_name: nom du cercle
|
||||||
Remark: Commentaire
|
Remark: Commentaire
|
||||||
No comments: Aucun commentaire
|
No comments: Aucun commentaire
|
||||||
Add a new activity: Ajouter une nouvelle activité
|
Add a new activity: Ajouter une nouvel échange
|
||||||
Activity list: Liste des activités
|
Activity list: Liste des échanges
|
||||||
present: présent
|
present: présent
|
||||||
not present: absent
|
not present: absent
|
||||||
Delete: Supprimer
|
Delete: Supprimer
|
||||||
Update: Mettre à jour
|
Update: Mettre à jour
|
||||||
Update activity: Modifier l'activité
|
Update activity: Modifier l'échange
|
||||||
Scope: Cercle
|
Scope: Cercle
|
||||||
Activity data: Données de l'activité
|
Activity data: Données de l'échange
|
||||||
Activity location: Localisation de l'activité
|
Activity location: Localisation de l'échange
|
||||||
No reason associated: Aucun sujet
|
No reason associated: Aucun sujet
|
||||||
No social issues associated: Aucune problématique sociale
|
No social issues associated: Aucune problématique sociale
|
||||||
No social actions associated: Aucune action d'accompagnement
|
No social actions associated: Aucune action d'accompagnement
|
||||||
There isn't any activities.: Aucune activité enregistrée.
|
There isn't any activities.: Aucun échange enregistré.
|
||||||
type_name: type de l'activité
|
type_name: type de l'échange
|
||||||
person_firstname: prénom
|
person_firstname: prénom
|
||||||
person_lastname: nom de famille
|
person_lastname: nom de famille
|
||||||
person_id: identifiant de la personne
|
person_id: identifiant de l'usager
|
||||||
Type: Type
|
Type: Type
|
||||||
Invisible: Invisible
|
Invisible: Invisible
|
||||||
Optional: Optionnel
|
Optional: Optionnel
|
||||||
Required: Obligatoire
|
Required: Obligatoire
|
||||||
Persons: Personnes
|
Persons: Usagers
|
||||||
Users: Utilisateurs
|
Users: Utilisateurs
|
||||||
Emergency: Urgent
|
Emergency: Urgent
|
||||||
Sent received: Entrant / Sortant
|
Sent received: Entrant / Sortant
|
||||||
@ -50,10 +50,10 @@ received: Reçu
|
|||||||
|
|
||||||
|
|
||||||
#forms
|
#forms
|
||||||
Activity creation: Nouvelle activité
|
Activity creation: Nouvel échange
|
||||||
Create: Créer
|
Create: Créer
|
||||||
Back to the list: Retour à la liste
|
Back to the list: Retour à la liste
|
||||||
Save activity: Sauver l'activité
|
Save activity: Sauver l'échange
|
||||||
Reset form: Remise à zéro du formulaire
|
Reset form: Remise à zéro du formulaire
|
||||||
Choose the duration: Choisir la durée
|
Choose the duration: Choisir la durée
|
||||||
Choose a type: Choisir un type
|
Choose a type: Choisir un type
|
||||||
@ -90,40 +90,40 @@ activity:
|
|||||||
No documents: Aucun document
|
No documents: Aucun document
|
||||||
|
|
||||||
#timeline
|
#timeline
|
||||||
'%user% has done an %activity_type%': '%user% a effectué une activité de type "%activity_type%"'
|
'%user% has done an %activity_type%': '%user% a effectué un échange de type "%activity_type%"'
|
||||||
|
|
||||||
#controller
|
#controller
|
||||||
'Success : activity created!': L'activité a été créée.
|
'Success : activity created!': L'échange a été créé.
|
||||||
'The form is not valid. The activity has not been created !': Le formulaire est invalide. L'activité n'a pas été créée.
|
'The form is not valid. The activity has not been created !': Le formulaire est invalide. L'échange n'a pas été créé.
|
||||||
'Success : activity updated!': L'activité a été mise à jour.
|
'Success : activity updated!': L'échange a été mis à jour.
|
||||||
'The form is not valid. The activity has not been updated !': Le formulaire est invalide. L'activité n'a pas été mise à jour.
|
'The form is not valid. The activity has not been updated !': Le formulaire est invalide. L'échange n'a pas été mise à jour.
|
||||||
|
|
||||||
# ROLES
|
# ROLES
|
||||||
CHILL_ACTIVITY_CREATE: Créer une activité
|
CHILL_ACTIVITY_CREATE: Créer un échange
|
||||||
CHILL_ACTIVITY_UPDATE: Modifier une activité
|
CHILL_ACTIVITY_UPDATE: Modifier un échange
|
||||||
CHILL_ACTIVITY_SEE: Voir une activité
|
CHILL_ACTIVITY_SEE: Voir un échange
|
||||||
CHILL_ACTIVITY_SEE_DETAILS: Voir le détail des activités
|
CHILL_ACTIVITY_SEE_DETAILS: Voir le détail des échanges
|
||||||
CHILL_ACTIVITY_DELETE: Supprimer une activité
|
CHILL_ACTIVITY_DELETE: Supprimer un échange
|
||||||
CHILL_ACTIVITY_STATS: Statistique des activités
|
CHILL_ACTIVITY_STATS: Statistique des échanges
|
||||||
CHILL_ACTIVITY_LIST: Liste des activités
|
CHILL_ACTIVITY_LIST: Liste des échanges
|
||||||
|
|
||||||
# admin
|
# admin
|
||||||
Activities: Activités
|
Activities: Échanges
|
||||||
Activity configuration: Configuration des activités
|
Activity configuration: Configuration des échanges
|
||||||
Activity configuration menu: Configuration des activités
|
Activity configuration menu: Configuration des échanges
|
||||||
Activity types: Types d'activité
|
Activity types: Types d'échange
|
||||||
Activity type configuration: Configuration des categories d'activités
|
Activity type configuration: Configuration des catégories d'échanges
|
||||||
Activity Reasons: Sujets d'une activité
|
Activity Reasons: Sujets d'un échange
|
||||||
Activity Reasons Category: Catégories de sujet d'activités
|
Activity Reasons Category: Catégories de sujet d'échanges
|
||||||
Activity Types Categories: Catégories des types d'activité
|
Activity Types Categories: Catégories des types d'échange
|
||||||
Activity Presences: Presences aux activités
|
Activity Presences: Presences aux échanges
|
||||||
Associated activity reason category is inactive: La catégorie de sujet attachée est inactive
|
Associated activity reason category is inactive: La catégorie de sujet attachée est inactive
|
||||||
|
|
||||||
|
|
||||||
# Crud
|
# Crud
|
||||||
crud:
|
crud:
|
||||||
activity_type:
|
activity_type:
|
||||||
title_new: Nouveau type d'activité
|
title_new: Nouveau type d'échange
|
||||||
title_edit: Edition d'un type d'activité
|
title_edit: Edition d'un type d'activité
|
||||||
activity_type_category:
|
activity_type_category:
|
||||||
title_new: Nouvelle catégorie de type d'activité
|
title_new: Nouvelle catégorie de type d'activité
|
||||||
@ -159,8 +159,8 @@ Create a new activity presence: Créer une nouvelle "Présence aux activités"
|
|||||||
# activity type type admin
|
# activity type type admin
|
||||||
ActivityType list: Types d'activités
|
ActivityType list: Types d'activités
|
||||||
Create a new activity type: Créer un nouveau type d'activité
|
Create a new activity type: Créer un nouveau type d'activité
|
||||||
Persons visible: Visibilité du champ Personnes
|
Persons visible: Visibilité du champ Usagers
|
||||||
Persons label: Libellé du champ Personnes
|
Persons label: Libellé du champ Usagers
|
||||||
User visible: Visibilité du champ Utilisateur
|
User visible: Visibilité du champ Utilisateur
|
||||||
User label: Libellé du champ Utilisateur
|
User label: Libellé du champ Utilisateur
|
||||||
Date visible: Visibilité du champ Date
|
Date visible: Visibilité du champ Date
|
||||||
@ -183,8 +183,8 @@ Private comment visible: Visibilité du champ Commentaire Privé
|
|||||||
Private comment label: Libellé du champ Commentaire Privé
|
Private comment label: Libellé du champ Commentaire Privé
|
||||||
Emergency visible: Visibilité du champ Urgent
|
Emergency visible: Visibilité du champ Urgent
|
||||||
Emergency label: Libellé du champ Urgent
|
Emergency label: Libellé du champ Urgent
|
||||||
Accompanying period visible: Visibilité du champ Période d'accompagnement
|
Accompanying period visible: Visibilité du champ parcours d'accompagnement
|
||||||
Accompanying period label: Libellé du champ Période d'accompagnement
|
Accompanying period label: Libellé du champ parcours d'accompagnement
|
||||||
Social issues visible: Visibilité du champ Problématiques sociales
|
Social issues visible: Visibilité du champ Problématiques sociales
|
||||||
Social issues label: Libellé du champ Problématiques sociales
|
Social issues label: Libellé du champ Problématiques sociales
|
||||||
Social actions visible: Visibilité du champ Action sociale
|
Social actions visible: Visibilité du champ Action sociale
|
||||||
@ -206,10 +206,10 @@ Are you sure you want to remove the activity about "%name%" ?: Êtes-vous sûr d
|
|||||||
The activity has been successfully removed.: L'activité a été supprimée.
|
The activity has been successfully removed.: L'activité a été supprimée.
|
||||||
|
|
||||||
# exports
|
# exports
|
||||||
Exports of activities linked to a person: Exports des activités liées à une personne
|
Exports of activities linked to a person: Exports des activités liées à un usager
|
||||||
Number of activities linked to a person: Nombre d'activités liées à une personne
|
Number of activities linked to a person: Nombre d'activités liées à un usager
|
||||||
Count activities linked to a person: Nombre d'activités
|
Count activities linked to a person: Nombre d'activités
|
||||||
Count activities linked to a person by various parameters.: Compte le nombre d'activités enregistrées et liées à une personne en fonction de différents paramètres.
|
Count activities linked to a person by various parameters.: Compte le nombre d'activités enregistrées et liées à un usager en fonction de différents paramètres.
|
||||||
Sum activity linked to a person duration: Durée des activités
|
Sum activity linked to a person duration: Durée des activités
|
||||||
Sum activities linked to a person duration: Durée des activités liés à un usager
|
Sum activities linked to a person duration: Durée des activités liés à un usager
|
||||||
Sum activities linked to a person duration by various parameters.: Additionne la durée des activités en fonction de différents paramètres.
|
Sum activities linked to a person duration by various parameters.: Additionne la durée des activités en fonction de différents paramètres.
|
||||||
@ -244,10 +244,10 @@ Activities before this date: Activités avant cette date
|
|||||||
"Filtered by date of activity: only between %date_from% and %date_to%": "Filtré par date de l'activité: uniquement entre %date_from% et %date_to%"
|
"Filtered by date of activity: only between %date_from% and %date_to%": "Filtré par date de l'activité: uniquement entre %date_from% et %date_to%"
|
||||||
This date should be after the date given in "Implied in an activity after this date" field: Cette date devrait être postérieure à la date donnée dans le champ "activités après cette date"
|
This date should be after the date given in "Implied in an activity after this date" field: Cette date devrait être postérieure à la date donnée dans le champ "activités après cette date"
|
||||||
|
|
||||||
Filtered by person having an activity in a period: Uniquement les personnes ayant eu une activité dans la période donnée
|
Filtered by person having an activity in a period: Uniquement les usagers ayant eu une activité dans la période donnée
|
||||||
Implied in an activity after this date: Impliqué dans une activité après cette date
|
Implied in an activity after this date: Impliqué dans une activité après cette date
|
||||||
Implied in an activity before this date: Impliqué dans une activité avant cette date
|
Implied in an activity before this date: Impliqué dans une activité avant cette date
|
||||||
Filtered by person having an activity between %date_from% and %date_to% with reasons %reasons_name%: Filtré par personnes associées à une activité entre %date_from% et %date_to% avec les sujets %reasons_name%
|
Filtered by person having an activity between %date_from% and %date_to% with reasons %reasons_name%: Filtré par usager associées à une activité entre %date_from% et %date_to% avec les sujets %reasons_name%
|
||||||
Activity reasons for those activities: Sujets de ces activités
|
Activity reasons for those activities: Sujets de ces activités
|
||||||
|
|
||||||
Filter by activity type: Filtrer les activités par type
|
Filter by activity type: Filtrer les activités par type
|
||||||
@ -336,8 +336,8 @@ export:
|
|||||||
users name: Nom des utilisateurs
|
users name: Nom des utilisateurs
|
||||||
users ids: Identifiant des utilisateurs
|
users ids: Identifiant des utilisateurs
|
||||||
third parties ids: Identifiant des tiers
|
third parties ids: Identifiant des tiers
|
||||||
persons ids: Identifiant des personnes
|
persons ids: Identifiant des usagers
|
||||||
persons name: Nom des personnes
|
persons name: Nom des usagers
|
||||||
thirds parties: Tiers
|
thirds parties: Tiers
|
||||||
date: Date de l'activité
|
date: Date de l'activité
|
||||||
locationName: Localisation
|
locationName: Localisation
|
||||||
|
@ -47,10 +47,10 @@ Reasons: Onderwerpen
|
|||||||
|
|
||||||
|
|
||||||
#forms
|
#forms
|
||||||
Activity creation: Nouvelle activité
|
Activity creation: Nouvel échange
|
||||||
Create: Créer
|
Create: Créer
|
||||||
Back to the list: Retour à la liste
|
Back to the list: Retour à la liste
|
||||||
Save activity: Sauver l'activité
|
Save activity: Sauver l'échange
|
||||||
Reset form: Remise à zéro du formulaire
|
Reset form: Remise à zéro du formulaire
|
||||||
Choose the duration: Choisir la durée
|
Choose the duration: Choisir la durée
|
||||||
Choose a type: Choisir un type
|
Choose a type: Choisir un type
|
||||||
@ -79,43 +79,43 @@ activity:
|
|||||||
No documents: Aucun document
|
No documents: Aucun document
|
||||||
|
|
||||||
#timeline
|
#timeline
|
||||||
'%user% has done an %activity_type%': '%user% a effectué une activité de type "%activity_type%"'
|
'%user% has done an %activity_type%': '%user% a effectué un échange de type "%activity_type%"'
|
||||||
|
|
||||||
#controller
|
#controller
|
||||||
'Success : activity created!': L'activité a été créée.
|
'Success : activity created!': L'échange a été créé.
|
||||||
'The form is not valid. The activity has not been created !': Le formulaire est invalide. L'activité n'a pas été créée.
|
'The form is not valid. The activity has not been created !': Le formulaire est invalide. L'échange n'a pas été créé.
|
||||||
'Success : activity updated!': L'activité a été mise à jour.
|
'Success : activity updated!': L'échange a été mis à jour.
|
||||||
'The form is not valid. The activity has not been updated !': Le formulaire est invalide. L'activité n'a pas été mise à jour.
|
'The form is not valid. The activity has not been updated !': Le formulaire est invalide. L'échange n'a pas été mis à jour.
|
||||||
|
|
||||||
# ROLES
|
# ROLES
|
||||||
CHILL_ACTIVITY_CREATE: Créer une activité
|
CHILL_ACTIVITY_CREATE: Créer un échange
|
||||||
CHILL_ACTIVITY_UPDATE: Modifier une activité
|
CHILL_ACTIVITY_UPDATE: Modifier un échange
|
||||||
CHILL_ACTIVITY_SEE: Voir une activité
|
CHILL_ACTIVITY_SEE: Voir un échange
|
||||||
CHILL_ACTIVITY_SEE_DETAILS: Voir le détail des activités
|
CHILL_ACTIVITY_SEE_DETAILS: Voir le détail des échanges
|
||||||
CHILL_ACTIVITY_DELETE: Supprimer une activité
|
CHILL_ACTIVITY_DELETE: Supprimer un échange
|
||||||
CHILL_ACTIVITY_STATS: Statistique des activités
|
CHILL_ACTIVITY_STATS: Statistique des échanges
|
||||||
CHILL_ACTIVITY_LIST: Liste des activités
|
CHILL_ACTIVITY_LIST: Liste des échanges
|
||||||
|
|
||||||
# admin
|
# admin
|
||||||
Activities: Activités
|
Activities: Échanges
|
||||||
Activity configuration: Configuration des activités
|
Activity configuration: Configuration des échanges
|
||||||
Activity configuration menu: Configuration des activités
|
Activity configuration menu: Configuration des échanges
|
||||||
Activity types: Types d'activité
|
Activity types: Types d'échange
|
||||||
Activity type configuration: Configuration des categories d'activités
|
Activity type configuration: Configuration des categories d'échanges
|
||||||
Activity Reasons: Sujets d'une activité
|
Activity Reasons: Sujets d'un échange
|
||||||
Activity Reasons Category: Catégories de sujet d'activités
|
Activity Reasons Category: Catégories de sujet d'échanges
|
||||||
Activity Types Categories: Catégories des types d'activité
|
Activity Types Categories: Catégories des types d'échanges
|
||||||
Activity Presences: Presences des activités
|
Activity Presences: Presences des échanges
|
||||||
|
|
||||||
|
|
||||||
# Crud
|
# Crud
|
||||||
crud:
|
crud:
|
||||||
activity_type:
|
activity_type:
|
||||||
title_new: Nouveau type d'activité
|
title_new: Nouveau type d'échange
|
||||||
title_edit: Edition d'un type d'activité
|
title_edit: Edition d'un type d'échange
|
||||||
activity_type_category:
|
activity_type_category:
|
||||||
title_new: Nouvelle catégorie de type d'activité
|
title_new: Nouvelle catégorie de type d'échange
|
||||||
title_edit: Edition d'une catégorie de type d'activité
|
title_edit: Edition d'une catégorie de type d'échange
|
||||||
|
|
||||||
# activity reason admin
|
# activity reason admin
|
||||||
ActivityReason list: Liste des sujets
|
ActivityReason list: Liste des sujets
|
||||||
@ -124,7 +124,7 @@ Active: Actif
|
|||||||
Category: Catégorie
|
Category: Catégorie
|
||||||
ActivityReason creation: Nouveau sujet
|
ActivityReason creation: Nouveau sujet
|
||||||
ActivityReason edit: Modification d'un sujet
|
ActivityReason edit: Modification d'un sujet
|
||||||
ActivityReason: Sujet d'activité
|
ActivityReason: Sujet d'échange
|
||||||
The entity is inactive and won't be proposed: Le sujet est inactif et ne sera pas proposé
|
The entity is inactive and won't be proposed: Le sujet est inactif et ne sera pas proposé
|
||||||
The entity is active and will be proposed: Le sujet est actif et sera proposé
|
The entity is active and will be proposed: Le sujet est actif et sera proposé
|
||||||
|
|
||||||
@ -133,13 +133,13 @@ ActivityReasonCategory list: Catégories de sujets
|
|||||||
Create a new activity category reason: Créer une nouvelle catégorie
|
Create a new activity category reason: Créer une nouvelle catégorie
|
||||||
ActivityReasonCategory creation: Nouvelle catégorie de sujet
|
ActivityReasonCategory creation: Nouvelle catégorie de sujet
|
||||||
ActivityReasonCategory edit: Modification d'une catégorie de sujet
|
ActivityReasonCategory edit: Modification d'une catégorie de sujet
|
||||||
ActivityReasonCategory: Catégorie de sujet d'activité
|
ActivityReasonCategory: Catégorie de sujet d'échange
|
||||||
ActivityReasonCategory is active and will be proposed: La catégorie est active et sera proposée
|
ActivityReasonCategory is active and will be proposed: La catégorie est active et sera proposée
|
||||||
ActivityReasonCategory is inactive and won't be proposed: La catégorie est inactive et ne sera pas proposée
|
ActivityReasonCategory is inactive and won't be proposed: La catégorie est inactive et ne sera pas proposée
|
||||||
|
|
||||||
# activity type type admin
|
# activity type type admin
|
||||||
ActivityType list: Types d'activités
|
ActivityType list: Types d'échanges
|
||||||
Create a new activity type: Créer un nouveau type d'activité
|
Create a new activity type: Créer un nouveau type d'échange
|
||||||
Persons visible: Visibilité du champ Personnes
|
Persons visible: Visibilité du champ Personnes
|
||||||
Persons label: Libellé du champ Personnes
|
Persons label: Libellé du champ Personnes
|
||||||
User visible: Visibilité du champ Utilisateur
|
User visible: Visibilité du champ Utilisateur
|
||||||
@ -177,20 +177,20 @@ Documents label: Libellé du champ Documents
|
|||||||
|
|
||||||
# activity type category admin
|
# activity type category admin
|
||||||
ActivityTypeCategory list: Liste des catégories des types d'activité
|
ActivityTypeCategory list: Liste des catégories des types d'activité
|
||||||
Create a new activity type category: Créer une nouvelle catégorie de type d'activité
|
Create a new activity type category: Créer une nouvelle catégorie de type d'échange
|
||||||
|
|
||||||
# activity delete
|
# activity delete
|
||||||
Remove activity: Supprimer une activité
|
Remove activity: Supprimer un échange
|
||||||
Are you sure you want to remove the activity about "%name%" ?: Êtes-vous sûr de vouloir supprimer une activité qui concerne "%name%" ?
|
Are you sure you want to remove the activity about "%name%" ?: Êtes-vous sûr de vouloir supprimer un échange qui concerne "%name%" ?
|
||||||
The activity has been successfully removed.: L'activité a été supprimée.
|
The activity has been successfully removed.: L'échange a été supprimée.
|
||||||
|
|
||||||
# exports
|
# exports
|
||||||
Count activities: Nombre d'activités
|
Count activities: Nombre d'échanges
|
||||||
Count activities by various parameters.: Compte le nombre d'activités enregistrées en fonction de différents paramètres.
|
Count activities by various parameters.: Compte le nombre d'échanges enregistrées en fonction de différents paramètres.
|
||||||
Sum activity duration: Total de la durée des activités
|
Sum activity duration: Total de la durée des échanges
|
||||||
Sum activities duration by various parameters.: Additionne la durée des activités en fonction de différents paramètres.
|
Sum activities duration by various parameters.: Additionne la durée des échanges en fonction de différents paramètres.
|
||||||
List activities: Liste les activités
|
List activities: Liste les échanges
|
||||||
Number of activities: Nombre d'activités
|
Number of activities: Nombre d'échanges
|
||||||
|
|
||||||
#filters
|
#filters
|
||||||
Filter by reason: Filtrer par sujet d'activité
|
Filter by reason: Filtrer par sujet d'activité
|
||||||
|
@ -1,22 +1,22 @@
|
|||||||
The reasons's level should not be empty: Le niveau du sujet ne peut pas être vide
|
The reasons's level should not be empty: Le niveau du sujet ne peut pas être vide
|
||||||
At least one reason must be choosen: Au moins un sujet doit être choisi
|
At least one reason must be choosen: Au moins un sujet doit être choisi
|
||||||
For this type of activity, you must add at least one person: Pour ce type d'activité, vous devez ajouter au moins un usager
|
For this type of activity, you must add at least one person: Pour ce type d'échange, vous devez ajouter au moins un usager
|
||||||
For this type of activity, you must add at least one user: Pour ce type d'activité, vous devez ajouter au moins un utilisateur
|
For this type of activity, you must add at least one user: Pour ce type d'échange, vous devez ajouter au moins un utilisateur
|
||||||
For this type of activity, you must add at least one third party: Pour ce type d'activité, vous devez ajouter au moins un tiers
|
For this type of activity, you must add at least one third party: Pour ce type d'échange, vous devez ajouter au moins un tiers
|
||||||
For this type of activity, user is required: Pour ce type d'activité, l'utilisateur est requis
|
For this type of activity, user is required: Pour ce type d'échange, l'utilisateur est requis
|
||||||
For this type of activity, date is required: Pour ce type d'activité, la date est requise
|
For this type of activity, date is required: Pour ce type d'échange, la date est requise
|
||||||
For this type of activity, location is required: Pour ce type d'activité, la localisation est requise
|
For this type of activity, location is required: Pour ce type d'échange, la localisation est requise
|
||||||
For this type of activity, attendee is required: Pour ce type d'activité, le champ "Présence de la personne" est requis
|
For this type of activity, attendee is required: Pour ce type d'échange, le champ "Présence de l'usager" est requis
|
||||||
For this type of activity, duration time is required: Pour ce type d'activité, la durée est requise
|
For this type of activity, duration time is required: Pour ce type d'échange, la durée est requise
|
||||||
For this type of activity, travel time is required: Pour ce type d'activité, la durée du trajet est requise
|
For this type of activity, travel time is required: Pour ce type d'échange, la durée du trajet est requise
|
||||||
For this type of activity, reasons is required: Pour ce type d'activité, le champ "sujet" est requis
|
For this type of activity, reasons is required: Pour ce type d'échange, le champ "sujet" est requis
|
||||||
For this type of activity, comment is required: Pour ce type d'activité, un commentaire est requis
|
For this type of activity, comment is required: Pour ce type d'échange, un commentaire est requis
|
||||||
For this type of activity, sent/received is required: Pour ce type d'activité, le champ Entrant/Sortant est requis
|
For this type of activity, sent/received is required: Pour ce type d'échange, le champ Entrant/Sortant est requis
|
||||||
For this type of activity, document is required: Pour ce type d'activité, un document est requis
|
For this type of activity, document is required: Pour ce type d'échange, un document est requis
|
||||||
For this type of activity, emergency is required: Pour ce type d'activité, le champ "Urgent" est requis
|
For this type of activity, emergency is required: Pour ce type d'échange, le champ "Urgent" est requis
|
||||||
For this type of activity, accompanying period is required: Pour ce type d'activité, le parcours d'accompagnement est requis
|
For this type of activity, accompanying period is required: Pour ce type d'échange, le parcours d'accompagnement est requis
|
||||||
For this type of activity, you must add at least one social issue: Pour ce type d'activité, vous devez ajouter au moins une problématique sociale
|
For this type of activity, you must add at least one social issue: Pour ce type d'échange, vous devez ajouter au moins une problématique sociale
|
||||||
For this type of activity, you must add at least one social action: Pour ce type d'activité, vous devez indiquer au moins une action sociale
|
For this type of activity, you must add at least one social action: Pour ce type d'échange, vous devez indiquer au moins une action sociale
|
||||||
|
|
||||||
# admin
|
# admin
|
||||||
This parameter must be equal to social issue parameter: Ce paramètre doit être égal au paramètre "Visibilité du champs Problématiques sociales"
|
This parameter must be equal to social issue parameter: Ce paramètre doit être égal au paramètre "Visibilité du champs Problématiques sociales"
|
||||||
|
@ -44,17 +44,6 @@ class SectionMenuBuilder implements LocalMenuBuilderInterface
|
|||||||
'order' => 11,
|
'order' => 11,
|
||||||
'icons' => ['plus'],
|
'icons' => ['plus'],
|
||||||
]);
|
]);
|
||||||
$menu->addChild($this->translator->trans('Phonecall'), [
|
|
||||||
'route' => 'chill_crud_aside_activity_new',
|
|
||||||
'routeParameters' => [
|
|
||||||
'type' => 1,
|
|
||||||
'duration' => 900,
|
|
||||||
],
|
|
||||||
])
|
|
||||||
->setExtras([
|
|
||||||
'order' => 12,
|
|
||||||
'icons' => ['plus'],
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ Type: Type
|
|||||||
Invisible: Invisible
|
Invisible: Invisible
|
||||||
Optional: Optionnel
|
Optional: Optionnel
|
||||||
Required: Obligatoire
|
Required: Obligatoire
|
||||||
Persons: Personnes
|
Persons: Usagers
|
||||||
Users: Utilisateurs
|
Users: Utilisateurs
|
||||||
Emergency: Urgent
|
Emergency: Urgent
|
||||||
by: "Par "
|
by: "Par "
|
||||||
@ -50,7 +50,7 @@ For agent: Pour l'utilisateur
|
|||||||
date: Date
|
date: Date
|
||||||
Duration: Durée
|
Duration: Durée
|
||||||
Note: Note
|
Note: Note
|
||||||
Choose the agent for whom this activity is created: Choisissez l'agent pour qui l'activité est créée
|
Choose the agent for whom this activity is created: Choisissez l'agent pour qui l'échange est créé
|
||||||
Choose the activity category: Choisir la catégorie
|
Choose the activity category: Choisir la catégorie
|
||||||
|
|
||||||
#Duration
|
#Duration
|
||||||
|
@ -29,7 +29,7 @@ End of validity period: Fin de la période de validité
|
|||||||
Total: Total
|
Total: Total
|
||||||
Create new resource: Créer une nouvelle ressource
|
Create new resource: Créer une nouvelle ressource
|
||||||
Create new charge: Créer une nouvelle charge
|
Create new charge: Créer une nouvelle charge
|
||||||
See person: Voir personne
|
See person: Voir usagers
|
||||||
|
|
||||||
There isn't any element recorded: Aucun élément enregistré
|
There isn't any element recorded: Aucun élément enregistré
|
||||||
No resources registered: Aucune ressource enregistrée
|
No resources registered: Aucune ressource enregistrée
|
||||||
|
@ -207,6 +207,7 @@ class CalendarController extends AbstractController
|
|||||||
'entityClassName' => Calendar::class,
|
'entityClassName' => Calendar::class,
|
||||||
'entityId' => $entity->getId(),
|
'entityId' => $entity->getId(),
|
||||||
'template' => $template->getId(),
|
'template' => $template->getId(),
|
||||||
|
'returnPath' => $request->getRequestUri(),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -377,7 +378,9 @@ class CalendarController extends AbstractController
|
|||||||
$this->addFlash('success', $this->translator->trans('Success : calendar item created!'));
|
$this->addFlash('success', $this->translator->trans('Success : calendar item created!'));
|
||||||
|
|
||||||
if ($form->get('save_and_upload_doc')->isClicked()) {
|
if ($form->get('save_and_upload_doc')->isClicked()) {
|
||||||
return $this->redirectToRoute('chill_calendar_calendardoc_new', ['id' => $entity->getId()]);
|
return $this->redirectToRoute('chill_calendar_calendardoc_new', [
|
||||||
|
'id' => $entity->getId()
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($templates as $template) {
|
foreach ($templates as $template) {
|
||||||
@ -386,6 +389,7 @@ class CalendarController extends AbstractController
|
|||||||
'entityClassName' => Calendar::class,
|
'entityClassName' => Calendar::class,
|
||||||
'entityId' => $entity->getId(),
|
'entityId' => $entity->getId(),
|
||||||
'template' => $template->getId(),
|
'template' => $template->getId(),
|
||||||
|
'returnPath' => $this->generateUrl('chill_calendar_calendar_edit', ['id' => $entity->getId()]),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -526,14 +530,20 @@ class CalendarController extends AbstractController
|
|||||||
'comment' => $calendar->getComment()->getComment(),
|
'comment' => $calendar->getComment()->getComment(),
|
||||||
];
|
];
|
||||||
|
|
||||||
return $this->redirectToRoute(
|
$routeParams = [
|
||||||
'chill_activity_activity_new',
|
'activityData' => $activityData,
|
||||||
[
|
'returnPath' => $request->query->get('returnPath', null),
|
||||||
'accompanying_period_id' => $calendar->getAccompanyingPeriod()->getId(),
|
];
|
||||||
'activityData' => $activityData,
|
|
||||||
'returnPath' => $request->query->get('returnPath', null),
|
if ($calendar->getContext() === 'accompanying_period') {
|
||||||
]
|
$routeParams['accompanying_period_id'] = $calendar->getAccompanyingPeriod()->getId();
|
||||||
);
|
} elseif ($calendar->getContext() === 'person') {
|
||||||
|
$routeParams['person_id'] = $calendar->getPerson()->getId();
|
||||||
|
} else {
|
||||||
|
throw new RuntimeException('context not found for this calendar');
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->redirectToRoute('chill_activity_activity_new', $routeParams);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function buildListFilterOrder(): FilterOrderHelper
|
private function buildListFilterOrder(): FilterOrderHelper
|
||||||
|
@ -93,6 +93,7 @@ class Calendar implements TrackCreationInterface, TrackUpdateInterface, HasCente
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\ManyToOne(targetEntity="Chill\PersonBundle\Entity\AccompanyingPeriod", inversedBy="calendars")
|
* @ORM\ManyToOne(targetEntity="Chill\PersonBundle\Entity\AccompanyingPeriod", inversedBy="calendars")
|
||||||
|
* @Serializer\Groups({"calendar:read", "read"})
|
||||||
*/
|
*/
|
||||||
private ?AccompanyingPeriod $accompanyingPeriod = null;
|
private ?AccompanyingPeriod $accompanyingPeriod = null;
|
||||||
|
|
||||||
|
@ -26,9 +26,6 @@ class CalendarDocEditType extends AbstractType
|
|||||||
->add('title', TextType::class, [
|
->add('title', TextType::class, [
|
||||||
'label' => 'chill_calendar.Document title',
|
'label' => 'chill_calendar.Document title',
|
||||||
'required' => true,
|
'required' => true,
|
||||||
])
|
|
||||||
->add('doc', StoredObjectType::class, [
|
|
||||||
'label' => 'chill_calendar.Document object',
|
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
:picked="null !== this.$store.getters.getMainUser ? [this.$store.getters.getMainUser] : []"
|
:picked="null !== this.$store.getters.getMainUser ? [this.$store.getters.getMainUser] : []"
|
||||||
:removableIfSet="false"
|
:removableIfSet="false"
|
||||||
:displayPicked="false"
|
:displayPicked="false"
|
||||||
|
:suggested="this.suggestedUsers"
|
||||||
@addNewEntity="setMainUser"
|
@addNewEntity="setMainUser"
|
||||||
></pick-entity>
|
></pick-entity>
|
||||||
</div>
|
</div>
|
||||||
@ -143,6 +144,7 @@ export default {
|
|||||||
slotMinTime: '09:00:00',
|
slotMinTime: '09:00:00',
|
||||||
slotMaxTime: '18:00:00',
|
slotMaxTime: '18:00:00',
|
||||||
hideWeekEnds: true,
|
hideWeekEnds: true,
|
||||||
|
previousUser: [],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -188,11 +190,23 @@ export default {
|
|||||||
users.push(this.$store.getters.getUserDataById(id).user);
|
users.push(this.$store.getters.getUserDataById(id).user);
|
||||||
}
|
}
|
||||||
return users;
|
return users;
|
||||||
}
|
},
|
||||||
|
suggestedUsers() {
|
||||||
|
const suggested = [];
|
||||||
|
|
||||||
|
this.$data.previousUser.forEach(u => {
|
||||||
|
if (u.id !== this.$store.getters.getMainUser.id) {
|
||||||
|
suggested.push(u)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return suggested;
|
||||||
|
},
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
setMainUser(user) {
|
setMainUser({entity}) {
|
||||||
console.log('setMainUser APP', user);
|
const user = entity;
|
||||||
|
console.log('setMainUser APP', entity);
|
||||||
|
|
||||||
if (user.id !== this.$store.getters.getMainUser && (
|
if (user.id !== this.$store.getters.getMainUser && (
|
||||||
this.$store.state.activity.calendarRange !== null
|
this.$store.state.activity.calendarRange !== null
|
||||||
@ -205,6 +219,14 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// add the previous user, if any, in the previous user list (in use for suggestion)
|
||||||
|
if (null !== this.$store.getters.getMainUser) {
|
||||||
|
const suggestedUids = new Set(this.$data.previousUser.map(u => u.id));
|
||||||
|
if (!suggestedUids.has(this.$store.getters.getMainUser.id)){
|
||||||
|
this.$data.previousUser.push(this.$store.getters.getMainUser);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
this.$store.dispatch('setMainUser', user);
|
this.$store.dispatch('setMainUser', user);
|
||||||
this.$store.commit('showUserOnCalendar', {user, ranges: true, remotes: true});
|
this.$store.commit('showUserOnCalendar', {user, ranges: true, remotes: true});
|
||||||
},
|
},
|
||||||
|
@ -202,6 +202,8 @@ export default {
|
|||||||
|
|
||||||
return dispatch('associateCalendarToRange', { range: null }).then(() => {
|
return dispatch('associateCalendarToRange', { range: null }).then(() => {
|
||||||
commit('setMainUser', mainUser);
|
commit('setMainUser', mainUser);
|
||||||
|
|
||||||
|
return dispatch('fetchCalendarEvents');
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@ export const mapEntity = (entity: EventInput): EventInput => {
|
|||||||
|
|
||||||
export const createUserData = (user: User, colorIndex: number): UserData => {
|
export const createUserData = (user: User, colorIndex: number): UserData => {
|
||||||
const colorId = colorIndex % COLORS.length;
|
const colorId = colorIndex % COLORS.length;
|
||||||
console.log('colorId', colorId);
|
|
||||||
return {
|
return {
|
||||||
user: user,
|
user: user,
|
||||||
calendarRanges: [],
|
calendarRanges: [],
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm">
|
<div class="col-sm">
|
||||||
<label class="form-label">Lieu des plages de disponibilités créées</label>
|
<label class="form-label">{{ $t('created_availabilities') }}</label>
|
||||||
<vue-multiselect
|
<vue-multiselect
|
||||||
v-model="pickedLocation"
|
v-model="pickedLocation"
|
||||||
:options="locations"
|
:options="locations"
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
const appMessages = {
|
const appMessages = {
|
||||||
fr: {
|
fr: {
|
||||||
|
created_availabilities: "Lieu des plages de disponibilités créées",
|
||||||
edit_your_calendar_range: "Planifiez vos plages de disponibilités",
|
edit_your_calendar_range: "Planifiez vos plages de disponibilités",
|
||||||
show_my_calendar: "Afficher mon calendrier",
|
show_my_calendar: "Afficher mon calendrier",
|
||||||
show_weekends: "Afficher les week-ends",
|
show_weekends: "Afficher les week-ends",
|
||||||
|
@ -20,15 +20,24 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col text-start">
|
<div class="col text-start">
|
||||||
{{ d.storedObject.title }}
|
{{ d.storedObject.title }}
|
||||||
{% if d.dateTimeVersion < d.calendar.dateTimeVersion %}
|
</div>
|
||||||
|
{% if d.dateTimeVersion < d.calendar.dateTimeVersion %}
|
||||||
|
<div class="col text-start">
|
||||||
<span class="badge bg-danger">{{ 'chill_calendar.Document outdated'|trans }}</span>
|
<span class="badge bg-danger">{{ 'chill_calendar.Document outdated'|trans }}</span>
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
<div class="col-md-auto text-center">
|
|
||||||
{{ mm.mimeIcon(d.storedObject.type) }}
|
|
||||||
</div>
|
</div>
|
||||||
|
{% endif %}
|
||||||
<div class="col col-lg-4 text-end">
|
<div class="col col-lg-4 text-end">
|
||||||
{{ d.storedObject|chill_document_button_group(d.storedObject.title, is_granted('CHILL_CALENDAR_DOC_EDIT', d), {'small': true}) }}
|
<ul class="record_actions">
|
||||||
|
<li>
|
||||||
|
{{ d.storedObject|chill_document_button_group(d.storedObject.title, is_granted('CHILL_CALENDAR_DOC_EDIT', d), {'small': true}) }}
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="{{ chill_path_add_return_path('chill_calendar_calendardoc_edit', {id: d.id}) }}" class="btn btn-sm btn-edit"></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="{{ chill_path_add_return_path('chill_calendar_calendardoc_delete', {id: d.id}) }}" class="btn btn-sm btn-delete"></a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
@ -110,7 +110,46 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="item-row">
|
{% if calendar.activity is not null %}
|
||||||
|
<div class="item-row separator">
|
||||||
|
<div class="item-col">
|
||||||
|
<div class="wrap-list">
|
||||||
|
<div class="wl-row">
|
||||||
|
<div class="wl-col title"><h3>{{ 'Activity'|trans }}</h3></div>
|
||||||
|
<div class="wl-col list activity-linked">
|
||||||
|
<h2 class="badge-title">
|
||||||
|
<span class="title_label"></span>
|
||||||
|
<span class="title_action">
|
||||||
|
{{ calendar.activity.type.name | localize_translatable_string }}
|
||||||
|
|
||||||
|
{% if calendar.activity.emergency %}
|
||||||
|
<span class="badge bg-danger rounded-pill fs-6 float-end">{{ 'Emergency'|trans|upper }}</span>
|
||||||
|
{% endif %}
|
||||||
|
</span>
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<ul class="record_actions">
|
||||||
|
<li class="cancel">
|
||||||
|
<span class="createdBy">
|
||||||
|
{{ 'Created by'|trans }}
|
||||||
|
<b>{{ calendar.activity.createdBy|chill_entity_render_string }}</b>, {{ 'on'|trans }} {{ calendar.activity.createdAt|format_datetime('short', 'short') }}
|
||||||
|
</span>
|
||||||
|
</li>
|
||||||
|
{% if is_granted('CHILL_ACTIVITY_SEE', calendar.activity) %}
|
||||||
|
<li>
|
||||||
|
<a href="{{ chill_path_add_return_path('chill_activity_activity_show', {'id': calendar.activity.id}) }}" class="btn btn-sm btn-show" ></a>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<div class="item-row separator">
|
||||||
<ul class="record_actions">
|
<ul class="record_actions">
|
||||||
{% if is_granted('CHILL_CALENDAR_CALENDAR_SEE', calendar) %}
|
{% if is_granted('CHILL_CALENDAR_CALENDAR_SEE', calendar) %}
|
||||||
{% if templates|length == 0 %}
|
{% if templates|length == 0 %}
|
||||||
@ -147,7 +186,12 @@
|
|||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if accompanyingCourse is defined and is_granted('CHILL_ACTIVITY_CREATE', accompanyingCourse) and calendar.activity is null %}
|
{% if calendar.activity is null and (
|
||||||
|
(calendar.context == 'accompanying_period' and is_granted('CHILL_ACTIVITY_CREATE', calendar.accompanyingPeriod))
|
||||||
|
or
|
||||||
|
(calendar.context == 'person' and is_granted('CHILL_ACTIVITY_CREATE', calendar.person))
|
||||||
|
)
|
||||||
|
%}
|
||||||
<li>
|
<li>
|
||||||
<a class="btn btn-create"
|
<a class="btn btn-create"
|
||||||
href="{{ chill_path_add_return_path('chill_calendar_calendar_to_activity', { 'id': calendar.id }) }}">
|
href="{{ chill_path_add_return_path('chill_calendar_calendar_to_activity', { 'id': calendar.id }) }}">
|
||||||
|
@ -9,13 +9,13 @@
|
|||||||
{% block js %}
|
{% block js %}
|
||||||
{{ parent() }}
|
{{ parent() }}
|
||||||
{{ encore_entry_script_tags('mod_answer') }}
|
{{ encore_entry_script_tags('mod_answer') }}
|
||||||
{{ encore_entry_script_tags('mod_async_upload') }}
|
{{ encore_entry_script_tags('mod_document_action_buttons_group') }}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block css %}
|
{% block css %}
|
||||||
{{ parent() }}
|
{{ parent() }}
|
||||||
{{ encore_entry_link_tags('mod_answer') }}
|
{{ encore_entry_link_tags('mod_answer') }}
|
||||||
{{ encore_entry_link_tags('mod_async_upload') }}
|
{{ encore_entry_link_tags('mod_document_action_buttons_group') }}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
@ -24,7 +24,6 @@
|
|||||||
{{ form_start(form) }}
|
{{ form_start(form) }}
|
||||||
|
|
||||||
{{ form_row(form.title) }}
|
{{ form_row(form.title) }}
|
||||||
{{ form_row(form.doc) }}
|
|
||||||
|
|
||||||
<ul class="record_actions sticky-form-buttons">
|
<ul class="record_actions sticky-form-buttons">
|
||||||
<li class="cancel">
|
<li class="cancel">
|
||||||
|
@ -23,7 +23,6 @@
|
|||||||
{{ form_start(form) }}
|
{{ form_start(form) }}
|
||||||
|
|
||||||
{{ form_row(form.title) }}
|
{{ form_row(form.title) }}
|
||||||
{{ form_row(form.doc) }}
|
|
||||||
|
|
||||||
<ul class="record_actions sticky-form-buttons">
|
<ul class="record_actions sticky-form-buttons">
|
||||||
<li class="cancel">
|
<li class="cancel">
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
|
|
||||||
<ul class="record_actions sticky-form-buttons">
|
<ul class="record_actions sticky-form-buttons">
|
||||||
<li class="cancel">
|
<li class="cancel">
|
||||||
<a class="btn btn-cancel" href="{{ chill_return_path_or('chill_calendar_calendar_list_by_accompanying_period', {'id': accompanyingCourse.id }) }}">{{ 'Cancel'|trans|chill_return_path_label }}</a>
|
<a class="btn btn-cancel" href="{{ chill_return_path_or('chill_calendar_calendar_edit', {'id': calendar_doc.calendar.id }) }}">{{ 'Cancel'|trans|chill_return_path_label }}</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
|
@ -132,8 +132,8 @@ docgen:
|
|||||||
Base context for calendar: 'Rendez-vous: contexte de base'
|
Base context for calendar: 'Rendez-vous: contexte de base'
|
||||||
A base context for generating document on calendar: Contexte pour générer des documents à partir des rendez-vous
|
A base context for generating document on calendar: Contexte pour générer des documents à partir des rendez-vous
|
||||||
Track changes on datetime and warn user if date time is updated after the doc generation: Suivre les changements sur le document et prévenir les utilisateurs que la date et l'heure ont été modifiée après la génération du document
|
Track changes on datetime and warn user if date time is updated after the doc generation: Suivre les changements sur le document et prévenir les utilisateurs que la date et l'heure ont été modifiée après la génération du document
|
||||||
Ask main person: Demander de choisir une personne parmi les participants aux rendez-vous
|
Ask main person: Demander de choisir un usager parmi les participants aux rendez-vous
|
||||||
Main person label: Label pour choisir la personne
|
Main person label: Label pour choisir l'usager
|
||||||
Ask third party: Demander de choisir un tiers parmi les participants aux rendez-vous
|
Ask third party: Demander de choisir un tiers parmi les participants aux rendez-vous
|
||||||
Third party label: Label pour choisir le tiers
|
Third party label: Label pour choisir le tiers
|
||||||
Destinee: Destinataire
|
Destinee: Destinataire
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
calendar:
|
calendar:
|
||||||
At least {{ limit }} person is required.: Au moins {{ limit }} personne doit être associée à ce rendez-vous
|
At least {{ limit }} person is required.: Au moins {{ limit }} usager doit être associée à ce rendez-vous
|
||||||
An end date is required: Indiquez une date et heure de fin
|
An end date is required: Indiquez une date et heure de fin
|
||||||
A start date is required: Indiquez une date et heure de début
|
A start date is required: Indiquez une date et heure de début
|
||||||
A location is required: Indiquez un lieu
|
A location is required: Indiquez un lieu
|
||||||
|
@ -11,6 +11,7 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace Chill\DocStoreBundle\Entity;
|
namespace Chill\DocStoreBundle\Entity;
|
||||||
|
|
||||||
|
use Chill\MainBundle\Entity\HasCentersInterface;
|
||||||
use Chill\MainBundle\Entity\HasScopesInterface;
|
use Chill\MainBundle\Entity\HasScopesInterface;
|
||||||
use Chill\PersonBundle\Entity\AccompanyingPeriod;
|
use Chill\PersonBundle\Entity\AccompanyingPeriod;
|
||||||
use Doctrine\ORM\Mapping as ORM;
|
use Doctrine\ORM\Mapping as ORM;
|
||||||
@ -19,7 +20,7 @@ use Doctrine\ORM\Mapping as ORM;
|
|||||||
* @ORM\Entity
|
* @ORM\Entity
|
||||||
* @ORM\Table("chill_doc.accompanyingcourse_document")
|
* @ORM\Table("chill_doc.accompanyingcourse_document")
|
||||||
*/
|
*/
|
||||||
class AccompanyingCourseDocument extends Document implements HasScopesInterface
|
class AccompanyingCourseDocument extends Document implements HasScopesInterface, HasCentersInterface
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @ORM\ManyToOne(targetEntity=AccompanyingPeriod::class)
|
* @ORM\ManyToOne(targetEntity=AccompanyingPeriod::class)
|
||||||
@ -27,6 +28,11 @@ class AccompanyingCourseDocument extends Document implements HasScopesInterface
|
|||||||
*/
|
*/
|
||||||
private ?AccompanyingPeriod $course = null;
|
private ?AccompanyingPeriod $course = null;
|
||||||
|
|
||||||
|
public function getCenters(): ?iterable
|
||||||
|
{
|
||||||
|
return $this->course->getCenters();
|
||||||
|
}
|
||||||
|
|
||||||
public function getCourse(): ?AccompanyingPeriod
|
public function getCourse(): ?AccompanyingPeriod
|
||||||
{
|
{
|
||||||
return $this->course;
|
return $this->course;
|
||||||
|
@ -51,16 +51,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<ul class="item-col record_actions flex-shrink-1">
|
<ul class="item-col record_actions flex-shrink-1">
|
||||||
{% if document.course is defined %}
|
{% if document.course is defined %}
|
||||||
{% if is_granted('CHILL_ACCOMPANYING_COURSE_DOCUMENT_DELETE', document) %}
|
<li>
|
||||||
<li class="delete">
|
{{ chill_entity_workflow_list('Chill\\DocStoreBundle\\Entity\\AccompanyingCourseDocument', document.id) }}
|
||||||
<a href="{{ chill_return_path_or('chill_docstore_accompanying_course_document_delete', {'course': accompanyingCourse.id, 'id': document.id}) }}" class="btn btn-delete"></a>
|
</li>
|
||||||
</li>
|
|
||||||
{% endif %}
|
|
||||||
{% if is_granted('CHILL_ACCOMPANYING_COURSE_DOCUMENT_UPDATE', document) %}
|
|
||||||
<li>
|
|
||||||
<a href="{{ path('accompanying_course_document_edit', {'course': accompanyingCourse.id, 'id': document.id }) }}" class="btn btn-update"></a>
|
|
||||||
</li>
|
|
||||||
{% endif %}
|
|
||||||
{% if is_granted('CHILL_ACCOMPANYING_COURSE_DOCUMENT_SEE_DETAILS', document) %}
|
{% if is_granted('CHILL_ACCOMPANYING_COURSE_DOCUMENT_SEE_DETAILS', document) %}
|
||||||
<li>
|
<li>
|
||||||
{{ document.object|chill_document_button_group(document.title, is_granted('CHILL_ACCOMPANYING_COURSE_DOCUMENT_UPDATE', document)) }}
|
{{ document.object|chill_document_button_group(document.title, is_granted('CHILL_ACCOMPANYING_COURSE_DOCUMENT_UPDATE', document)) }}
|
||||||
@ -69,20 +62,17 @@
|
|||||||
<a href="{{ chill_path_add_return_path('accompanying_course_document_show', {'course': accompanyingCourse.id, 'id': document.id}) }}" class="btn btn-show"></a>
|
<a href="{{ chill_path_add_return_path('accompanying_course_document_show', {'course': accompanyingCourse.id, 'id': document.id}) }}" class="btn btn-show"></a>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<li>
|
{% if is_granted('CHILL_ACCOMPANYING_COURSE_DOCUMENT_UPDATE', document) %}
|
||||||
{{ chill_entity_workflow_list('Chill\\DocStoreBundle\\Entity\\AccompanyingCourseDocument', document.id) }}
|
|
||||||
</li>
|
|
||||||
{% else %}
|
|
||||||
{% if is_granted('CHILL_PERSON_DOCUMENT_DELETE', document) %}
|
|
||||||
<li class="delete">
|
|
||||||
<a href="{{ chill_return_path_or('chill_docstore_person_document_delete', {'person': person.id, 'id': document.id}) }}" class="btn btn-delete"></a>
|
|
||||||
</li>
|
|
||||||
{% endif %}
|
|
||||||
{% if is_granted('CHILL_PERSON_DOCUMENT_UPDATE', document) %}
|
|
||||||
<li>
|
<li>
|
||||||
<a href="{{ path('person_document_edit', {'person': person.id, 'id': document.id}) }}" class="btn btn-update"></a>
|
<a href="{{ path('accompanying_course_document_edit', {'course': accompanyingCourse.id, 'id': document.id }) }}" class="btn btn-update"></a>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if is_granted('CHILL_ACCOMPANYING_COURSE_DOCUMENT_DELETE', document) %}
|
||||||
|
<li class="delete">
|
||||||
|
<a href="{{ chill_return_path_or('chill_docstore_accompanying_course_document_delete', {'course': accompanyingCourse.id, 'id': document.id}) }}" class="btn btn-delete"></a>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
|
{% else %}
|
||||||
{% if is_granted('CHILL_PERSON_DOCUMENT_SEE_DETAILS', document) %}
|
{% if is_granted('CHILL_PERSON_DOCUMENT_SEE_DETAILS', document) %}
|
||||||
<li>
|
<li>
|
||||||
{{ document.object|chill_document_button_group(document.title, is_granted('CHILL_PERSON_DOCUMENT_UPDATE', document)) }}
|
{{ document.object|chill_document_button_group(document.title, is_granted('CHILL_PERSON_DOCUMENT_UPDATE', document)) }}
|
||||||
@ -91,6 +81,16 @@
|
|||||||
<a href="{{ path('person_document_show', {'person': person.id, 'id': document.id}) }}" class="btn btn-show"></a>
|
<a href="{{ path('person_document_show', {'person': person.id, 'id': document.id}) }}" class="btn btn-show"></a>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if is_granted('CHILL_PERSON_DOCUMENT_UPDATE', document) %}
|
||||||
|
<li>
|
||||||
|
<a href="{{ path('person_document_edit', {'person': person.id, 'id': document.id}) }}" class="btn btn-update"></a>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
|
{% if is_granted('CHILL_PERSON_DOCUMENT_DELETE', document) %}
|
||||||
|
<li class="delete">
|
||||||
|
<a href="{{ chill_return_path_or('chill_docstore_person_document_delete', {'person': person.id, 'id': document.id}) }}" class="btn btn-delete"></a>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
@ -78,12 +78,12 @@ class AccompanyingCourseDocumentVoter extends AbstractChillVoter implements Prov
|
|||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function supports($attribute, $subject)
|
protected function supports($attribute, $subject): bool
|
||||||
{
|
{
|
||||||
return $this->voterHelper->supports($attribute, $subject);
|
return $this->voterHelper->supports($attribute, $subject);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function voteOnAttribute($attribute, $subject, TokenInterface $token)
|
protected function voteOnAttribute($attribute, $subject, TokenInterface $token): bool
|
||||||
{
|
{
|
||||||
if (!$token->getUser() instanceof User) {
|
if (!$token->getUser() instanceof User) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -34,7 +34,7 @@ Edit the participation: Modifier la participation
|
|||||||
Participation Edit: Modifier une participation
|
Participation Edit: Modifier une participation
|
||||||
Add a participation: Ajouter un participant
|
Add a participation: Ajouter un participant
|
||||||
Participation creation: Ajouter une participation
|
Participation creation: Ajouter une participation
|
||||||
Associated person: Personne associée
|
Associated person: Usager associé
|
||||||
Associated event: Événement associé
|
Associated event: Événement associé
|
||||||
Back to the event: Retour à l'événement
|
Back to the event: Retour à l'événement
|
||||||
The participation was created: La participation a été créée
|
The participation was created: La participation a été créée
|
||||||
@ -108,4 +108,4 @@ csv: csv
|
|||||||
|
|
||||||
Create a new role: Créer un nouveau rôle
|
Create a new role: Créer un nouveau rôle
|
||||||
Create a new type: Créer un nouveau type
|
Create a new type: Créer un nouveau type
|
||||||
Create a new status: Créer un nouveau statut
|
Create a new status: Créer un nouveau statut
|
||||||
|
@ -18,6 +18,7 @@ function loadDynamicPicker(element) {
|
|||||||
isMultiple = parseInt(el.dataset.multiple) === 1,
|
isMultiple = parseInt(el.dataset.multiple) === 1,
|
||||||
uniqId = el.dataset.uniqid,
|
uniqId = el.dataset.uniqid,
|
||||||
input = element.querySelector('[data-input-uniqid="'+ el.dataset.uniqid +'"]'),
|
input = element.querySelector('[data-input-uniqid="'+ el.dataset.uniqid +'"]'),
|
||||||
|
// the "picked" will always be an array, even if multiple is false
|
||||||
picked = isMultiple ?
|
picked = isMultiple ?
|
||||||
JSON.parse(input.value) : (
|
JSON.parse(input.value) : (
|
||||||
(input.value === '[]' || input.value === '') ?
|
(input.value === '[]' || input.value === '') ?
|
||||||
@ -54,15 +55,11 @@ function loadDynamicPicker(element) {
|
|||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
notPickedSuggested() {
|
notPickedSuggested() {
|
||||||
if (this.multiple) {
|
const pickedIds = new Set();
|
||||||
const pickedIds = new Set();
|
for (const p of this.picked) {
|
||||||
for (const p of this.picked) {
|
pickedIds.add(`${p.type}${p.id}`);
|
||||||
pickedIds.add(`${p.type}${p.id}`);
|
|
||||||
}
|
|
||||||
return this.suggested.filter(e => !pickedIds.has(`${e.type}${e.id}`))
|
|
||||||
}
|
}
|
||||||
|
return this.suggested.filter(e => !pickedIds.has(`${e.type}${e.id}`))
|
||||||
return this.suggested.filter(e => e.type !== this.picked.type && e.id !== e.picked.id);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@ -90,7 +87,11 @@ function loadDynamicPicker(element) {
|
|||||||
this.suggested.push(entity);
|
this.suggested.push(entity);
|
||||||
}
|
}
|
||||||
this.picked = this.picked.filter(e => !(e.type === entity.type && e.id === entity.id));
|
this.picked = this.picked.filter(e => !(e.type === entity.type && e.id === entity.id));
|
||||||
input.value = JSON.stringify(this.picked);
|
if (this.multiple) {
|
||||||
|
input.value = JSON.stringify(this.picked);
|
||||||
|
} else {
|
||||||
|
input.value = "";
|
||||||
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -66,6 +66,7 @@
|
|||||||
{{ form_row(transition_form.future_dest_users) }}
|
{{ form_row(transition_form.future_dest_users) }}
|
||||||
|
|
||||||
{{ form_row(transition_form.future_dest_emails) }}
|
{{ form_row(transition_form.future_dest_emails) }}
|
||||||
|
{{ form_errors(transition_form.future_dest_users) }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>{{ form_label(transition_form.comment) }}</p>
|
<p>{{ form_label(transition_form.comment) }}</p>
|
||||||
|
@ -30,7 +30,7 @@ class SearchApi
|
|||||||
|
|
||||||
private PaginatorFactory $paginator;
|
private PaginatorFactory $paginator;
|
||||||
|
|
||||||
private iterable $providers = [];
|
private iterable $providers;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
EntityManagerInterface $em,
|
EntityManagerInterface $em,
|
||||||
@ -42,9 +42,6 @@ class SearchApi
|
|||||||
$this->paginator = $paginator;
|
$this->paginator = $paginator;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @return Model/Result[]
|
|
||||||
*/
|
|
||||||
public function getResults(string $pattern, array $types, array $parameters): Collection
|
public function getResults(string $pattern, array $types, array $parameters): Collection
|
||||||
{
|
{
|
||||||
$queries = $this->findQueries($pattern, $types, $parameters);
|
$queries = $this->findQueries($pattern, $types, $parameters);
|
||||||
@ -53,10 +50,10 @@ class SearchApi
|
|||||||
throw new SearchApiNoQueryException($pattern, $types, $parameters);
|
throw new SearchApiNoQueryException($pattern, $types, $parameters);
|
||||||
}
|
}
|
||||||
|
|
||||||
$total = $this->countItems($queries, $types, $parameters);
|
$total = $this->countItems($queries);
|
||||||
$paginator = $this->paginator->create($total);
|
$paginator = $this->paginator->create($total);
|
||||||
|
|
||||||
$rawResults = $this->fetchRawResult($queries, $types, $parameters, $paginator);
|
$rawResults = $this->fetchRawResult($queries, $types, $paginator);
|
||||||
|
|
||||||
$this->prepareProviders($rawResults);
|
$this->prepareProviders($rawResults);
|
||||||
$results = $this->buildResults($rawResults);
|
$results = $this->buildResults($rawResults);
|
||||||
@ -64,7 +61,7 @@ class SearchApi
|
|||||||
return new Collection($results, $paginator);
|
return new Collection($results, $paginator);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function buildCountQuery(array $queries, $types, $parameters)
|
private function buildCountQuery(array $queries): array
|
||||||
{
|
{
|
||||||
$query = 'SELECT SUM(c) AS count FROM ({union_unordered}) AS sq';
|
$query = 'SELECT SUM(c) AS count FROM ({union_unordered}) AS sq';
|
||||||
$unions = [];
|
$unions = [];
|
||||||
@ -88,7 +85,7 @@ class SearchApi
|
|||||||
$items = [];
|
$items = [];
|
||||||
|
|
||||||
foreach ($rawResults as $r) {
|
foreach ($rawResults as $r) {
|
||||||
foreach ($this->providers as $k => $p) {
|
foreach ($this->providers as $p) {
|
||||||
if ($p->supportsResult($r['key'], $r['metadata'])) {
|
if ($p->supportsResult($r['key'], $r['metadata'])) {
|
||||||
$items[] = (new SearchApiResult($r['pertinence']))
|
$items[] = (new SearchApiResult($r['pertinence']))
|
||||||
->setResult(
|
->setResult(
|
||||||
@ -103,7 +100,7 @@ class SearchApi
|
|||||||
return $items;
|
return $items;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function buildUnionQuery(array $queries, $types, $parameters, Paginator $paginator)
|
private function buildUnionQuery(array $queries, Paginator $paginator): array
|
||||||
{
|
{
|
||||||
$query = '{unions} ORDER BY pertinence DESC LIMIT ? OFFSET ?';
|
$query = '{unions} ORDER BY pertinence DESC LIMIT ? OFFSET ?';
|
||||||
$unions = [];
|
$unions = [];
|
||||||
@ -126,9 +123,9 @@ class SearchApi
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
private function countItems($providers, $types, $parameters): int
|
private function countItems($providers): int
|
||||||
{
|
{
|
||||||
[$countQuery, $parameters] = $this->buildCountQuery($providers, $types, $parameters);
|
[$countQuery, $parameters] = $this->buildCountQuery($providers);
|
||||||
$rsmCount = new ResultSetMappingBuilder($this->em);
|
$rsmCount = new ResultSetMappingBuilder($this->em);
|
||||||
$rsmCount->addScalarResult('count', 'count');
|
$rsmCount->addScalarResult('count', 'count');
|
||||||
$countNq = $this->em->createNativeQuery($countQuery, $rsmCount);
|
$countNq = $this->em->createNativeQuery($countQuery, $rsmCount);
|
||||||
@ -137,9 +134,9 @@ class SearchApi
|
|||||||
return (int) $countNq->getSingleScalarResult();
|
return (int) $countNq->getSingleScalarResult();
|
||||||
}
|
}
|
||||||
|
|
||||||
private function fetchRawResult($queries, $types, $parameters, Paginator $paginator): array
|
private function fetchRawResult($queries, $types, Paginator $paginator): array
|
||||||
{
|
{
|
||||||
[$union, $parameters] = $this->buildUnionQuery($queries, $types, $parameters, $paginator);
|
[$union, $parameters] = $this->buildUnionQuery($queries, $paginator);
|
||||||
$rsm = new ResultSetMappingBuilder($this->em);
|
$rsm = new ResultSetMappingBuilder($this->em);
|
||||||
$rsm->addScalarResult('key', 'key', Types::STRING)
|
$rsm->addScalarResult('key', 'key', Types::STRING)
|
||||||
->addScalarResult('metadata', 'metadata', Types::JSON)
|
->addScalarResult('metadata', 'metadata', Types::JSON)
|
||||||
@ -172,7 +169,7 @@ class SearchApi
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function prepareProviders(array $rawResults)
|
private function prepareProviders(array $rawResults): void
|
||||||
{
|
{
|
||||||
$metadatas = [];
|
$metadatas = [];
|
||||||
$providers = [];
|
$providers = [];
|
||||||
|
@ -16,6 +16,18 @@ use function count;
|
|||||||
use function implode;
|
use function implode;
|
||||||
use function strtr;
|
use function strtr;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This create a query optimized for searching for the api response.
|
||||||
|
*
|
||||||
|
* When build, this class generate a SQL string and a list of a parameters which is suitable for running
|
||||||
|
* a native SQL query. This have usually the form of
|
||||||
|
*
|
||||||
|
* `SELECT '<key>' as key, <metadata> as metadata, <pertinence> as pertinence FROM <from clause> WHERE <where clause>`.
|
||||||
|
*
|
||||||
|
* The clause between `<>` are provided through the dedicated method in this class (@link{self::setSelectKey},
|
||||||
|
* @link{self::setFromClause}), etc.).
|
||||||
|
*
|
||||||
|
*/
|
||||||
class SearchApiQuery
|
class SearchApiQuery
|
||||||
{
|
{
|
||||||
private ?string $fromClause = null;
|
private ?string $fromClause = null;
|
||||||
|
@ -16,7 +16,7 @@ use Chill\MainBundle\Entity\Scope;
|
|||||||
use Chill\MainBundle\Entity\User;
|
use Chill\MainBundle\Entity\User;
|
||||||
use Chill\MainBundle\Repository\UserACLAwareRepositoryInterface;
|
use Chill\MainBundle\Repository\UserACLAwareRepositoryInterface;
|
||||||
use Chill\MainBundle\Security\ParentRoleHelper;
|
use Chill\MainBundle\Security\ParentRoleHelper;
|
||||||
use Chill\MainBundle\Security\Resolver\CenterResolverDispatcherInterface;
|
use Chill\MainBundle\Security\Resolver\CenterResolverManagerInterface;
|
||||||
use Chill\MainBundle\Security\Resolver\ScopeResolverDispatcher;
|
use Chill\MainBundle\Security\Resolver\ScopeResolverDispatcher;
|
||||||
use Psr\Log\LoggerInterface;
|
use Psr\Log\LoggerInterface;
|
||||||
use Symfony\Component\Security\Core\Role\Role;
|
use Symfony\Component\Security\Core\Role\Role;
|
||||||
@ -34,7 +34,7 @@ use function get_class;
|
|||||||
*/
|
*/
|
||||||
class AuthorizationHelper implements AuthorizationHelperInterface
|
class AuthorizationHelper implements AuthorizationHelperInterface
|
||||||
{
|
{
|
||||||
private CenterResolverDispatcherInterface $centerResolverDispatcher;
|
private CenterResolverManagerInterface $centerResolverManager;
|
||||||
|
|
||||||
private LoggerInterface $logger;
|
private LoggerInterface $logger;
|
||||||
|
|
||||||
@ -45,13 +45,13 @@ class AuthorizationHelper implements AuthorizationHelperInterface
|
|||||||
private UserACLAwareRepositoryInterface $userACLAwareRepository;
|
private UserACLAwareRepositoryInterface $userACLAwareRepository;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
CenterResolverDispatcherInterface $centerResolverDispatcher,
|
CenterResolverManagerInterface $centerResolverManager,
|
||||||
LoggerInterface $logger,
|
LoggerInterface $logger,
|
||||||
ScopeResolverDispatcher $scopeResolverDispatcher,
|
ScopeResolverDispatcher $scopeResolverDispatcher,
|
||||||
UserACLAwareRepositoryInterface $userACLAwareRepository,
|
UserACLAwareRepositoryInterface $userACLAwareRepository,
|
||||||
ParentRoleHelper $parentRoleHelper
|
ParentRoleHelper $parentRoleHelper
|
||||||
) {
|
) {
|
||||||
$this->centerResolverDispatcher = $centerResolverDispatcher;
|
$this->centerResolverManager = $centerResolverManager;
|
||||||
$this->logger = $logger;
|
$this->logger = $logger;
|
||||||
$this->scopeResolverDispatcher = $scopeResolverDispatcher;
|
$this->scopeResolverDispatcher = $scopeResolverDispatcher;
|
||||||
$this->userACLAwareRepository = $userACLAwareRepository;
|
$this->userACLAwareRepository = $userACLAwareRepository;
|
||||||
@ -63,7 +63,7 @@ class AuthorizationHelper implements AuthorizationHelperInterface
|
|||||||
*
|
*
|
||||||
* @param User $user The user
|
* @param User $user The user
|
||||||
* @param array $centers a list of centers which are going to be filtered
|
* @param array $centers a list of centers which are going to be filtered
|
||||||
* @param Center|string $role
|
* @param string $role
|
||||||
*/
|
*/
|
||||||
public function filterReachableCenters(User $user, array $centers, $role): array
|
public function filterReachableCenters(User $user, array $centers, $role): array
|
||||||
{
|
{
|
||||||
@ -113,13 +113,14 @@ class AuthorizationHelper implements AuthorizationHelperInterface
|
|||||||
* Get reachable Centers for the given user, role,
|
* Get reachable Centers for the given user, role,
|
||||||
* and optionally Scope.
|
* and optionally Scope.
|
||||||
*
|
*
|
||||||
* @return array|Center[]
|
* @return list<Center>
|
||||||
*/
|
*/
|
||||||
public function getReachableCenters(UserInterface $user, string $role, ?Scope $scope = null): array
|
public function getReachableCenters(UserInterface $user, string $role, ?Scope $scope = null): array
|
||||||
{
|
{
|
||||||
if ($role instanceof Role) {
|
if ($role instanceof Role) {
|
||||||
$role = $role->getRole();
|
$role = $role->getRole();
|
||||||
}
|
}
|
||||||
|
/** @var array<string, Center> $centers */
|
||||||
$centers = [];
|
$centers = [];
|
||||||
|
|
||||||
foreach ($user->getGroupCenters() as $groupCenter) {
|
foreach ($user->getGroupCenters() as $groupCenter) {
|
||||||
@ -129,13 +130,13 @@ class AuthorizationHelper implements AuthorizationHelperInterface
|
|||||||
//check that the role is in the reachable roles
|
//check that the role is in the reachable roles
|
||||||
if ($this->isRoleReached($role, $roleScope->getRole())) {
|
if ($this->isRoleReached($role, $roleScope->getRole())) {
|
||||||
if (null === $scope) {
|
if (null === $scope) {
|
||||||
$centers[] = $groupCenter->getCenter();
|
$centers[spl_object_hash($groupCenter->getCenter())] = $groupCenter->getCenter();
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($scope->getId() === $roleScope->getScope()->getId()) {
|
if ($scope->getId() === $roleScope->getScope()->getId()) {
|
||||||
$centers[] = $groupCenter->getCenter();
|
$centers[spl_object_hash($groupCenter->getCenter())] = $groupCenter->getCenter();
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -143,7 +144,7 @@ class AuthorizationHelper implements AuthorizationHelperInterface
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $centers;
|
return array_values($centers);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -194,7 +195,7 @@ class AuthorizationHelper implements AuthorizationHelperInterface
|
|||||||
*
|
*
|
||||||
* @return array|Scope[]
|
* @return array|Scope[]
|
||||||
*/
|
*/
|
||||||
public function getReachableScopes(UserInterface $user, string $role, $center): array
|
public function getReachableScopes(UserInterface $user, string $role, Center|array $center): array
|
||||||
{
|
{
|
||||||
if ($role instanceof Role) {
|
if ($role instanceof Role) {
|
||||||
$role = $role->getRole();
|
$role = $role->getRole();
|
||||||
@ -252,27 +253,15 @@ class AuthorizationHelper implements AuthorizationHelperInterface
|
|||||||
*/
|
*/
|
||||||
public function userHasAccess(User $user, $entity, $attribute)
|
public function userHasAccess(User $user, $entity, $attribute)
|
||||||
{
|
{
|
||||||
$center = $this->centerResolverDispatcher->resolveCenter($entity);
|
$centers = $this->centerResolverManager->resolveCenters($entity);
|
||||||
|
|
||||||
if (is_iterable($center)) {
|
foreach ($centers as $c) {
|
||||||
foreach ($center as $c) {
|
if ($this->userHasAccessForCenter($user, $c, $entity, $attribute)) {
|
||||||
if ($this->userHasAccessForCenter($user, $c, $entity, $attribute)) {
|
return true;
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($center instanceof Center) {
|
return false;
|
||||||
return $this->userHasAccessForCenter($user, $center, $entity, $attribute);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (null === $center) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
throw new UnexpectedValueException('could not resolver a center');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -21,12 +21,12 @@ interface AuthorizationHelperInterface
|
|||||||
* Get reachable Centers for the given user, role,
|
* Get reachable Centers for the given user, role,
|
||||||
* and optionnaly Scope.
|
* and optionnaly Scope.
|
||||||
*
|
*
|
||||||
* @return Center[]
|
* @return list<Center>
|
||||||
*/
|
*/
|
||||||
public function getReachableCenters(UserInterface $user, string $role, ?Scope $scope = null): array;
|
public function getReachableCenters(UserInterface $user, string $role, ?Scope $scope = null): array;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array|Center|Center[] $center
|
* @param Center|list<Center> $center
|
||||||
*/
|
*/
|
||||||
public function getReachableScopes(UserInterface $user, string $role, $center): array;
|
public function getReachableScopes(UserInterface $user, string $role, Center|array $center): array;
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
"This program is free software: you can redistribute it and/or modify it under the terms of the <strong>GNU Affero General Public License</strong>": "Ce programme est un logiciel libre: vous pouvez le redistribuer et/ou le modifier selon les termes de la licence <strong>GNU Affero GPL</strong>"
|
"This program is free software: you can redistribute it and/or modify it under the terms of the <strong>GNU Affero General Public License</strong>": "Ce programme est un logiciel libre: vous pouvez le redistribuer et/ou le modifier selon les termes de la licence <strong>GNU Affero GPL</strong>"
|
||||||
User manual: Manuel d'utilisation
|
User manual: Manuel d'utilisation
|
||||||
Search: Rechercher
|
Search: Rechercher
|
||||||
"Search persons, ...": "Recherche des personnes, ..."
|
"Search persons, ...": "Recherche des usagers, ..."
|
||||||
Person name: Nom / Prénom de la personne
|
Person name: Nom / Prénom de l'usager
|
||||||
Login: Connexion
|
Login: Connexion
|
||||||
Logout: Se déconnecter
|
Logout: Se déconnecter
|
||||||
Bad credentials.: Le mot de passe et le nom d'utilisateur ne correspondent pas.
|
Bad credentials.: Le mot de passe et le nom d'utilisateur ne correspondent pas.
|
||||||
|
@ -11,6 +11,8 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace Chill\PersonBundle\Controller;
|
namespace Chill\PersonBundle\Controller;
|
||||||
|
|
||||||
|
use Chill\MainBundle\Security\Authorization\AuthorizationHelper;
|
||||||
|
use Chill\MainBundle\Security\Authorization\AuthorizationHelperInterface;
|
||||||
use Chill\PersonBundle\Config\ConfigPersonAltNamesHelper;
|
use Chill\PersonBundle\Config\ConfigPersonAltNamesHelper;
|
||||||
use Chill\PersonBundle\Entity\Household\Household;
|
use Chill\PersonBundle\Entity\Household\Household;
|
||||||
use Chill\PersonBundle\Entity\Household\HouseholdMember;
|
use Chill\PersonBundle\Entity\Household\HouseholdMember;
|
||||||
@ -20,6 +22,7 @@ use Chill\PersonBundle\Form\PersonType;
|
|||||||
use Chill\PersonBundle\Privacy\PrivacyEvent;
|
use Chill\PersonBundle\Privacy\PrivacyEvent;
|
||||||
use Chill\PersonBundle\Repository\PersonRepository;
|
use Chill\PersonBundle\Repository\PersonRepository;
|
||||||
use Chill\PersonBundle\Search\SimilarPersonMatcher;
|
use Chill\PersonBundle\Search\SimilarPersonMatcher;
|
||||||
|
use Chill\PersonBundle\Security\Authorization\PersonVoter;
|
||||||
use DateTimeImmutable;
|
use DateTimeImmutable;
|
||||||
use Doctrine\ORM\EntityManagerInterface;
|
use Doctrine\ORM\EntityManagerInterface;
|
||||||
use Psr\Log\LoggerInterface;
|
use Psr\Log\LoggerInterface;
|
||||||
@ -44,6 +47,8 @@ use function is_array;
|
|||||||
|
|
||||||
final class PersonController extends AbstractController
|
final class PersonController extends AbstractController
|
||||||
{
|
{
|
||||||
|
private AuthorizationHelperInterface $authorizationHelper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var ConfigPersonAltNamesHelper
|
* @var ConfigPersonAltNamesHelper
|
||||||
*/
|
*/
|
||||||
@ -87,6 +92,7 @@ final class PersonController extends AbstractController
|
|||||||
private $validator;
|
private $validator;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
|
AuthorizationHelperInterface $authorizationHelper,
|
||||||
SimilarPersonMatcher $similarPersonMatcher,
|
SimilarPersonMatcher $similarPersonMatcher,
|
||||||
TranslatorInterface $translator,
|
TranslatorInterface $translator,
|
||||||
EventDispatcherInterface $eventDispatcher,
|
EventDispatcherInterface $eventDispatcher,
|
||||||
@ -97,6 +103,7 @@ final class PersonController extends AbstractController
|
|||||||
EntityManagerInterface $em,
|
EntityManagerInterface $em,
|
||||||
Security $security
|
Security $security
|
||||||
) {
|
) {
|
||||||
|
$this->authorizationHelper = $authorizationHelper;
|
||||||
$this->similarPersonMatcher = $similarPersonMatcher;
|
$this->similarPersonMatcher = $similarPersonMatcher;
|
||||||
$this->translator = $translator;
|
$this->translator = $translator;
|
||||||
$this->eventDispatcher = $eventDispatcher;
|
$this->eventDispatcher = $eventDispatcher;
|
||||||
@ -206,22 +213,15 @@ final class PersonController extends AbstractController
|
|||||||
*
|
*
|
||||||
* The next post compare the data with previous one and, if yes, show a
|
* The next post compare the data with previous one and, if yes, show a
|
||||||
* review page if there are "alternate persons".
|
* review page if there are "alternate persons".
|
||||||
*
|
|
||||||
* @return Response|\Symfony\Component\HttpFoundation\RedirectResponse
|
|
||||||
*/
|
*/
|
||||||
public function newAction(Request $request)
|
public function newAction(Request $request): Response
|
||||||
{
|
{
|
||||||
$person = new Person();
|
$person = new Person();
|
||||||
|
|
||||||
if (
|
$authorizedCenters =$this->authorizationHelper->getReachableCenters($this->getUser(), PersonVoter::CREATE);
|
||||||
1 === count($this->security->getUser()
|
|
||||||
->getGroupCenters())
|
if (1 === count($authorizedCenters)) {
|
||||||
) {
|
$person->setCenter($authorizedCenters[0]);
|
||||||
$person->setCenter(
|
|
||||||
$this->security->getUser()
|
|
||||||
->getGroupCenters()[0]
|
|
||||||
->getCenter()
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$form = $this->createForm(CreationPersonType::class, $person)
|
$form = $this->createForm(CreationPersonType::class, $person)
|
||||||
|
@ -94,8 +94,8 @@ class AccompanyingPeriodWork implements AccompanyingPeriodLinkedWithSocialIssues
|
|||||||
* @Serializer\Groups({"accompanying_period_work:create"})
|
* @Serializer\Groups({"accompanying_period_work:create"})
|
||||||
* @Serializer\Groups({"accompanying_period_work:edit"})
|
* @Serializer\Groups({"accompanying_period_work:edit"})
|
||||||
* @Serializer\Groups({"read", "docgen:read", "read:accompanyingPeriodWork:light"})
|
* @Serializer\Groups({"read", "docgen:read", "read:accompanyingPeriodWork:light"})
|
||||||
* @Assert\GreaterThan(propertyPath="startDate",
|
* @Assert\GreaterThanOrEqual(propertyPath="startDate",
|
||||||
* message="accompanying_course_work.The endDate should be greater than the start date"
|
* message="accompanying_course_work.The endDate should be greater or equal than the start date"
|
||||||
* )
|
* )
|
||||||
*/
|
*/
|
||||||
private ?DateTimeImmutable $endDate = null;
|
private ?DateTimeImmutable $endDate = null;
|
||||||
|
@ -75,7 +75,8 @@ final class PersonACLAwareRepository implements PersonACLAwareRepositoryInterfac
|
|||||||
$birthdateAfter,
|
$birthdateAfter,
|
||||||
$gender,
|
$gender,
|
||||||
$countryCode,
|
$countryCode,
|
||||||
$phonenumber
|
$phonenumber,
|
||||||
|
$city
|
||||||
);
|
);
|
||||||
|
|
||||||
return $this->addAuthorizations($query);
|
return $this->addAuthorizations($query);
|
||||||
|
@ -1,15 +1,22 @@
|
|||||||
import { createApp } from 'vue';
|
import {createApp} from 'vue';
|
||||||
import { _createI18n } from 'ChillMainAssets/vuejs/_js/i18n';
|
import {_createI18n} from 'ChillMainAssets/vuejs/_js/i18n';
|
||||||
import { store } from './store';
|
import {store} from './store';
|
||||||
import { personMessages } from 'ChillPersonAssets/vuejs/_js/i18n'
|
import {personMessages} from 'ChillPersonAssets/vuejs/_js/i18n'
|
||||||
import App from './App.vue';
|
import App from './App.vue';
|
||||||
|
import VueToast from "vue-toast-notification";
|
||||||
|
|
||||||
const i18n = _createI18n(personMessages);
|
const i18n = _createI18n(personMessages);
|
||||||
|
|
||||||
const app = createApp({
|
const app = createApp({
|
||||||
template: `<app></app>`,
|
template: `<app></app>`,
|
||||||
})
|
})
|
||||||
.use(store)
|
.use(store)
|
||||||
.use(i18n)
|
.use(i18n)
|
||||||
.component('app', App)
|
.use(VueToast, {
|
||||||
.mount('#accompanying_course_work_create');
|
position: "bottom-right",
|
||||||
|
type: "error",
|
||||||
|
duration: 10000,
|
||||||
|
dismissible: true,
|
||||||
|
})
|
||||||
|
.component('app', App)
|
||||||
|
.mount('#accompanying_course_work_create');
|
||||||
|
@ -107,6 +107,9 @@ const store = createStore({
|
|||||||
setPostingWork(state) {
|
setPostingWork(state) {
|
||||||
state.isPostingWork = true;
|
state.isPostingWork = true;
|
||||||
},
|
},
|
||||||
|
setPostingWorkDone(state) {
|
||||||
|
state.isPostingWork = false;
|
||||||
|
},
|
||||||
setStartDate(state, date) {
|
setStartDate(state, date) {
|
||||||
state.startDate = date;
|
state.startDate = date;
|
||||||
},
|
},
|
||||||
@ -150,11 +153,12 @@ const store = createStore({
|
|||||||
const url = `/api/1.0/person/accompanying-course/${state.accompanyingCourse.id}/work.json`;
|
const url = `/api/1.0/person/accompanying-course/${state.accompanyingCourse.id}/work.json`;
|
||||||
commit('setPostingWork');
|
commit('setPostingWork');
|
||||||
|
|
||||||
makeFetch('POST', url, payload)
|
return makeFetch('POST', url, payload)
|
||||||
.then((response) => {
|
.then((response) => {
|
||||||
window.location.assign(`/fr/person/accompanying-period/work/${response.id}/edit`)
|
window.location.assign(`/fr/person/accompanying-period/work/${response.id}/edit`)
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
|
commit('setPostingWorkDone');
|
||||||
throw error;
|
throw error;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@ -549,7 +549,14 @@ export default {
|
|||||||
.catch(e => { console.log(e); throw e; });
|
.catch(e => { console.log(e); throw e; });
|
||||||
},
|
},
|
||||||
submit() {
|
submit() {
|
||||||
this.$store.dispatch('submit');
|
this.$store.dispatch('submit').catch((error) => {
|
||||||
|
if (error.name === 'ValidationException' || error.name === 'AccessException') {
|
||||||
|
error.violations.forEach((violation) => this.$toast.open({message: violation}));
|
||||||
|
} else {
|
||||||
|
this.$toast.open({message: 'An error occurred'});
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
});
|
||||||
},
|
},
|
||||||
saveFormOnTheFly(payload) {
|
saveFormOnTheFly(payload) {
|
||||||
console.log('saveFormOnTheFly: type', payload.type, ', data', payload.data);
|
console.log('saveFormOnTheFly: type', payload.type, ', data', payload.data);
|
||||||
|
@ -15,7 +15,7 @@ const app = createApp({
|
|||||||
.use(VueToast, {
|
.use(VueToast, {
|
||||||
position: "bottom-right",
|
position: "bottom-right",
|
||||||
type: "error",
|
type: "error",
|
||||||
duration: 5000,
|
duration: 10000,
|
||||||
dismissible: true
|
dismissible: true
|
||||||
})
|
})
|
||||||
.use(i18n)
|
.use(i18n)
|
||||||
|
@ -500,9 +500,8 @@ const store = createStore({
|
|||||||
window.location.assign(`/fr/person/accompanying-period/${state.work.accompanyingPeriod.id}/work`);
|
window.location.assign(`/fr/person/accompanying-period/${state.work.accompanyingPeriod.id}/work`);
|
||||||
}
|
}
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
console.log('error on submit', error);
|
|
||||||
commit('setIsPosting', false);
|
commit('setIsPosting', false);
|
||||||
commit('setErrors', error.violations);
|
throw error;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
updateDocumentTitle({commit}, payload) {
|
updateDocumentTitle({commit}, payload) {
|
||||||
|
@ -36,7 +36,7 @@
|
|||||||
{%- macro links(person, options) -%}
|
{%- macro links(person, options) -%}
|
||||||
<ul>
|
<ul>
|
||||||
|
|
||||||
<li><b>{{ person.counters.nb_activity }}</b> {{ (person.counters.nb_activity > 1)? 'activités' : 'activité' }}</li>
|
<li><b>{{ person.counters.nb_activity }}</b> {{ (person.counters.nb_activity > 1)? 'échanges' : 'échange' }}</li>
|
||||||
<li><b>{{ person.counters.nb_task }}</b> {{ (person.counters.nb_task > 1)? 'tâches' : 'tâche' }}</li>
|
<li><b>{{ person.counters.nb_task }}</b> {{ (person.counters.nb_task > 1)? 'tâches' : 'tâche' }}</li>
|
||||||
<li><b>{{ person.counters.nb_document }}</b> {{ (person.counters.nb_document > 1)? 'documents' : 'document' }}</li>
|
<li><b>{{ person.counters.nb_document }}</b> {{ (person.counters.nb_document > 1)? 'documents' : 'document' }}</li>
|
||||||
<li><b>{{ person.counters.nb_event }}</b> {{ (person.counters.nb_event > 1)? 'événements' : 'événement' }}</li>
|
<li><b>{{ person.counters.nb_event }}</b> {{ (person.counters.nb_event > 1)? 'événements' : 'événement' }}</li>
|
||||||
|
@ -84,15 +84,19 @@ class SearchHouseholdApiProvider implements SearchApiInterface
|
|||||||
count($phoneResult->getFound()) > 0 ? $phoneResult->getFound()[0] : null
|
count($phoneResult->getFound()) > 0 ? $phoneResult->getFound()[0] : null
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$previousFrom = $query->getFromClause();
|
||||||
|
$previousParams = $query->getFromParams();
|
||||||
|
|
||||||
$query
|
$query
|
||||||
->setDistinct(true, 'household_id')
|
->setDistinct(true, 'cpphm.household_id')
|
||||||
->setFromClause(
|
->setFromClause(
|
||||||
'view_chill_person_household_address AS vcpha ' .
|
$previousFrom . ' '.
|
||||||
'JOIN chill_person_person AS person ON vcpha.person_id = person.id'
|
'JOIN chill_person_household_members AS cpphm ON cpphm.person_id = person.id',
|
||||||
|
$previousParams
|
||||||
)
|
)
|
||||||
|
->andWhereClause('(cpphm.startDate <= NOW() AND (cpphm.endDate IS NULL or cpphm.endDate > NOW()))')
|
||||||
->setSelectKey('household')
|
->setSelectKey('household')
|
||||||
->andWhereClause('vcpha.validTo IS NULL', [])
|
->setSelectJsonbMetadata("jsonb_build_object('id', cpphm.household_id)");
|
||||||
->setSelectJsonbMetadata("jsonb_build_object('id', vcpha.household_id)");
|
|
||||||
|
|
||||||
return $query;
|
return $query;
|
||||||
}
|
}
|
||||||
|
@ -47,8 +47,8 @@ Phonenumber: 'Numéro de téléphone'
|
|||||||
phonenumber: numéro de téléphone
|
phonenumber: numéro de téléphone
|
||||||
Mobilenumber: 'Numéro de téléphone portable'
|
Mobilenumber: 'Numéro de téléphone portable'
|
||||||
mobilenumber: numéro de téléphone portable
|
mobilenumber: numéro de téléphone portable
|
||||||
Accept short text message ?: La personne a donné l'autorisation d'utiliser ce no de téléphone pour l'envoi de rappel par SMS
|
Accept short text message ?: L'usager a donné l'autorisation d'utiliser ce no de téléphone pour l'envoi de rappel par SMS
|
||||||
Accept short text message: La personne a donné l'autorisation d'utiliser ce no de téléphone pour l'envoi de rappel par SMS
|
Accept short text message: L'usager a donné l'autorisation d'utiliser ce no de téléphone pour l'envoi de rappel par SMS
|
||||||
Other phonenumber: Autre numéro de téléphone
|
Other phonenumber: Autre numéro de téléphone
|
||||||
Others phone numbers: Autres numéros de téléphone
|
Others phone numbers: Autres numéros de téléphone
|
||||||
No additional phone numbers: Aucun numéro de téléphone supplémentaire
|
No additional phone numbers: Aucun numéro de téléphone supplémentaire
|
||||||
@ -85,9 +85,9 @@ Course number: Parcours n°
|
|||||||
Civility: Civilité
|
Civility: Civilité
|
||||||
choose civility: --
|
choose civility: --
|
||||||
All genders: tous les genres
|
All genders: tous les genres
|
||||||
Any person selected: Aucune personne sélectionnée
|
Any person selected: Aucun usager sélectionné
|
||||||
Create a household and add an address: Ajouter une adresse pour une personne non suivie et seule dans un ménage
|
Create a household and add an address: Ajouter une adresse pour un usager non suivie et seule dans un ménage
|
||||||
A new household will be created. The person will be member of this household.: Un nouveau ménage va être créé. La personne sera membre de ce ménage.
|
A new household will be created. The person will be member of this household.: Un nouveau ménage va être créé. L'usager sera membre de ce ménage.
|
||||||
Comment on the gender: Commentaire sur le genre
|
Comment on the gender: Commentaire sur le genre
|
||||||
genderComment: Commentaire sur le genre
|
genderComment: Commentaire sur le genre
|
||||||
maritalStatus: État civil
|
maritalStatus: État civil
|
||||||
@ -136,10 +136,10 @@ address_country_name: Pays
|
|||||||
address_country_code: Code pays
|
address_country_code: Code pays
|
||||||
|
|
||||||
'Alreay existing person': 'Dossiers déjà encodés'
|
'Alreay existing person': 'Dossiers déjà encodés'
|
||||||
'Add the person': 'Ajouter la personne'
|
'Add the person': "Ajouter l'usager"
|
||||||
'Add the person and create an accompanying period': "Créer la personne ET créer une période d'accompagnement"
|
'Add the person and create an accompanying period': "Créer l'usager et créer un parcours d'accompagnement"
|
||||||
'Add the person and create a household': "Créer la personne ET créer un ménage"
|
'Add the person and create a household': "Créer l'usager et créer un ménage"
|
||||||
Show person: Voir le dossier de la personne
|
Show person: Voir le dossier de l'usager
|
||||||
'Confirm the creation': 'Confirmer la création'
|
'Confirm the creation': 'Confirmer la création'
|
||||||
'You will create this person': 'Vous allez créer le dossier suivant'
|
'You will create this person': 'Vous allez créer le dossier suivant'
|
||||||
Return: Retour
|
Return: Retour
|
||||||
@ -148,51 +148,51 @@ Reset: 'Remise à zéro'
|
|||||||
'The person data has been updated': 'Les données ont été mises à jour.'
|
'The person data has been updated': 'Les données ont été mises à jour.'
|
||||||
'The person data provided are not valid': 'Les données introduites ne sont pas valides'
|
'The person data provided are not valid': 'Les données introduites ne sont pas valides'
|
||||||
'{1} The person field %field% is incorrect. Please check. | ]1, Inf] Several person fields are incorrect. Please check.': '{1} Le champs %field% est incorrect. Veuillez le corriger. | ]1, Inf] Plusieurs champs sont incorrects. Veuillez les vérifier.'
|
'{1} The person field %field% is incorrect. Please check. | ]1, Inf] Several person fields are incorrect. Please check.': '{1} Le champs %field% est incorrect. Veuillez le corriger. | ]1, Inf] Plusieurs champs sont incorrects. Veuillez les vérifier.'
|
||||||
'Add a person': 'Ajout d''une personne'
|
'Add a person': 'Ajout d''un usager'
|
||||||
'Person Menu': 'Menu personne'
|
'Person Menu': 'Menu usager'
|
||||||
'The person data are not valid': 'Les données de votre formulaire sont invalides.'
|
'The person data are not valid': 'Les données de votre formulaire sont invalides.'
|
||||||
'%nb% person with similar name. Please verify that this is a new person': '{1} Une personne a un nom similaire. Vérifiez qu''il ne s''agit pas d''elle. | ]1, Inf] %nb% personnes ont un nom similaire. Vérifiez qu''il ne s''agit pas de l''une d''elles.'
|
'%nb% person with similar name. Please verify that this is a new person': '{1} Une usager a un nom similaire. Vérifiez qu''il ne s''agit pas d''elle. | ]1, Inf] %nb% usagers ont un nom similaire. Vérifiez qu''il ne s''agit pas de l''une d''elles.'
|
||||||
'The person has been created': 'Le dossier a été créé'
|
'The person has been created': 'Le dossier a été créé'
|
||||||
'Person search results': 'Recherche de personnes'
|
'Person search results': 'Recherche de usagers'
|
||||||
Person search results by phonenumber: Recherche de personnes par numéro de téléphone
|
Person search results by phonenumber: Recherche d'usager par numéro de téléphone
|
||||||
'Search within persons': 'Recherche parmi les personnes'
|
'Search within persons': 'Recherche parmi les usagers'
|
||||||
Open person file: Ouvrir le dossier de la personne
|
Open person file: Ouvrir le dossier de l'usager
|
||||||
and %number% other: '{0} et aucun autre| {1} et une autre |]1, Inf] et %number% autres'
|
and %number% other: '{0} et aucun autre| {1} et une autre |]1, Inf] et %number% autres'
|
||||||
'%total% persons matching the search pattern:': '{0} Aucune personne ne correspond aux termes de recherche : | {1} Une personne a été trouvée par la recherche : | ]1,Inf] %total% personnes correspondent aux termes de recherche :'
|
'%total% persons matching the search pattern:': '{0} Aucune usager ne correspond aux termes de recherche : | {1} Un usager a été trouvé par la recherche : | ]1,Inf] %total% usagers correspondent aux termes de recherche :'
|
||||||
'Last opening since %last_opening%': 'Dernière ouverture le %last_opening%.'
|
'Last opening since %last_opening%': 'Dernière ouverture le %last_opening%.'
|
||||||
'Person accompanying period - %name%': 'Historique du dossier - %name%'
|
'Person accompanying period - %name%': 'Historique du dossier - %name%'
|
||||||
'Opening date': 'Date d''ouverture'
|
'Opening date': 'Date d''ouverture'
|
||||||
'Closing date': 'Date de clôture'
|
'Closing date': 'Date de clôture'
|
||||||
'Period opened': 'Période ouverte'
|
'Period opened': 'Période ouverte'
|
||||||
'Close accompanying period': 'Clôre la période'
|
'Close accompanying period': 'Clôre le parcours'
|
||||||
'Open accompanying period': 'Ouvrir la période'
|
'Open accompanying period': 'Ouvrir le parcours'
|
||||||
Period number %number%: 'Période n° %number%'
|
Period number %number%: 'Période n° %number%'
|
||||||
'Add an accompanying period in the past': Ajouter une période d'accompagnement dans le passé
|
'Add an accompanying period in the past': Ajouter un parcours d'accompagnement dans le passé
|
||||||
Begin a new accompanying period: Commencer une nouvelle période d'accompagnement
|
Begin a new accompanying period: Commencer un nouveau parcours d'accompagnement
|
||||||
Create an accompanying period: Créer une période d'accompagnement
|
Create an accompanying period: Créer un parcours d'accompagnement
|
||||||
'A period has been created.': Une période d'accompagnement a été créée.
|
'A period has been created.': Un parcours d'accompagnement a été créé.
|
||||||
'Error! Period not created!': La période d'accompagnement n'a pas été créée.
|
'Error! Period not created!': Le parcours d'accompagnement n'a pas été créé.
|
||||||
Update accompanying period: Mettre à jour une période d'accompagnement
|
Update accompanying period: Mettre à jour un parcours d'accompagnement
|
||||||
'An accompanying period has been updated.': Une période d'accompagnement a été mise à jour
|
'An accompanying period has been updated.': Un parcours d'accompagnement a été mise à jour
|
||||||
'Error when updating the period': Erreur pendant la mise à jour de la période d'accompagnement.
|
'Error when updating the period': Erreur pendant la mise à jour du parcours d'accompagnement.
|
||||||
'An accompanying period has been closed.': Une période d'accompagnement a été fermée.
|
'An accompanying period has been closed.': Un parcours d'accompagnement a été fermée.
|
||||||
'Error! Period not closed!': "Erreur: la période d'accompagnement n'a pas été fermée."
|
'Error! Period not closed!': "Erreur: le parcours d'accompagnement n'a pas été fermé."
|
||||||
'An accompanying period has been opened.': Une période d'accompagnement a été ouverte.
|
'An accompanying period has been opened.': Un parcours d'accompagnement a été ouvert.
|
||||||
'No remark': Pas de remarque
|
'No remark': Pas de remarque
|
||||||
'Period not opened': "La période d'accompagnement n'a pas été ouverte"
|
'Period not opened': "Le parcours d'accompagnement n'a pas été ouvert"
|
||||||
"Period not opened : form is invalid": "La période n'a pas été ouverte: le formulaire est invalide."
|
"Period not opened : form is invalid": "Le parcours d'accompagnement n'a pas été ouverte: le formulaire est invalide."
|
||||||
'Closing motive': 'Motif de clôture'
|
'Closing motive': 'Motif de clôture'
|
||||||
This course is closed: Ce parcours est clôturé
|
This course is closed: Ce parcours est clôturé
|
||||||
Close accompanying course: Clôturer le parcours
|
Close accompanying course: Clôturer le parcours
|
||||||
Re-open accompanying course: Ré-ouvrir le parcours
|
Re-open accompanying course: Ré-ouvrir le parcours
|
||||||
'Person details': 'Détails de la personne'
|
'Person details': "Détails de l'usager"
|
||||||
'Update details for %name%': 'Modifier détails de %name%'
|
'Update details for %name%': 'Modifier détails de %name%'
|
||||||
An accompanying period ends: Une periode d'accompagnement se clôture
|
An accompanying period ends: Un parcours d'accompagnement se clôture
|
||||||
An accompanying period starts: Une période d'accompagnement est ouverte
|
An accompanying period starts: Un parcours d'accompagnement est ouvert
|
||||||
Any accompanying periods are open: Aucune période d'accompagnement ouverte
|
Any accompanying periods are open: Aucune parcours d'accompagnement ouvert
|
||||||
An accompanying period is open: Une période d'accompagnement est ouverte
|
An accompanying period is open: Un parcours d'accompagnement est ouvert
|
||||||
Accompanying period list: Périodes d'accompagnement
|
Accompanying period list: Parcours d'accompagnement
|
||||||
Accompanying period list for person: Périodes d'accompagnement de la personne
|
Accompanying period list for person: Parcours d'accompagnement de l'usager
|
||||||
Accompanying period: Parcours d'accompagnement
|
Accompanying period: Parcours d'accompagnement
|
||||||
Any accompanying period: Aucun parcours d'accompagnement
|
Any accompanying period: Aucun parcours d'accompagnement
|
||||||
period: Parcours
|
period: Parcours
|
||||||
@ -200,17 +200,17 @@ New accompanying course: Nouveau parcours d'accompagnement
|
|||||||
Choose a motive: Motif de fermeture
|
Choose a motive: Motif de fermeture
|
||||||
Re-open accompanying period: Ré-ouvrir
|
Re-open accompanying period: Ré-ouvrir
|
||||||
Re-Open a period: Ré-ouvrir
|
Re-Open a period: Ré-ouvrir
|
||||||
Are you sure you want to re-open this period ?: Êtes-vous sûr de vouloir ré-ouvrir cette période d'accompagnement ?
|
Are you sure you want to re-open this period ?: Êtes-vous sûr de vouloir ré-ouvrir cet parcours d'accompagnement ?
|
||||||
'The period has been re-opened': La période d'accompagnement a été ré-ouverte.
|
'The period has been re-opened': Le parcours d'accompagnement a été ré-ouverte.
|
||||||
Pediod closing form is not valid: Le formulaire n'est pas valide
|
Pediod closing form is not valid: Le formulaire n'est pas valide
|
||||||
Accompanying user: Accompagnant
|
Accompanying user: Accompagnant
|
||||||
No accompanying user: Aucun accompagnant
|
No accompanying user: Aucun accompagnant
|
||||||
No data given: Pas d'information
|
No data given: Pas d'information
|
||||||
Participants: Personnes impliquées
|
Participants: Usagers impliquées
|
||||||
Create an accompanying course: Créer un parcours
|
Create an accompanying course: Créer un parcours
|
||||||
Accompanying courses of users: Parcours des utilisateurs
|
Accompanying courses of users: Parcours des utilisateurs
|
||||||
This accompanying course is still a draft: Ce parcours est encore à l'état brouillon.
|
This accompanying course is still a draft: Ce parcours est encore à l'état brouillon.
|
||||||
Associated peoples: Personnes concernées
|
Associated peoples: Usagers concernées
|
||||||
Resources: Interlocuteurs privilégiés
|
Resources: Interlocuteurs privilégiés
|
||||||
Any requestor to this accompanying course: Aucun demandeur pour ce parcours
|
Any requestor to this accompanying course: Aucun demandeur pour ce parcours
|
||||||
Social action: Action d'accompagnement
|
Social action: Action d'accompagnement
|
||||||
@ -222,47 +222,47 @@ Social issues: Problématiques sociales
|
|||||||
Pick a social issue: Choisir une problématique sociale
|
Pick a social issue: Choisir une problématique sociale
|
||||||
Last events on accompanying course: Dernières actions de suivi
|
Last events on accompanying course: Dernières actions de suivi
|
||||||
Edit & activate accompanying course: Modifier et valider
|
Edit & activate accompanying course: Modifier et valider
|
||||||
See accompanying periods: Voir toutes les périodes d'accompagnement
|
See accompanying periods: Voir tous les parcours d'accompagnement
|
||||||
See accompanying period: Voir la période
|
See accompanying period: Voir le parcours
|
||||||
Edit accompanying period: Modifier la période
|
Edit accompanying period: Modifier le parcours
|
||||||
See this period: Voir cette période
|
See this period: Voir cet parcours
|
||||||
Requestor: Demandeur
|
Requestor: Demandeur
|
||||||
No requestor: Pas de demandeur
|
No requestor: Pas de demandeur
|
||||||
No resources: "Pas d'interlocuteurs privilégiés"
|
No resources: "Pas d'interlocuteurs privilégiés"
|
||||||
Persons associated: Personnes concernés
|
Persons associated: Usagers concernés
|
||||||
Referrer: Référent
|
Referrer: Référent
|
||||||
Referrers: Agents traitants
|
Referrers: Agents traitants
|
||||||
Referrer2: Agent traitant
|
Referrer2: Agent traitant
|
||||||
No referrer: Pas d'agent traitant
|
No referrer: Pas d'agent traitant
|
||||||
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 ménage dès que possible.
|
Some peoples does not belong to any household currently. Add them to an household soon: Certains usagers n'appartiennent à aucun ménage actuellement. Renseignez leur ménage dès que possible.
|
||||||
Add to household now: Ajouter à un ménage
|
Add to household now: Ajouter à un ménage
|
||||||
Any resource for this accompanying course: Aucun interlocuteur privilégié pour ce parcours
|
Any resource for this accompanying course: Aucun interlocuteur privilégié pour ce parcours
|
||||||
course.draft: Brouillon
|
course.draft: Brouillon
|
||||||
course.closed: Clôturé
|
course.closed: Clôturé
|
||||||
Origin: Origine de la demande
|
Origin: Origine de la demande
|
||||||
Delete accompanying period: Supprimer la période d'accompagnement
|
Delete accompanying period: Supprimer le parcours d'accompagnement
|
||||||
Are you sure you want to remove the accompanying period "%id%" ?: Êtes-vous sûr de vouloir supprimer la période d'accompagnement %id% ?
|
Are you sure you want to remove the accompanying period "%id%" ?: Êtes-vous sûr de vouloir supprimer le parcours d'accompagnement %id% ?
|
||||||
The accompanying course has been successfully removed.: La période d'accompagnement a été supprimée.
|
The accompanying course has been successfully removed.: Le parcours d'accompagnement a été supprimé.
|
||||||
Concerned scopes: Services concernés
|
Concerned scopes: Services concernés
|
||||||
|
|
||||||
# person resource
|
# person resource
|
||||||
person_resources_menu: "Personnes ressources"
|
person_resources_menu: "Personnes ressources"
|
||||||
Person resources: "Ressources de la personne"
|
Person resources: "Personnes ressources de l'usager"
|
||||||
Add a person resource: "Ajouter une ressource"
|
Add a person resource: "Ajouter une person ressource"
|
||||||
edit resource: "Modifier ressource"
|
edit resource: "Modifier la ressource"
|
||||||
Remove resource: "Supprimer ressource"
|
Remove resource: "Supprimer la ressource"
|
||||||
Are you sure you want to remove the resource for "%name%" ?: Étes-vous sûr de vouloir supprimer cette ressource de %name%?
|
Are you sure you want to remove the resource for "%name%" ?: Étes-vous sûr de vouloir supprimer cette ressource de %name%?
|
||||||
The resource has been successfully removed.: "La ressource a été supprimée."
|
The resource has been successfully removed.: "La ressource a été supprimée."
|
||||||
List of resources: "Liste des ressources"
|
List of resources: "Liste des personnes ressources"
|
||||||
There are no available resources: "Aucun ressource"
|
There are no available resources: "Aucun personne ressource"
|
||||||
no comment found: "Aucun commentaire"
|
no comment found: "Aucun commentaire"
|
||||||
Select a type: "Choisissez un type"
|
Select a type: "Choisissez un type"
|
||||||
Select a person: "Choisissez une personne"
|
Select a person: "Choisissez un usager"
|
||||||
Kind: "Type"
|
Kind: "Type"
|
||||||
|
|
||||||
|
|
||||||
# pickAPersonType
|
# pickAPersonType
|
||||||
Pick a person: Choisir une personne
|
Pick a person: Choisir un usager
|
||||||
|
|
||||||
# Address
|
# Address
|
||||||
No address given: Pas d'adresse renseignée
|
No address given: Pas d'adresse renseignée
|
||||||
@ -277,19 +277,19 @@ New address : Nouvelle adresse
|
|||||||
New address for %name% : Nouvelle adresse pour %name%
|
New address for %name% : Nouvelle adresse pour %name%
|
||||||
The new address was created successfully: La nouvelle adresse a été créée
|
The new address was created successfully: La nouvelle adresse a été créée
|
||||||
Add an address: Ajouter une adresse
|
Add an address: Ajouter une adresse
|
||||||
Back to the person details: Retour aux détails de la personne
|
Back to the person details: Retour aux détails de l'usager
|
||||||
|
|
||||||
# Residential address
|
# Residential address
|
||||||
Residential addresses history for %name%: Historique des adresses de résidence de %name%
|
Residential addresses history for %name%: Historique des adresses de résidence de %name%
|
||||||
Residential addresses history: Historique des adresses de résidence
|
Residential addresses history: Historique des adresses de résidence
|
||||||
Add a residential address: Ajouter une adresse de résidence
|
Add a residential address: Ajouter une adresse de résidence
|
||||||
Which kind of residential address would you create ?: Quel type d'adresse de résidence voulez-vous créer?
|
Which kind of residential address would you create ?: Quel type d'adresse de résidence voulez-vous créer?
|
||||||
The address of another person: L'adresse d'une autre personne
|
The address of another person: L'adresse d'une autre usager
|
||||||
A new address: Une nouvelle adresse
|
A new address: Une nouvelle adresse
|
||||||
residential_address_person_explanation: L'adresse sera positionnée auprès d'une personne. Lorsque la personne déménage, l'adresse de résidence suivra également cette personne
|
residential_address_person_explanation: L'adresse sera positionnée auprès d'un usager. Lorsque l'usager déménage, l'adresse de résidence suivra également cette usager
|
||||||
residential_address_new_address_explanation: Créer une nouvelle adresse. L'adresse sera fixe.
|
residential_address_new_address_explanation: Créer une nouvelle adresse. L'adresse sera fixe.
|
||||||
New residential address: Nouvelle adresse de résidence
|
New residential address: Nouvelle adresse de résidence
|
||||||
Host person: Choisir l'adresse d'une personne
|
Host person: Choisir l'adresse d'un usager
|
||||||
The new residential address was created successfully: La nouvelle adresse de résidence a été créée
|
The new residential address was created successfully: La nouvelle adresse de résidence a été créée
|
||||||
Edit a residential address: Modifier l'addresse de résidence
|
Edit a residential address: Modifier l'addresse de résidence
|
||||||
The residential address was updated successfully: L'adresse de résidence a été mise à jour
|
The residential address was updated successfully: L'adresse de résidence a été mise à jour
|
||||||
@ -303,29 +303,29 @@ Residential address had been deleted: L'adresse de résidence a été supprimée
|
|||||||
|
|
||||||
#timeline
|
#timeline
|
||||||
Timeline: Historique
|
Timeline: Historique
|
||||||
Closing the accompanying period: Fermeture de la période d'accompagnement
|
Closing the accompanying period: Fermeture du parcours d'accompagnement
|
||||||
Opening the accompanying period: Ouverture d'une période d'accompagnement
|
Opening the accompanying period: Ouverture d'un parcours d'accompagnement
|
||||||
'Timeline for %name%': 'Historique de %name%'
|
'Timeline for %name%': 'Historique de %name%'
|
||||||
|
|
||||||
# ROLES
|
# ROLES
|
||||||
CHILL_PERSON_SEE: Voir les personnes
|
CHILL_PERSON_SEE: Voir les usagers
|
||||||
CHILL_PERSON_UPDATE: Modifier les personnes
|
CHILL_PERSON_UPDATE: Modifier les usagers
|
||||||
CHILL_PERSON_CREATE: Ajouter des personnes
|
CHILL_PERSON_CREATE: Ajouter des usagers
|
||||||
CHILL_PERSON_STATS: Statistiques sur les personnes
|
CHILL_PERSON_STATS: Statistiques sur les usagers
|
||||||
CHILL_PERSON_LISTS: Liste des personnes
|
CHILL_PERSON_LISTS: Liste des usagers
|
||||||
CHILL_PERSON_DUPLICATE: Gérer les doublons de personnes
|
CHILL_PERSON_DUPLICATE: Gérer les doublons d'usagers
|
||||||
|
|
||||||
CHILL_PERSON_ACCOMPANYING_PERIOD_SEE: Vision simplifiée d'une période d'accompagnement
|
CHILL_PERSON_ACCOMPANYING_PERIOD_SEE: Vision simplifiée d'un parcours d'accompagnement
|
||||||
CHILL_PERSON_ACCOMPANYING_PERIOD_CONFIDENTIAL: Voir et modifier les périodes d'accompagnement confidentielles
|
CHILL_PERSON_ACCOMPANYING_PERIOD_CONFIDENTIAL: Voir et modifier les parcours d'accompagnement confidentielles
|
||||||
CHILL_PERSON_ACCOMPANYING_PERIOD_DELETE: Supprimer une période d'accompagnement
|
CHILL_PERSON_ACCOMPANYING_PERIOD_DELETE: Supprimer un pacours d'accompagnement
|
||||||
CHILL_PERSON_ACCOMPANYING_PERIOD_RE_OPEN: Ré-ouvrir un parcours clotûré
|
CHILL_PERSON_ACCOMPANYING_PERIOD_RE_OPEN: Ré-ouvrir un parcours clotûré
|
||||||
CHILL_PERSON_ACCOMPANYING_PERIOD_TOGGLE_CONFIDENTIAL_ALL: Modifier la confidentialité de tous les parcours
|
CHILL_PERSON_ACCOMPANYING_PERIOD_TOGGLE_CONFIDENTIAL_ALL: Modifier la confidentialité de tous les parcours
|
||||||
CHILL_PERSON_ACCOMPANYING_PERIOD_CRUD_CONFIDENTIAL: Voir les périodes d'accompagnement confidentielles
|
CHILL_PERSON_ACCOMPANYING_PERIOD_CRUD_CONFIDENTIAL: Voir les parcours d'accompagnement confidentiels
|
||||||
CHILL_PERSON_ACCOMPANYING_PERIOD_CREATE: Créer une période d'accompagnement
|
CHILL_PERSON_ACCOMPANYING_PERIOD_CREATE: Créer un parcours d'accompagnement
|
||||||
CHILL_PERSON_ACCOMPANYING_PERIOD_UPDATE: Modifier une période d'accompagnement
|
CHILL_PERSON_ACCOMPANYING_PERIOD_UPDATE: Modifier un parcours d'accompagnement
|
||||||
CHILL_PERSON_ACCOMPANYING_PERIOD_FULL: Voir les détails, créer, supprimer et mettre à jour une période d'accompagnement
|
CHILL_PERSON_ACCOMPANYING_PERIOD_FULL: Voir les détails, créer, supprimer et mettre à jour un parcours d'accompagnement
|
||||||
CHILL_PERSON_ACCOMPANYING_COURSE_REASSIGN_BULK: Réassigner les parcours en lot
|
CHILL_PERSON_ACCOMPANYING_COURSE_REASSIGN_BULK: Réassigner les parcours en lot
|
||||||
CHILL_PERSON_ACCOMPANYING_PERIOD_SEE_DETAILS: Voir les détails d'une période d'accompagnement
|
CHILL_PERSON_ACCOMPANYING_PERIOD_SEE_DETAILS: Voir les détails d'un parcours d'accompagnement
|
||||||
CHILL_PERSON_ACCOMPANYING_PERIOD_STATS: Statistiques sur les parcours d'accompagnement
|
CHILL_PERSON_ACCOMPANYING_PERIOD_STATS: Statistiques sur les parcours d'accompagnement
|
||||||
|
|
||||||
CHILL_MAIN_ACCOMPANYING_PERIOD_WORK_CREATE: Créer une action d'accompagnement
|
CHILL_MAIN_ACCOMPANYING_PERIOD_WORK_CREATE: Créer une action d'accompagnement
|
||||||
@ -342,28 +342,28 @@ CHILL_PERSON_HOUSEHOLD_EDIT: Modifier les ménages
|
|||||||
CHILL_PERSON_HOUSEHOLD_STATS: Statistiques sur les ménages
|
CHILL_PERSON_HOUSEHOLD_STATS: Statistiques sur les ménages
|
||||||
|
|
||||||
#period
|
#period
|
||||||
Period closed!: Période clôturée!
|
Period closed!: Parcours clôturé!
|
||||||
Pediod closing form is not valide: Le formulaire de fermeture n'est pas valide
|
Pediod closing form is not valide: Le formulaire de fermeture n'est pas valide
|
||||||
|
|
||||||
#widget
|
#widget
|
||||||
|
|
||||||
## widget person_list
|
## widget person_list
|
||||||
Accompanyied people: Personnes accompagnées
|
Accompanyied people: Usagers accompagnés
|
||||||
|
|
||||||
## exports
|
## exports
|
||||||
Exports of persons: Exports des personnes
|
Exports of persons: Exports des usagers
|
||||||
Count people by various parameters.: Compte le nombre de personnes en fonction de différents filtres.
|
Count people by various parameters.: Compte le nombre d'usagers en fonction de différents filtres.
|
||||||
Count people: Nombre de personnes
|
Count people: Nombre d'usagers
|
||||||
List peoples: Liste des personnes
|
List peoples: Liste des usagers
|
||||||
Create a list of people according to various filters.: Crée une liste des personnes selon différents filtres.
|
Create a list of people according to various filters.: Crée une liste d'usagers selon différents filtres.
|
||||||
Fields to include in export: Champs à inclure dans l'export
|
Fields to include in export: Champs à inclure dans l'export
|
||||||
Address valid at this date: Addresse valide à cette date
|
Address valid at this date: Addresse valide à cette date
|
||||||
Data valid at this date: Données valides à cette date
|
Data valid at this date: Données valides à cette date
|
||||||
Data regarding center, addresses, and so on will be computed at this date: Les données concernant le centre, l'adresse, le ménage, sera calculé à cette date.
|
Data regarding center, addresses, and so on will be computed at this date: Les données concernant le centre, l'adresse, le ménage, sera calculé à cette date.
|
||||||
List duplicates: Liste des doublons
|
List duplicates: Liste des doublons
|
||||||
Create a list of duplicate people: Créer la liste des personnes détectées comme doublons.
|
Create a list of duplicate people: Créer la liste des usagers détectés comme doublons.
|
||||||
Count people participating in an accompanying course: Nombre de personnes concernées par un parcours
|
Count people participating in an accompanying course: Nombre d'usagers concernés par un parcours
|
||||||
Count people participating in an accompanying course by various parameters.: Compte le nombre de personnes concernées par un parcours
|
Count people participating in an accompanying course by various parameters.: Compte le nombre d'usagers concernées par un parcours
|
||||||
|
|
||||||
Exports of accompanying courses: Exports des parcours d'accompagnement
|
Exports of accompanying courses: Exports des parcours d'accompagnement
|
||||||
Count accompanying courses: Nombre de parcours
|
Count accompanying courses: Nombre de parcours
|
||||||
@ -384,33 +384,33 @@ Count evaluation by various parameters.: Compte le nombre d'évaluations selon d
|
|||||||
Exports of households: Exports des ménages
|
Exports of households: Exports des ménages
|
||||||
|
|
||||||
## persons filters
|
## persons filters
|
||||||
Filter by person gender: Filtrer les personnes par genre
|
Filter by person gender: Filtrer les usagers par genre
|
||||||
Accepted genders: Genres acceptés
|
Accepted genders: Genres acceptés
|
||||||
'Filtering by genders: only %genders%': 'Filtré par genre: seulement %genders%'
|
'Filtering by genders: only %genders%': 'Filtré par genre: seulement %genders%'
|
||||||
|
|
||||||
Filter by person's nationality: Filtrer les personnes par nationalité
|
Filter by person's nationality: Filtrer les usagers par nationalité
|
||||||
Nationalities: Nationalités
|
Nationalities: Nationalités
|
||||||
Choose countries: Choisir les nationalités
|
Choose countries: Choisir les nationalités
|
||||||
'Filtered by nationality : %nationalities%': 'Filtré par nationalité : seulement %nationalities%'
|
'Filtered by nationality : %nationalities%': 'Filtré par nationalité : seulement %nationalities%'
|
||||||
|
|
||||||
Filter by person's birthdate: Filtrer les personnes par date de naissance
|
Filter by person's birthdate: Filtrer les usagers par date de naissance
|
||||||
Born after this date: Nés après cette date
|
Born after this date: Nés après cette date
|
||||||
Born before this date: Nés avant cette date
|
Born before this date: Nés avant cette date
|
||||||
This field should not be empty: Ce champ ne peut pas être vide
|
This field should not be empty: Ce champ ne peut pas être vide
|
||||||
This date should be after the date given in "born after" field: Cette date doit être après la date donnée du le champ "nés après le"
|
This date should be after the date given in "born after" field: Cette date doit être après la date donnée du le champ "nés après le"
|
||||||
"Filtered by person's birthdate: between %date_from% and %date_to%": "Filtré par date de naissance de la personne: uniquement nés entre le %date_from% et %date_to%"
|
"Filtered by person's birthdate: between %date_from% and %date_to%": "Filtré par date de naissance de l'usager: uniquement nés entre le %date_from% et %date_to%"
|
||||||
|
|
||||||
Filter by person's deathdate: Filtrer les personnes par date de décès
|
Filter by person's deathdate: Filtrer les usagers par date de décès.
|
||||||
"Filtered by person's deathdate: between %date_from% and %date_to%": "Filtré par date de naissance de la personne: uniquement nés entre le %date_from% et %date_to%"
|
"Filtered by person's deathdate: between %date_from% and %date_to%": "Filtré par date de naissance de l'usager: uniquement nés entre le %date_from% et %date_to%"
|
||||||
Death after this date: Décédé après cette date
|
Death after this date: Décédé après cette date
|
||||||
Deathdate before: Décédé avant cette date
|
Deathdate before: Décédé avant cette date
|
||||||
Alive: Vivant
|
Alive: Vivant
|
||||||
Deceased: Décédé
|
Deceased: Décédé
|
||||||
Filter in relation to this date: Filtrer par rapport à cette date
|
Filter in relation to this date: Filtrer par rapport à cette date
|
||||||
"Filtered by a state of %deadOrAlive%: at this date %date_calc%": Filtré par personnes qui sont %deadOrAlive% à cette date %date_calc%
|
"Filtered by a state of %deadOrAlive%: at this date %date_calc%": Filtré par usagers qui sont %deadOrAlive% à cette date %date_calc%
|
||||||
|
|
||||||
Filter by person's age: Filtrer les personnes par age
|
Filter by person's age: Filtrer les usagers par age.
|
||||||
"Filtered by person's age: between %min_age% and %max_age%": "Filtré par âge de la personne entre %min_age% et %max_age%"
|
"Filtered by person's age: between %min_age% and %max_age%": "Filtré par âge de l'usager entre %min_age% et %max_age%"
|
||||||
Minimum age: Âge minimum
|
Minimum age: Âge minimum
|
||||||
Maximum age: Âge maximum
|
Maximum age: Âge maximum
|
||||||
The minimum age should be less than the maximum age.: L'âge minimum doit être plus bas que l'âge maximum.
|
The minimum age should be less than the maximum age.: L'âge minimum doit être plus bas que l'âge maximum.
|
||||||
@ -420,38 +420,38 @@ Date during which residential address was valid: Date de validité
|
|||||||
Family composition: Composition familiale
|
Family composition: Composition familiale
|
||||||
Family composition at this time: Composition familiale à cette date.
|
Family composition at this time: Composition familiale à cette date.
|
||||||
|
|
||||||
Filter by person's marital status: Filtrer les personnes par état matrimonial
|
Filter by person's marital status: Filtrer les usagers par état matrimonial
|
||||||
Filtered by person's marital status: Filtré par état matrimonial
|
Filtered by person's marital status: Filtré par état matrimonial
|
||||||
Marital status at this time: État matrimonial par rapport à cette date
|
Marital status at this time: État matrimonial par rapport à cette date
|
||||||
|
|
||||||
Filter by entrusted child status: Filtrer les personnes "enfant confié"
|
Filter by entrusted child status: Filtrer les usagers "enfant confié"
|
||||||
Filtered by entrusted child status: Uniquement les personnes qui sont "enfant confié"
|
Filtered by entrusted child status: Uniquement les usagers qui sont "enfant confié"
|
||||||
|
|
||||||
Filter by nomadic status: Filtrer les personnes "gens du voyage"
|
Filter by nomadic status: Filtrer les usagers "gens du voyage"
|
||||||
Filtered by nomadic status: Uniquement les personnes qui sont "gens du voyage"
|
Filtered by nomadic status: Uniquement les usagers qui sont "gens du voyage"
|
||||||
|
|
||||||
"Filter by person's who have a residential address located at another user": Filtrer les personnes qui ont une addresse de résidence chez une autre personne
|
"Filter by person's who have a residential address located at another user": Filtrer les usagers qui ont une addresse de résidence chez une autre usager
|
||||||
"Filtered by person's who have a residential address located at another user": Uniquement les personnes qui ont une addresse de résidence chez une autre personne
|
"Filtered by person's who have a residential address located at another user": Uniquement les usagers qui ont une addresse de résidence chez une autre usager
|
||||||
|
|
||||||
Filter by person's that are alive or have deceased at a certain date: Filtrer les personnes qui sont décédées ou vivantes à une certaine date
|
Filter by person's that are alive or have deceased at a certain date: Filtrer les usagers qui sont décédés ou vivantes à une certaine date
|
||||||
Filtered by person's that are alive or have deceased at a certain date: Uniquement les personnes qui sont décédées ou vivantes à une certaine date
|
Filtered by person's that are alive or have deceased at a certain date: Uniquement les usagers qui sont décédés ou vivantes à une certaine date
|
||||||
|
|
||||||
"Filter by accompanying period: active period": "Filtrer les personnes par période d'accompagnement: en file active"
|
"Filter by accompanying period: active period": "Filtrer les usagers par parcours d'accompagnement: en file active"
|
||||||
Having an accompanying period opened after this date: Ayant une période d'accompagnement ouverte après cette date
|
Having an accompanying period opened after this date: Ayant un parcours d'accompagnement ouverte après cette date
|
||||||
Having an accompanying period ending before this date, or still opened at this date: Ayant une période d'accompagnement fermée après cette date, ou toujours ouverte à cette date
|
Having an accompanying period ending before this date, or still opened at this date: Ayant un parcours d'accompagnement fermée après cette date, ou toujours ouverte à cette date
|
||||||
"Filtered by accompanying period: persons having an accompanying period opened after the %date_from% and closed before the %date_to% (or still opened at the %date_to%)": "Filtré par période d'accompagnement: personnes ayant une période d'accompagnement ouverte après le %date_from%, et cloturée le %date_to% (ou toujours ouverte le %date_to%)"
|
"Filtered by accompanying period: persons having an accompanying period opened after the %date_from% and closed before the %date_to% (or still opened at the %date_to%)": "Filtré par parcours d'accompagnement: usagers ayant un parcours d'accompagnement ouvert après le %date_from%, et cloturé le %date_to% (ou toujours ouvert le %date_to%)"
|
||||||
|
|
||||||
"Filter by accompanying period: starting between two dates": "Filtrer les personnes par période d'accompagnement: début de la période entre deux dates"
|
"Filter by accompanying period: starting between two dates": "Filtrer les usagers par parcours d'accompagnement: début de la période entre deux dates"
|
||||||
"Having an accompanying period opened before this date": "Ayant une période d'accompagnement ouverte avant cette date"
|
"Having an accompanying period opened before this date": "Ayant un parcours d'accompagnement ouvert avant cette date"
|
||||||
"Filtered by accompanying period: persons having an accompanying period opened between the %date_from% and %date_to%": "Filtrer par période d'accompagnement: ayant une période ouverte entre le %date_from% et le %date_to%"
|
"Filtered by accompanying period: persons having an accompanying period opened between the %date_from% and %date_to%": "Filtrer par parcours d'accompagnement: ayant un parcours ouvert entre le %date_from% et le %date_to%"
|
||||||
|
|
||||||
"Filter by accompanying period: closed between two dates": "Filtrer les personnes par période d'accompagnement: période fermée entre deux dates"
|
"Filter by accompanying period: closed between two dates": "Filtrer les usagers par parcours d'accompagnement: parcours fermé entre deux dates"
|
||||||
Having an accompanying period closed after this date: Ayant une période d'accompagnement fermée après cette date
|
Having an accompanying period closed after this date: Ayant un parcours d'accompagnement fermé après cette date
|
||||||
"Having an accompanying period closed before this date": "Ayant une période d'accompagnement fermée avant cette date"
|
"Having an accompanying period closed before this date": "Ayant un parcours d'accompagnement fermé avant cette date"
|
||||||
"Filtered by accompanying period: persons having an accompanying period closed between the %date_from% and %date_to%": "Filtrer par période d'accompagnement: ayant une période fermée entre le %date_from% et le %date_to%"
|
"Filtered by accompanying period: persons having an accompanying period closed between the %date_from% and %date_to%": "Filtrer par parcours d'accompagnement: ayant un parcours fermé entre le %date_from% et le %date_to%"
|
||||||
|
|
||||||
Filter by person having an activity in a period: Filtrer les personnes ayant eu une échange pendant la période donnée
|
Filter by person having an activity in a period: Filtrer les usagers ayant eu un échange pendant la période donnée
|
||||||
Filtered by person having an activity between %date_from% and %date_to% with reasons %reasons_name%: Uniquement les personnes associées à une échange entre %date_from% et %date_to% avec les sujets %reasons_name%
|
Filtered by person having an activity between %date_from% and %date_to% with reasons %reasons_name%: Uniquement les usagers associés à un échange entre %date_from% et %date_to% avec les sujets %reasons_name%
|
||||||
|
|
||||||
|
|
||||||
## accompanying course filters/aggr
|
## accompanying course filters/aggr
|
||||||
@ -483,8 +483,8 @@ acp_geog_agg_unitname: Zone géographique
|
|||||||
acp_geog_agg_unitrefid: Clé de la zone géographique
|
acp_geog_agg_unitrefid: Clé de la zone géographique
|
||||||
Geographical layer: Couche géographique
|
Geographical layer: Couche géographique
|
||||||
Select a geographical layer: Choisir une couche géographique
|
Select a geographical layer: Choisir une couche géographique
|
||||||
Group people by geographical unit based on his address: Grouper les personnes par zone géographique (sur base de l'adresse)
|
Group people by geographical unit based on his address: Grouper les usagers par zone géographique (sur base de l'adresse)
|
||||||
Filter by person's geographical unit (based on address): Filter les personnes par zone géographique (sur base de l'adresse)
|
Filter by person's geographical unit (based on address): Filter les usagers par zone géographique (sur base de l'adresse)
|
||||||
|
|
||||||
Filter by socialaction: Filtrer les parcours par action d'accompagnement
|
Filter by socialaction: Filtrer les parcours par action d'accompagnement
|
||||||
Accepted socialactions: Actions d'accompagnement
|
Accepted socialactions: Actions d'accompagnement
|
||||||
@ -500,9 +500,9 @@ Evaluation: Évaluation
|
|||||||
"Filtered by evaluations: only %evals%": "Filtré par évaluation: uniquement %evals%"
|
"Filtered by evaluations: only %evals%": "Filtré par évaluation: uniquement %evals%"
|
||||||
Group by evaluation: Grouper les parcours par évaluation
|
Group by evaluation: Grouper les parcours par évaluation
|
||||||
|
|
||||||
Filter accompanying course by activity type: Filtrer les parcours par type d'activité
|
Filter accompanying course by activity type: Filtrer les parcours par type d'échange
|
||||||
Accepted activitytypes: Types d'activités
|
Accepted activitytypes: Types d'échanges
|
||||||
"Filtered by activity types: only %activitytypes%": "Filtré par type d'activité: seulement %activitytypes%"
|
"Filtered by activity types: only %activitytypes%": "Filtré par type d'échange: seulement %activitytypes%"
|
||||||
|
|
||||||
Filter by origin: Filtrer les parcours par origine du parcours
|
Filter by origin: Filtrer les parcours par origine du parcours
|
||||||
Accepted origins: Origines
|
Accepted origins: Origines
|
||||||
@ -520,12 +520,12 @@ Administrative location: Localisation administrative
|
|||||||
"Filtered by administratives locations: only %locations%": "Filtré par localisation administrative: uniquement %locations%"
|
"Filtered by administratives locations: only %locations%": "Filtré par localisation administrative: uniquement %locations%"
|
||||||
Group by administrative location: Grouper les parcours par localisation administrative
|
Group by administrative location: Grouper les parcours par localisation administrative
|
||||||
|
|
||||||
Filter by requestor: Filtrer les parcours selon la présence du demandeur au sein des personnes concernées
|
Filter by requestor: Filtrer les parcours selon la présence du demandeur au sein des usagers concernés
|
||||||
Accepted choices: ''
|
Accepted choices: ''
|
||||||
is person concerned: Le demandeur est une personne concernée
|
is person concerned: Le demandeur est un usager concerné
|
||||||
is other person: Le demandeur est une personne, mais n'est pas concernée
|
is other person: Le demandeur est un usager, mais n'est pas concerné
|
||||||
no requestor: Le parcours ne comporte pas de demandeur
|
no requestor: Le parcours ne comporte pas de demandeur
|
||||||
"Filtered by requestor: only %choice%": "Filtré par présence du demandeur au sein des personnes concernées: uniquement si %choice%"
|
"Filtered by requestor: only %choice%": "Filtré par présence du demandeur au sein des usagers concernés: uniquement si %choice%"
|
||||||
Group by requestor: Grouper les parcours selon la nature du demandeur
|
Group by requestor: Grouper les parcours selon la nature du demandeur
|
||||||
|
|
||||||
Filter by confidential: Filtrer les parcours par confidentialité
|
Filter by confidential: Filtrer les parcours par confidentialité
|
||||||
@ -647,24 +647,24 @@ Rounded month duration: Durée en mois (arrondie)
|
|||||||
current duration: en cours
|
current duration: en cours
|
||||||
duration 0 month: 0 mois (<15 jours)
|
duration 0 month: 0 mois (<15 jours)
|
||||||
' months': ' mois'
|
' months': ' mois'
|
||||||
Group people by nationality: Grouper les personnes par nationalités
|
Group people by nationality: Grouper les usagers par nationalités
|
||||||
Group by level: Grouper par niveau
|
Group by level: Grouper par niveau
|
||||||
Group by continents: Grouper par continent
|
Group by continents: Grouper par continent
|
||||||
Group by country: Grouper par pays
|
Group by country: Grouper par pays
|
||||||
|
|
||||||
Group people by gender: Grouper les personnes par genre
|
Group people by gender: Grouper les usagers par genre
|
||||||
Group people by their professional situation: Grouper les personnes par situation professionelle
|
Group people by their professional situation: Grouper les usagers par situation professionelle
|
||||||
Group people by marital status: Grouper les personnes par état matrimonial
|
Group people by marital status: Grouper les usagers par état matrimonial
|
||||||
|
|
||||||
Aggregate by household position: Grouper les personnes par position dans le ménage
|
Aggregate by household position: Grouper les usagers par position dans le ménage
|
||||||
Household position in relation to this date: Position dans le ménage par rapport à cette date
|
Household position in relation to this date: Position dans le ménage par rapport à cette date
|
||||||
Household position: Position dans le ménage
|
Household position: Position dans le ménage
|
||||||
|
|
||||||
Aggregate by age: Grouper les personnes par âge
|
Aggregate by age: Grouper les usagers par âge
|
||||||
Calculate age in relation to this date: Calculer l'âge par rapport à cette date
|
Calculate age in relation to this date: Calculer l'âge par rapport à cette date
|
||||||
|
|
||||||
Group people by country of birth: Grouper les personnes par pays de naissance
|
Group people by country of birth: Grouper les usagers par pays de naissance
|
||||||
Similar persons: Personnes similaires
|
Similar persons: Usagers similaires
|
||||||
|
|
||||||
crud:
|
crud:
|
||||||
closing_motive:
|
closing_motive:
|
||||||
@ -775,8 +775,8 @@ closing_motive:
|
|||||||
any parent: Aucun parent
|
any parent: Aucun parent
|
||||||
new child: Nouvel enfant
|
new child: Nouvel enfant
|
||||||
|
|
||||||
Person configuration: Configuration du module "Personnes"
|
Person configuration: Configuration du module "Usagers"
|
||||||
Configuration of person bundle: Configuration du module "Personnes"
|
Configuration of person bundle: Configuration du module "Usagers"
|
||||||
person_admin:
|
person_admin:
|
||||||
accompanying_period: Parcours d'accompagnement
|
accompanying_period: Parcours d'accompagnement
|
||||||
What would you like to configure ?: Que souhaitez-vous configurer ?
|
What would you like to configure ?: Que souhaitez-vous configurer ?
|
||||||
@ -784,7 +784,7 @@ person_admin:
|
|||||||
closing motives list: Liste des motifs de clotûre
|
closing motives list: Liste des motifs de clotûre
|
||||||
closing motive explanation: >
|
closing motive explanation: >
|
||||||
Les motifs de clotûre donnent des indications sur la fermeture
|
Les motifs de clotûre donnent des indications sur la fermeture
|
||||||
d'une période d'accompagnement.
|
d'un parcours d'accompagnement.
|
||||||
origin: Origines
|
origin: Origines
|
||||||
marital status: États civils
|
marital status: États civils
|
||||||
marital status list: Liste des états civils
|
marital status list: Liste des états civils
|
||||||
@ -825,11 +825,11 @@ Edit Accompanying Course: Modifier le parcours
|
|||||||
Close Accompanying Course: Clôturer le parcours
|
Close Accompanying Course: Clôturer le parcours
|
||||||
Create Accompanying Course: Créer un nouveau parcours
|
Create Accompanying Course: Créer un nouveau parcours
|
||||||
Drop Accompanying Course: Supprimer le parcours
|
Drop Accompanying Course: Supprimer le parcours
|
||||||
This course is located at a temporarily address. You should locate this course to an user: Le parcours est localisé à une adresse temporaire. Il devrait être localisé auprès d'une personne concernée.
|
This course is located at a temporarily address. You should locate this course to an user: Le parcours est localisé à une adresse temporaire. Il devrait être localisé auprès d'un usager concerné.
|
||||||
Accompanying course location: Localisation du parcours
|
Accompanying course location: Localisation du parcours
|
||||||
This course is located by: Localisé auprès de
|
This course is located by: Localisé auprès de
|
||||||
This course has a temporarily location: Localisation temporaire
|
This course has a temporarily location: Localisation temporaire
|
||||||
Choose a person to locate by: Localiser auprès d'une personne concernée
|
Choose a person to locate by: Localiser auprès d'un usager concerné
|
||||||
Associate at least one member with an household, and set an address to this household: Associez au moins un membre du parcours à un ménage, et indiquez une adresse à ce ménage.
|
Associate at least one member with an household, and set an address to this household: Associez au moins un membre du parcours à un ménage, et indiquez une adresse à ce ménage.
|
||||||
Locate by: Localiser auprès de
|
Locate by: Localiser auprès de
|
||||||
fix it: Compléter
|
fix it: Compléter
|
||||||
@ -884,7 +884,7 @@ Household configuration: Gestion des ménages
|
|||||||
# accompanying course work
|
# accompanying course work
|
||||||
Accompanying Course Actions: Actions d'accompagnements
|
Accompanying Course Actions: Actions d'accompagnements
|
||||||
Accompanying Course Action: Action d'accompagnement
|
Accompanying Course Action: Action d'accompagnement
|
||||||
Are you sure you want to remove this work of the accompanying period %name% ?: Êtes-vous sûr de vouloir supprimer cette action de la période d'accompagnement %name% ?
|
Are you sure you want to remove this work of the accompanying period %name% ?: Êtes-vous sûr de vouloir supprimer cette action du parcours d'accompagnement %name% ?
|
||||||
The accompanying period work has been successfully removed.: L'action d'accompagnement a été supprimée.
|
The accompanying period work has been successfully removed.: L'action d'accompagnement a été supprimée.
|
||||||
accompanying_course_work:
|
accompanying_course_work:
|
||||||
create: Créer une action
|
create: Créer une action
|
||||||
@ -916,37 +916,37 @@ Person addresses: Adresses de résidence
|
|||||||
Household addresses: Adresses de domicile
|
Household addresses: Adresses de domicile
|
||||||
Insert an address: Insérer une adresse
|
Insert an address: Insérer une adresse
|
||||||
see social issues: Voir les problématiques sociales
|
see social issues: Voir les problématiques sociales
|
||||||
see persons associated: Voir les personnes concernées
|
see persons associated: Voir les usagers concernés
|
||||||
|
|
||||||
docgen:
|
docgen:
|
||||||
Accompanying Period basic: "Parcours d'accompagnement (basique)"
|
Accompanying Period basic: "Parcours d'accompagnement (basique)"
|
||||||
Accompanying period work: "Action d'accompagnement"
|
Accompanying period work: "Action d'accompagnement"
|
||||||
Accompanying period work context: "Evaluation des actions d'accompagnement"
|
Accompanying period work context: "Evaluation des actions d'accompagnement"
|
||||||
Main person: Personne principale
|
Main person: Usager principal
|
||||||
person 1: Première personne
|
person 1: Premièr usager
|
||||||
person 2: Seconde personne
|
person 2: Second usager
|
||||||
Ask for main person: Demander à l'utilisateur de préciser la personne principale
|
Ask for main person: Demander à l'utilisateur de préciser l'usager principal
|
||||||
Ask for person 1: Demander à l'utilisateur de préciser la première personne
|
Ask for person 1: Demander à l'utilisateur de préciser le premièr usager
|
||||||
Ask for person 2: Demander à l'utilisateur de préciser la seconde personne
|
Ask for person 2: Demander à l'utilisateur de préciser le second usager
|
||||||
A basic context for accompanying period: Contexte pour les parcours
|
A basic context for accompanying period: Contexte pour les parcours
|
||||||
A context for accompanying period work: Contexte pour les actions d'accompagnement
|
A context for accompanying period work: Contexte pour les actions d'accompagnement
|
||||||
A context for accompanying period work evaluation: Contexte pour les évaluations dans les actions d'accompagnement
|
A context for accompanying period work evaluation: Contexte pour les évaluations dans les actions d'accompagnement
|
||||||
Person basic: Personne (basique)
|
Person basic: Usager (basique)
|
||||||
A basic context for person: Contexte pour les personnes
|
A basic context for person: Contexte pour les usagers
|
||||||
Label for third party: Label à afficher aux utilisateurs
|
Label for third party: Label à afficher aux utilisateurs
|
||||||
Document title: Titre du document généré
|
Document title: Titre du document généré
|
||||||
|
|
||||||
period_notification:
|
period_notification:
|
||||||
period_designated_subject: Vous êtes référent d'un parcours d'accompagnement
|
period_designated_subject: Vous êtes référent d'un parcours d'accompagnement
|
||||||
You are designated to a new period: Vous avez été désigné référent d'un parcours d'accompagnement.
|
You are designated to a new period: Vous avez été désigné référent d'un parcours d'accompagnement.
|
||||||
Persons are: Les personnes concernées sont les suivantes
|
Persons are: Les usagers concernés sont les suivantes
|
||||||
Social issues are: Les problématiques sociales renseignées sont les suivantes
|
Social issues are: Les problématiques sociales renseignées sont les suivantes
|
||||||
See it online: Visualisez le parcours en ligne
|
See it online: Visualisez le parcours en ligne
|
||||||
Person locating period has moved: La personne qui localise un parcours a déménagé
|
Person locating period has moved: L'usager qui localise un parcours a déménagé
|
||||||
|
|
||||||
You are getting a notification for a period which does not exists any more: Cette notification ne correspond pas à une période d'accompagnement valide.
|
You are getting a notification for a period which does not exists any more: Cette notification ne correspond pas à un parcours d'accompagnement valide.
|
||||||
You are getting a notification for a period you are not allowed to see: La notification fait référence à une période d'accompagnement à laquelle vous n'avez pas accès.
|
You are getting a notification for a period you are not allowed to see: La notification fait référence à un parcours d'accompagnement à laquelle vous n'avez pas accès.
|
||||||
This is the minimal period details: Période d'accompagnement n°
|
This is the minimal period details: Parcours d'accompagnement n°
|
||||||
|
|
||||||
household_composition:
|
household_composition:
|
||||||
No composition yet: Aucune composition familiale renseignée
|
No composition yet: Aucune composition familiale renseignée
|
||||||
@ -1010,7 +1010,7 @@ export:
|
|||||||
person:
|
person:
|
||||||
by_household_composition:
|
by_household_composition:
|
||||||
Household composition: Composition du ménage
|
Household composition: Composition du ménage
|
||||||
Group course by household composition: Grouper les personnes par composition familiale
|
Group course by household composition: Grouper les usagers par composition familiale
|
||||||
Calc date: Date de calcul de la composition du ménage
|
Calc date: Date de calcul de la composition du ménage
|
||||||
course:
|
course:
|
||||||
by_referrer:
|
by_referrer:
|
||||||
@ -1054,13 +1054,13 @@ export:
|
|||||||
Filtered by person's geographical unit (based on address) computed at %datecalc%, only %units%: Filtré par unité géographique (sur base de l'adresse), calculé le %datecalc%, seulement %units%
|
Filtered by person's geographical unit (based on address) computed at %datecalc%, only %units%: Filtré par unité géographique (sur base de l'adresse), calculé le %datecalc%, seulement %units%
|
||||||
person:
|
person:
|
||||||
by_composition:
|
by_composition:
|
||||||
Filter by household composition: Filtrer les personnes par composition du ménage
|
Filter by household composition: Filtrer les usagers par composition du ménage
|
||||||
Accepted compositions: Composition de ménages
|
Accepted compositions: Composition de ménages
|
||||||
Date calc: Date de calcul
|
Date calc: Date de calcul
|
||||||
'Filtered by composition at %date%: only %compositions%': 'Filtré par composition du ménage, le %date%, seulement %compositions%'
|
'Filtered by composition at %date%: only %compositions%': 'Filtré par composition du ménage, le %date%, seulement %compositions%'
|
||||||
by_no_composition:
|
by_no_composition:
|
||||||
Filter persons without household composition: Filtrer les personnes sans composition de ménage (ni ménage)
|
Filter persons without household composition: Filtrer les usagers sans composition de ménage (ni ménage)
|
||||||
Persons filtered by no composition at %date%: Uniquement les personnes sans composition de ménage à la date du %date%
|
Persons filtered by no composition at %date%: Uniquement les usagers sans composition de ménage à la date du %date%
|
||||||
Date calc: Date de calcul
|
Date calc: Date de calcul
|
||||||
|
|
||||||
course:
|
course:
|
||||||
@ -1077,11 +1077,11 @@ export:
|
|||||||
'Filtered by creator job: only %jobs%': 'Filtré par métier du créateur: seulement %jobs%'
|
'Filtered by creator job: only %jobs%': 'Filtré par métier du créateur: seulement %jobs%'
|
||||||
list:
|
list:
|
||||||
person_with_acp:
|
person_with_acp:
|
||||||
List peoples having an accompanying period: Liste des personnes ayant un parcours d'accompagnement
|
List peoples having an accompanying period: Liste des usagers ayant un parcours d'accompagnement
|
||||||
Create a list of people having an accompaying periods, according to various filters.: Génère une liste des personnes ayant un parcours d'accompagnement, selon différents critères liés au parcours ou à l'usager
|
Create a list of people having an accompaying periods, according to various filters.: Génère une liste des usagers ayant un parcours d'accompagnement, selon différents critères liés au parcours ou à l'usager
|
||||||
acp:
|
acp:
|
||||||
List of accompanying periods: Liste de périodes d'accompagnements
|
List of accompanying periods: Liste des parcours d'accompagnements
|
||||||
Generate a list of accompanying periods, filtered on different parameters.: Génère une liste des périodes d'accompagnement, filtrée sur différents paramètres.
|
Generate a list of accompanying periods, filtered on different parameters.: Génère une liste des parcours d'accompagnement, filtrée sur différents paramètres.
|
||||||
Date of calculation for associated elements: Date de calcul des éléments associés
|
Date of calculation for associated elements: Date de calcul des éléments associés
|
||||||
The associated referree, localisation, and other elements will be valid at this date: Les éléments associés, comme la localisation, le référent et d'autres éléments seront valides à cette date
|
The associated referree, localisation, and other elements will be valid at this date: Les éléments associés, comme la localisation, le référent et d'autres éléments seront valides à cette date
|
||||||
id: Identifiant du parcours
|
id: Identifiant du parcours
|
||||||
@ -1108,8 +1108,8 @@ export:
|
|||||||
locationPersonId: Identifiant de l'usager auprès duquel le parcours est localisé
|
locationPersonId: Identifiant de l'usager auprès duquel le parcours est localisé
|
||||||
acpaddress_fieldscountry: Pays de l'adresse
|
acpaddress_fieldscountry: Pays de l'adresse
|
||||||
isRequestorPerson: Le demandeur est-il un usager ?
|
isRequestorPerson: Le demandeur est-il un usager ?
|
||||||
requestorPersonId: Identifiant du demandeur personne
|
requestorPersonId: Identifiant du demandeur usager
|
||||||
acprequestorPerson: Nom du demandeur personne
|
acprequestorPerson: Nom du demandeur usager
|
||||||
scopes: Services
|
scopes: Services
|
||||||
socialIssues: Problématiques sociales
|
socialIssues: Problématiques sociales
|
||||||
eval:
|
eval:
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
'Opening date can not be null': 'La date d''ouverure ne peut être nulle'
|
'Opening date can not be null': 'La date d''ouverure ne peut être nulle'
|
||||||
'Closing date is not valid': 'La date de fermeture n''est pas valide'
|
'Closing date is not valid': 'La date de fermeture n''est pas valide'
|
||||||
'Closing date can not be null': 'La date de fermeture ne peut être nulle'
|
'Closing date can not be null': 'La date de fermeture ne peut être nulle'
|
||||||
The date of closing is before the date of opening: La période de fermeture est avant la période d'ouverture
|
The date of closing is before the date of opening: La date de fermeture est avant la date d'ouverture
|
||||||
The closing date must be later than the date of creation: La date de clôture doit être postérieure à la date de création du parcours
|
The closing date must be later than the date of creation: La date de clôture doit être postérieure à la date de création du parcours
|
||||||
The birthdate must be before %date%: La date de naissance doit être avant le %date%
|
The birthdate must be before %date%: La date de naissance doit être avant le %date%
|
||||||
'Invalid phone number: it should begin with the international prefix starting with "+", hold only digits and be smaller than 20 characters. Ex: +33123456789': 'Numéro de téléphone invalide: il doit commencer par le préfixe international précédé de "+", ne comporter que des chiffres et faire moins de 20 caractères. Ex: +31623456789'
|
'Invalid phone number: it should begin with the international prefix starting with "+", hold only digits and be smaller than 20 characters. Ex: +33123456789': 'Numéro de téléphone invalide: il doit commencer par le préfixe international précédé de "+", ne comporter que des chiffres et faire moins de 20 caractères. Ex: +31623456789'
|
||||||
@ -47,19 +47,19 @@ household:
|
|||||||
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 }}.
|
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 }}.
|
||||||
household_membership:
|
household_membership:
|
||||||
The end date must be after start date: La date de la fin de l'appartenance doit être postérieure à la date de début.
|
The end date must be after start date: La date de la fin de l'appartenance doit être postérieure à la date de début.
|
||||||
Person with membership covering: Une personne ne peut pas appartenir à deux ménages simultanément. Or, avec cette modification, %person_name% appartiendrait à %nbHousehold% ménages à partir du %from%.
|
Person with membership covering: Un usager ne peut pas appartenir à deux ménages simultanément. Or, avec cette modification, %person_name% appartiendrait à %nbHousehold% ménages à partir du %from%.
|
||||||
|
|
||||||
# Accompanying period
|
# Accompanying period
|
||||||
'{{ name }} is already associated to this accompanying course.': '{{ name }} est déjà associé à ce parcours.'
|
'{{ name }} is already associated to this accompanying course.': '{{ name }} est déjà associé à ce parcours.'
|
||||||
A course must contains at least one social issue: 'Un parcours doit être associé à au moins une problématique sociale'
|
A course must contains at least one social issue: 'Un parcours doit être associé à au moins une problématique sociale'
|
||||||
A course must be associated to at least one scope: 'Un parcours doit être associé à au moins un service'
|
A course must be associated to at least one scope: 'Un parcours doit être associé à au moins un service'
|
||||||
The social %name% issue cannot be deleted because it is associated with an activity or an action: 'La problématique sociale "%name%" ne peut pas être supprimée car elle est associée à une activité ou une action'
|
The social %name% issue cannot be deleted because it is associated with an activity or an action: 'La problématique sociale "%name%" ne peut pas être supprimée car elle est associée à un échange ou une action'
|
||||||
A confidential parcours must have a referrer: 'Un parcours confidentiel doit avoir un référent'
|
A confidential parcours must have a referrer: 'Un parcours confidentiel doit avoir un référent'
|
||||||
Only the referrer can change the confidentiality of a parcours: 'Seul le référent peut modifier la confidentialité'
|
Only the referrer can change the confidentiality of a parcours: 'Seul le référent peut modifier la confidentialité'
|
||||||
|
|
||||||
# resource
|
# resource
|
||||||
You must associate at least one entity: Associez un usager, un tiers ou indiquez une description libre
|
You must associate at least one entity: Associez un usager, un tiers ou indiquez une description libre
|
||||||
You cannot associate a resource with the same person: Vous ne pouvez pas ajouter la personne elle-même en tant que ressource.
|
You cannot associate a resource with the same person: Vous ne pouvez pas ajouter l'usager lui-même en tant que ressource.
|
||||||
|
|
||||||
#location
|
#location
|
||||||
The period must remain located: 'Un parcours doit être localisé'
|
The period must remain located: 'Un parcours doit être localisé'
|
||||||
@ -67,7 +67,10 @@ The person where the course is located must be associated to the course. Change
|
|||||||
|
|
||||||
#relationship
|
#relationship
|
||||||
relationship:
|
relationship:
|
||||||
duplicate: Une relation de filiation existe déjà entre ces 2 personnes
|
duplicate: Une relation de filiation existe déjà entre ces 2 usagers
|
||||||
|
|
||||||
person_creation:
|
person_creation:
|
||||||
If you want to create an household, an address is required: Pour la création d'un ménage, une adresse est requise
|
If you want to create an household, an address is required: Pour la création d'un ménage, une adresse est requise
|
||||||
|
|
||||||
|
accompanying_course_work:
|
||||||
|
The endDate should be greater or equal than the start date: La date de fin doit être égale ou supérieure à la date de début
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
'Update the report': 'Modifier le rapport'
|
'Update the report': 'Modifier le rapport'
|
||||||
'Report list': 'Liste des rapports'
|
'Report list': 'Liste des rapports'
|
||||||
Details: Détails
|
Details: Détails
|
||||||
Person: Personne
|
Person: Usager
|
||||||
Scope: Cercle
|
Scope: Cercle
|
||||||
Date: Date
|
Date: Date
|
||||||
User: Utilisateur
|
User: Utilisateur
|
||||||
@ -17,7 +17,7 @@ User: Utilisateur
|
|||||||
Report data: Données du rapport
|
Report data: Données du rapport
|
||||||
'Report view : %name%': 'Rapport : %name%'
|
'Report view : %name%': 'Rapport : %name%'
|
||||||
Report: Rapport
|
Report: Rapport
|
||||||
No report registered for this person.: Aucun rapport pour cette personne.
|
No report registered for this person.: Aucun rapport pour cet usager.
|
||||||
|
|
||||||
#Flash messages
|
#Flash messages
|
||||||
'Success : report created!': "Succès : le rapport a bien été créé !"
|
'Success : report created!': "Succès : le rapport a bien été créé !"
|
||||||
@ -52,4 +52,4 @@ CHILL_REPORT_LISTS: Liste des rapports
|
|||||||
"Report's question": Question du rapport
|
"Report's question": Question du rapport
|
||||||
Filter by report's date: Filtrer par date de rapport
|
Filter by report's date: Filtrer par date de rapport
|
||||||
Report is after this date: Rapports après cette date
|
Report is after this date: Rapports après cette date
|
||||||
Report is before this date: Rapports avant cette date
|
Report is before this date: Rapports avant cette date
|
||||||
|
@ -14,7 +14,7 @@ Scope: Cercle
|
|||||||
"Unit": ""
|
"Unit": ""
|
||||||
Task: Tâche
|
Task: Tâche
|
||||||
Details: Détails
|
Details: Détails
|
||||||
Person: Personne
|
Person: Usager
|
||||||
Date: Date
|
Date: Date
|
||||||
Dates: Dates
|
Dates: Dates
|
||||||
User: Utilisateur
|
User: Utilisateur
|
||||||
@ -49,7 +49,7 @@ User: Utilisateur
|
|||||||
"Tasks for {{ name }}": "Tâches pour {{ name }}"
|
"Tasks for {{ name }}": "Tâches pour {{ name }}"
|
||||||
"No description": "Pas de description"
|
"No description": "Pas de description"
|
||||||
"No dates specified": "Dates non spécifiées"
|
"No dates specified": "Dates non spécifiées"
|
||||||
"No one assignee": "Aucune personne assignée"
|
"No one assignee": "Aucune usager assigné"
|
||||||
"Task types": Types de tâches
|
"Task types": Types de tâches
|
||||||
Days: Jour(s)
|
Days: Jour(s)
|
||||||
Weeks: Semaine(s)
|
Weeks: Semaine(s)
|
||||||
@ -59,7 +59,7 @@ Filter the tasks: Filtrer les tâches
|
|||||||
Filter: Filtrer
|
Filter: Filtrer
|
||||||
Any user: Tous les utilisateurs
|
Any user: Tous les utilisateurs
|
||||||
Unassigned: Non assigné
|
Unassigned: Non assigné
|
||||||
Associated person: Personne associée
|
Associated person: Usager associé
|
||||||
Default task: Tâche par défaut
|
Default task: Tâche par défaut
|
||||||
Not assigned: Aucun utilisateur assigné
|
Not assigned: Aucun utilisateur assigné
|
||||||
For person: Pour
|
For person: Pour
|
||||||
@ -117,5 +117,5 @@ CHILL_TASK_TASK_DELETE: Supprimer une tâche
|
|||||||
CHILL_TASK_TASK_SHOW: Voir une tâche
|
CHILL_TASK_TASK_SHOW: Voir une tâche
|
||||||
CHILL_TASK_TASK_UPDATE: Modifier une tâche
|
CHILL_TASK_TASK_UPDATE: Modifier une tâche
|
||||||
CHILL_TASK_TASK_CREATE_FOR_COURSE: Créer une tâche pour un parcours
|
CHILL_TASK_TASK_CREATE_FOR_COURSE: Créer une tâche pour un parcours
|
||||||
CHILL_TASK_TASK_CREATE_FOR_PERSON: Créer une tâche pour une personne
|
CHILL_TASK_TASK_CREATE_FOR_PERSON: Créer une tâche pour un usager
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user