gip-inclusion / les-emplois Goto Github PK
View Code? Open in Web Editor NEWPlate-forme numérique de l'inclusion
Home Page: https://emplois.inclusion.beta.gouv.fr
License: GNU Affero General Public License v3.0
Plate-forme numérique de l'inclusion
Home Page: https://emplois.inclusion.beta.gouv.fr
License: GNU Affero General Public License v3.0
Bonjour {{ first_name }} {{ last_name }} !
Vous avez été invité(e) à vous rattacher au compte de la structure {{ org_name }} sur la Plateforme de l'inclusion. Cliquez sur le lien ci-dessous pour vous inscrire en quelques clics. Nous sommes ravis de vous accueillir sur la Plateforme !
{% endblocktrans %}
{{ acceptance_link }}
{# Don't specify datetime format as it depends on the language. #}
{# Better relying on the global DATE_FORMAT configuration variable. #}
{% blocktrans with date=expiration_date|date %}
Cette invitation restera valide jusqu'au {{ date }}.
{% endblocktrans %}
{% blocktrans %}
Ignorez cet e-mail si vous ne souhaitez pas rejoindre cette organisation.
Styling with Markdown is supported
Nous sommes ravis de vous annoncer que la candidature de {{ job_seeker_full_name }}, adressée par {{ sender_full_name }}, a été acceptée par {{ to_siae }}.
{% trans "Message de l'entreprise :" %}
Afin de nous aider à évaluer la performance de notre service, accepteriez-vous de répondre à quelques questions ?
Prenez 30'' pour nous donnez votre avis ! Cliquez sur : {{ survey_link }}
Merci de votre participation et à très bientôt sur la Plateforme !
{% blocktrans %}L'habilitation de votre organisation est vérifiée !{% endblocktrans %}
Merci d'avoir confirmé l'embauche d'un candidat sur la Plateforme de l'inclusion. Vous trouverez ci-dessous votre Pass IAE (il équivaut à l'agrément Pôle emploi conformément aux articles L 5132-1 à L 5132-17 du code du travail) :
{% trans "PASS IAE N° :" %} {{ job_application.approval.number_with_spaces }}
{% trans "Délivré pour l'embauche de :" %}
{% trans "Nom :" %} {{ job_application.approval.user.last_name }}
{% trans "Prénom :" %} {{ job_application.approval.user.first_name }}
{% trans "Date de naissance :" %} {{ job_application.approval.user.birthdate|date:"d/m/Y" }}
{% trans "Pour un contrat d'insertion :" %}
{% trans "Débutant le :" %} {{ job_application.hiring_start_at|date:"d/m/Y" }}{% if job_application.hiring_end_at %}
{% trans "Se terminant le :" %} {{ job_application.hiring_end_at|date:"d/m/Y" }}{% endif %}
{% trans "Au sein de la structure :" %}
{{ job_application.to_siae.display_name }}
{{ job_application.to_siae.get_kind_display }}
{{ job_application.to_siae.address_line_1 }}{% if job_application.to_siae.address_line_2 %}
{{ job_application.to_siae.address_line_2 }}{% endif %}
{{ job_application.to_siae.post_code }} {{ job_application.to_siae.city }}
{% trans "Pour le compte de Pôle emploi," %}
{% trans "Votre contact :" %}
{{ itou_email_contact }}
Afin de nous aider à évaluer la performance de notre service, accepteriez-vous de répondre à quelques questions ?
Prenez 30'' pour nous donnez votre avis ! Cliquez sur : {{ survey_link }}
Merci de votre participation et à très bientôt sur la Plateforme !
Nous vous confirmons que la candidature de {{ job_seeker_name }} a bien été annulée.
Toutes les notifs sont ici :
https://whimsical.com/notifications-C4VLyZenkkNgW5NFhxC9Py
Cas d’usage : En tant qu’utilisateur des emplois, je veux contrôler les notifications que je reçois
Avant de commencer les travaux UX une investigation TECH doit permettre de lister toutes les notifs transmises par notre service [Investigation Tech] En tant qu’utilisateur j’aimerais pouvoir gérer TOUTES mes notifications (https://www.notion.so/Investigation-Tech-En-tant-qu-utilisateur-j-aimerais-pouvoir-g-rer-TOUTES-mes-notifications-a272138161324a09aa928b12c5ce22f7?pvs=21)
Confirmation email pour la Plateforme de l'inclusion
{% blocktrans %}[Action requise] Un nouvel utilisateur souhaite rejoindre votre structure !{% endblocktrans %}
{% trans "Un nouvel utilisateur souhaite rejoindre votre structure sur la Plateforme de l'inclusion !" %}
{% trans "Structure :" %}
{% trans "Ouvrez le lien suivant pour procéder à l'inscription" %} : {{ signup_magic_link }}
{% trans "Si vous n'êtes pas à l'origine de cette demande, peut-être s'agit-il d'un collaborateur ou d'une collaboratrice. Transférez-lui cet email pour lui permettre de s'inscrire." %}
{% trans "Si vous êtes certain que cette demande n'émane d'aucun de vos collaborateurs ou collaboratrices, vous pouvez simplement ignorer notre e-mail." %}
{% trans "Cet e-mail a été envoyé à" %}
{{ siae.auth_email }}
{% trans "adresse présente pour cette structure dans notre base de données alimentée par les données officielles de l'inclusion (ASP, GEIQ...)." %}
{% trans "Nous sommes désolés, nous n'avons pas pu vérifier l'habilitation de votre organisation. Nous vous recontacterons au plus vite afin d'obtenir les renseignements qui nous manquent. Si toutefois notre tardons à revenir vers vous, n'hésitez pas à relancer notre équipe Support à l'adresse "%}{{ itou_email_contact }}{%
La candidature de {{ job_seeker_full_name }} envoyée par {{ sender_full_name }} chez {{ to_siae }} n'a malheureusement pas pu aboutir.
{% endblocktrans %}
Pour l'instant cette SIAE n'est plus habilitée à recevoir de candidatures.
{% else %}
{% blocktrans with to_siae=job_application.to_siae.display_name %}
Votre candidature chez {{ to_siae }} n'a malheureusement pas pu aboutir. Pour l'instant cette SIAE n'est plus habilitée à recevoir de candidatures. Nous vous souhaitons bon courage dans votre recherche et sommes persuadés que votre démarche aboutira ailleurs.
Pass IAE pour {{ job_seeker_full_name }} et avis sur la Plateforme de l'inclusion{% endblocktrans %}
On semble s'adresser ici à l'utilisateur, donc plutôt ''Confirmez votre adresse e-mail pour la Plateforme''
On peut se permettre d'utiliser le raccourci ''Plateforme''
Pour faire suite à notre conversation sur Ajout de l'interface "Mes annexes financières".
Ne concerne que les structures d'insertion par l'activité économique.
siret
peut avoir n
mesures (ex : AI et EI)siret
/kind
(le champ kind
est l'équivalent du terme ASP mesure)=> 1 SIAE dans le SI ASP == n
SIAE dans le SI ITOU
created_by
et sans restriction)Siae.created_by
+ Siae.source
kind
que la SIAE active=> le point commun est toujours le SIREN
=> ITOU permet de créer des SIAE qui n'existent pas dans l'ASP (antennes) or il faut pouvoir les relier à un conventionnement
Idée d'origine : relation mère-fille entre SIAE de source ASP et SIAE user-created.
C.f. https://docs.google.com/document/d/1jx-YYdRfyp2ukyLQnlX8n8JIJNMigqfdCs-Rn-nBju0
@kemar est contre car :
En atelier avec tous les devs on a décidé d'une autre abstraction :
Valider que notre abstraction est correcte ou prouver qu'une relation mère/fille est plus efficace que les tables SiaeConvention
et SiaeFinancialAnnex
.
Comment conserver un numéro d'AF spécifique pour une SIAE donnée s'il faut l'envoyer avec les fiches salariés ? Est-ce qu'il va falloir le sélectionner pour chaque envoi de fiche salarié ?
Expliquer les différences de modélisation entre le SI ASP et le SI ITOU.
SiaeFinancialAnnex.convention_number
Le commentaire est mystérieux :
This field is at SiaeFinancialAnnex level and not at SiaeConvention level because one SiaeConvention can have financial annexes with different convention numbers.
La documentation aussi :
- numéro_de_convention : champ confusant et équivalent au numéro d'AF trouvé dans la Vue AF (exemple 030 010120 ACI 00004).
- Je propose de l'exploiter aussi au cas où l'utilisateur rentre ce numéro au lieu du numéro d'AF pour retrouver la convention. Ou pas…
=> on ne sait pas ce que c'est => mauvaise analyse ?
Edit : Suppression du champ confusant numéro de convention #464
Expliquer SIRET signature dans le code :
Historiquement nous utilisons uniquement le champ SIRET actualisé des structures, qui change dans le temps (déménagements etc) et est maintenu à jour dans la db ITOU grâce aux exports ASP.
Il faut savoir qu'il existe un second champ SIRET, nommé SIRET signature (c a d le SIRET au moment de la signature du conventionnement) qui présente l'avantage d'être immuable. Néanmoins nous ne l'exploitons pas à ce jour
Ajouter les explications sur l'ID d'AF :
Explications sur l'id d'AF :
- Code mesure conventionnée
- Département
- 2 derniers caractères du millésime
- Numéro d’ordre de l’annexe
Ex : ACI051170013 (sans espace et sans numéro d'avenant)
Je soutiens depuis le début que c'est une mauvaise idée de mélanger is_active
et in_grace_period
.
La période de grâce concerne uniquement quelques cas spéciaux.
Si j'en crois la dernière version du document d'architecture :
Specs V4 plus souples du 30 octobre 2020
- Pendant le délai de grâce de Y mois :
- la SIAE continue à utiliser le service normalement sauf qu'elle a un gros warning sur son dashboard et partout ailleurs lui demandant de contacter le support ASAP pour régulariser sa situation et lui faire savoir qu'après cette date elle perdra l'accès à ses données (candidatures, agréments etc).
La période de grâce ne fait plus qu'une chose : afficher un message dans le tableau de bord.
Donc is_active
englobe maintenant is_in_grace_period
.
On devrait être en mesure de simplifier tout ce qui touche au QuerySet
et aux permissions et ne conserver que is_active
partout.
Postulat de départ : toute SIAE de source ASP est reliée automatiquement à un conventionnement.
Pour les SIAE qui n'existent pas dans le SI ASP et qu'on ne sait pas rattacher à un conventionnement, on propose une interface permettant de sélectionner une AF => l'AF permet de remonter au conventionnement.
Pour être plus user-friendly, proposer d'abord de sélectionner une SIAE de source ASP commençant par le même SIREN => "J'utilise la même convention que cette structure". La relation de filiation est matérialisée par le truchement de la table SiaeConvention
.
…
{% trans "Un nouvel utilisateur vient de rejoindre votre organisation sur la Plateforme de l'inclusion ! Si cette personne n'est pas un collaborateur ou une collaboratrice, il s'agit d'une erreur de rattachement, n'hésitez pas à nous en informer par email :" %} {{ itou_email_contact }}
{% blocktrans %}Un nouvel utilisateur vient de rejoindre votre structure !{% endblocktrans %}
{% blocktrans %}Candidature acceptée et avis sur la Plateforme de l'inclusion{% endblocktrans %}
Essayer de toutes leur données le bon look/ui dektop/mobile
Corriger les espacements verticaux dans les {% bootstrap_button %}
(car plus de form-group enrobant)
Tourne parfaitement en local dev au premier essai. Même pas besoin de PR. Congrats @kemar ! 👍
{% blocktrans with siae_name=job_application.to_siae.display_name sender=job_application.sender.get_full_name %}
{{ sender }} a envoyé votre candidature chez {{ siae_name }}.
{% endblocktrans %}
Vous et {{ sender }} serez tous les deux informés de l'avancement de cette candidature.
{% else %}
{% blocktrans with siae_name=job_application.to_siae.display_name %}
Candidature chez {{ siae_name }} envoyée avec succès !
Vous et votre candidat serez tous les deux informés de l'avancement de cette candidature.
{% trans "Un nouvel utilisateur vient de rejoindre votre structure sur la Plateforme de l'inclusion ! Si vous ne connaissez pas cette personne, n'hésitez pas à nous prévenir par e-mail :" %} {{ itou_email_contact }}
{{ sender }} a envoyé votre candidature chez {{ siae_name }}
Confirmation d'envoi de candidature pour {{ name }} {% endblocktrans %}
{% trans "Merci de votre inscription. L'habilitation de votre organisation est maintenant vérifiée. Nous vous souhaitons bienvenue sur la Plateforme !" %}
Je m'attends à ce que https://emplois.inclusion.beta.gouv.fr/api/v1/siaes/?code_insee=75056&distance_max_km=1&page_size=100
donne toutes les SIAE de Paris et les SIAE qui sont à moins de 1km de Paris.
J'obtiens une sous partie des SIAE de Paris, qui sont, j'imagine à moins de 1km d'un point (un peu arbitraire) de la zone géographique couverte par Paris.
curl https://emplois.inclusion.beta.gouv.fr/api/v1/siaes/\?code_insee\=75056\&distance_max_km\=1\&page_size\=1000 > siae_emploi_paris_petit.json
curl https://emplois.inclusion.beta.gouv.fr/api/v1/siaes/\?code_insee\=75056\&distance_max_km\=20\&page_size\=1000 > siae_emploi_paris_large.json
node <<EOF
const petit = require('./siae_emploi_paris_petit.json')
console.log('sous partie', petit.results.length)
const large = require('./siae_emploi_paris_large.json')
console.log('en tout', large.results.filter(i => i.departement == "75").length)
EOF
dont le résultats, aujourd'hui et sur ma machine est
sous partie 8
en tout 137
Cela étant dit, je ne m'attends pas un calcul complexe de la distance des SIAE à la surface qui correspond à Paris mais à une gestion plus fine pour les données dans une commune en particulier.
Les Users devraient ne pas hériter du AddressMixin non plus, il est donc à retirer du modèle User. Par contre, les JobSeekerProfile devraient connaître l’adresse postale du candidat, en particulier car cette étape est critique lors de la communication avec l’ASP. Cette adresse postale devrait en toute logique être saisie dans un référentiel “ASP” car non seulement ce dernier est plus précis et restrictif, mais en outre il sera de toutes façons utilisé lors de la création de la fiche de poste.
Informations pour l'obtention d'un Pass IAE suite à l'embauche de votre candidat via la Plateforme de l'inclusion :
{% trans "Candidat :" %}
{% trans "Employeur solidaire :" %}
Ajouter un numéro d'agrément dans l'admin : ?? Cette phrase semble concerner le dev Itou plutôt que l'utilisateur ??
À bientôt sur la Plateforme de l'inclusion !
Vous recevez cet e-mail afin de réinitialiser votre mot de passe sur {{ site_name }}.
Nous vous invitons pour cela à cliquer sur le lien ci-dessous pour le réinitialiser.
Si vous n'avez pas demandé la réinitialisation de votre mot de passe, vous pouvez ignorer ce message.
{% if itou_environment == "DEMO"%}
Cet email a été envoyé depuis un environnement de démonstration, merci de ne pas en tenir compte. Pour le bon développement de la Plateforme de l'inclusion, l'équipe ITOU a parfois besoin de réaliser des tests de fonctionnement. Nous vous prions sincèrement de nous en excuser. [DEMO]{% endblocktrans %}
{% endif %}
inclusion.beta.gouv.fr
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.