Giter Site home page Giter Site logo

gip-inclusion / les-emplois Goto Github PK

View Code? Open in Web Editor NEW
27.0 27.0 24.0 69.13 MB

Plate-forme numérique de l'inclusion

Home Page: https://emplois.inclusion.beta.gouv.fr

License: GNU Affero General Public License v3.0

Makefile 0.06% Python 82.66% Shell 0.23% Dockerfile 0.03% HTML 16.44% CSS 0.16% JavaScript 0.43%

les-emplois's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

les-emplois's Issues

invitation_establishment_body.txt

https://github.com/betagouv/itou/blob/84cffa54247bd58f1b572ab8b252ba5e2d1aa96b/itou/templates/invitations_views/email/invitation_establishment_body.txt#L6-L20

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

email lié aux candidatures accept_body.txt

https://github.com/betagouv/itou/blob/8b6602be5bda73600aa4241c34fc4d8ca2896859/itou/templates/apply/email/accept_body.txt#L8-L30

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 !

CANDIDATURES approval_number_body.txt

https://github.com/betagouv/itou/blob/8b6602be5bda73600aa4241c34fc4d8ca2896859/itou/templates/apply/email/approval_number_body.txt#L5-L35

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 !

[Investigation UX] En tant qu’utilisateur j’aimerais pouvoir gérer TOUTES mes notifications

📜 Contexte

Toutes les notifs sont ici :
https://whimsical.com/notifications-C4VLyZenkkNgW5NFhxC9Py

Résumé du besoin :

  • Les utilisateurs reçoivent trop de notifications

Pourquoi ?

  • De nombreuses notifications sont transmises. Actuellement l’utilisateur peut uniquement désactiver les notifs relatives aux candidatures sur un poste

Comment répondre à ce besoin ?

  • permettre de gérer toutes les notifications

Cas d’usage : En tant qu’utilisateur des emplois, je veux contrôler les notifications que je reçois

🛠Espace production :

Détails du Livrable

  • A terme on aimerait que la console de gestion des notifications côté utilisateur permettent de gérer tout type de notif

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)

new_signup_activation_email_to_official_contact_body.txt

https://github.com/betagouv/itou/blob/dedd9a6201e8101ebe58a9db6a86e0b0f02b7a9e/itou/templates/siaes/email/new_signup_activation_email_to_official_contact_body.txt#L6-L23

{% trans "Un nouvel utilisateur souhaite rejoindre votre structure sur la Plateforme de l'inclusion !" %}

{% trans "Structure :" %}

  • {% trans "Nom" %} : {{ siae.display_name }}
  • {% trans "SIRET" %} : {{ siae.siret }}
  • {% trans "Type" %} : {{ siae.kind }}
  • {% trans "Email de contact" %} : {{ siae.auth_email }}

{% 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...)." %}

refused_prescriber_organization_email_body.txt

https://github.com/betagouv/itou/blob/dedd9a6201e8101ebe58a9db6a86e0b0f02b7a9e/itou/templates/prescribers/email/refused_prescriber_organization_email_body.txt#L6

{% 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 }}{%

CANDIDATURES refuse_body.txt

https://github.com/betagouv/itou/blob/8b6602be5bda73600aa4241c34fc4d8ca2896859/itou/templates/apply/email/refuse_body.txt#L8-L14

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.

Problèmes conventionnement et annexes financières (AF)

Pour faire suite à notre conversation sur Ajout de l'interface "Mes annexes financières".

Avant-propos

Ne concerne que les structures d'insertion par l'activité économique.

Vocabulaire

Pourquoi stocker les conventions et les AF ?

  1. Détecter qu'un conventionnement est terminé
  2. Envoyer les numéros d'AF à l'ASP dans les fiches salariés (point controversé mais finalement nécessaire ?)

Différences de modélisation ASP/ITOU

  • côté ASP : 1 siret peut avoir n mesures (ex : AI et EI)
  • côté ITOU : contrainte d'unicité siret/kind (le champ kind est l'équivalent du terme ASP mesure)

=> 1 SIAE dans le SI ASP == n SIAE dans le SI ITOU

Historique de création de SIAE dans le SI ITOU

  1. Origine :
    • import d'un fichier CSV fourni par la DGEFP
    • les admin ITOU peuvent créer des SIAE (sans trace du created_by et sans restriction)
  2. 02/12/2019 : Siae Evolutions les utilisateurs peuvent créer des SIAE
    • ajout de Siae.created_by + Siae.source
    • ajout de la possibilité de créer une SIAE
      • la nouvelle SIAE doit commencer par le même SIREN
      • la nouvelle SIAE peut avoir n'importe quel type
  3. 24/04/2020 : vgrange/inject_siae_export_from_asp
    • début des travaux de synchronisation avec l'ASP en "combinant" des exports
    • certaines SIAE sont créées automatiquement
  4. 07/09/2020 : vgrange/restrict_siae_creation
    • la nouvelle SIAE doit appartenir au même 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

Modélisation des conventions et annexes financières dans ITOU

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 :

  • on peut créer une SIAE depuis n'importe quelle SIAE active, pas forcément la SIAE "mère"
  • on aurait tout stocké "à plat" dans le modéle SIAE qui continue de grossir par ailleurs, en contradiction avec les règles élémentaires des formes normales
  • 1 mesure au sens ASP peut avoir plusieurs AF, comment aurait-on pu avoir 1 AF par chantier pour une ACI ?

En atelier avec tous les devs on a décidé d'une autre abstraction :

siae_convention_fa_small

Problèmes

1) Notre modélisation est-elle correcte ?

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.

2) Impossible de comprendre le champ 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

3) Manque de commentaires

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)

4) Simplifier le code relatif à la période de grâce

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.

5) Améliorer la liaison SIAE/conventionnement

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.

En tant qu’employeur je précise le poste sur lequel le candidat est embauché

📜 Contexte

Résumé du besoin :

  • Permettre à un employeur de préciser le poste sur lequel le candidat est retenu

Pourquoi ?

  • Suivi employeur
  • Données plus fiables pour le c2 (car actuellement une embauche peut englober plusieurs postes)

Comment répondre à ce besoin ?

  • Ajout de nouveaux champs “poste retenu” et “localisation” au moment de l’embauche

🛠Espace production (voir capture ci-dessous)

:faked: Changer certaines bannières infos/alertes par des toasts

📜 Contexte

Résumé du besoin :

  • Réduire le nombre de bannières info/alerte sur l’ensemble de l’interface

Pourquoi ?

  • Trop de bannière annule leur impact pour l’utilisateur. Résultat ils ne lisent plus les messages et ça nuit à l’expérience globale.

Comment répondre à ce besoin ?

  • Transformer certaines bannières qui ont un rôle plutôt de réassurance en toasts.
  • En profiter pour ajuster certains contenus (wording)

🛠Espace production :

Ecran(s) concerné(s)

  • Accueil
  • dashboard
  • siae/job_description_list
  • invitations/invite_siae_staff
  • apply/
  • employee_record/

new_signup_warning_email_to_existing_members_body.txt

https://github.com/betagouv/itou/blob/dedd9a6201e8101ebe58a9db6a86e0b0f02b7a9e/itou/templates/prescribers/email/new_signup_warning_email_to_existing_members_body.txt#L6

{% 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 }}

Looks good!

Tourne parfaitement en local dev au premier essai. Même pas besoin de PR. Congrats @kemar ! 👍

image

CANDIDATURES new_for_job_seeker_body.txt

https://github.com/betagouv/itou/blob/8b6602be5bda73600aa4241c34fc4d8ca2896859/itou/templates/apply/email/new_for_job_seeker_body.txt#L8-L14

{% 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.

Renvoyer toutes les structures du CODE_INSEE indiqué quelque soit la distance indiquée dans l'API

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.

Users : convertir l’AddressMixin en adresse ASP sur JobSeekerProfile

⚠️ À faire après la mise en place de l’autocomplétion.

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.

email lié aux candidatures accept_trigger_approval_body.txt

https://github.com/betagouv/itou/blob/8b6602be5bda73600aa4241c34fc4d8ca2896859/itou/templates/apply/email/accept_trigger_approval_body.txt#L4-L25

Informations pour l'obtention d'un Pass IAE suite à l'embauche de votre candidat via la Plateforme de l'inclusion :

{% trans "Candidat :" %}

  • Nom : {{ job_application.job_seeker.last_name }}
  • Prénom : {{ job_application.job_seeker.first_name }}{% if job_application.job_seeker.email %}
  • Email : {{ job_application.job_seeker.email }}{% endif %}
  • Date de naissance : {{ job_application.job_seeker.birthdate|date:"d/m/Y" }}

{% trans "Employeur solidaire :" %}

  • Siret : {{ job_application.to_siae.siret }}
  • Nom : {{ job_application.to_siae.display_name }}
  • Type : {{ job_application.to_siae.kind }} ({{ job_application.to_siae.get_kind_display }})
  • Département : {{ job_application.to_siae.get_department_display }}
  • Date de début du contrat : {{ job_application.hiring_start_at|date:"d/m/Y" }}{% if job_application.hiring_end_at %}
  • Date de fin du contrat : {{ job_application.hiring_end_at|date:"d/m/Y" }}{% endif %}{% if accepted_by %}
  • Accepté par : {{ accepted_by.get_full_name }} - {{ accepted_by.email }}{% endif %}

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 !

itou/itou/templates/account/email/password_reset_key_message.txt

https://github.com/betagouv/itou/blob/8b6602be5bda73600aa4241c34fc4d8ca2896859/itou/templates/account/email/password_reset_key_message.txt#L1-L12

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.