Employeur: Paramètre pour fermer les candidatures spontanées [GEN-758]#5698
Conversation
0dcb4cf to
07e7c8e
Compare
|
On devrait rajouter ce champ à la serialization du SIAE dans l'API ? https://github.com/gip-inclusion/les-emplois/blob/master/tests/api/siae_api/tests.py#L111 |
| </form> | ||
| </td> | ||
| <td></td> | ||
| </tr> |
There was a problem hiding this comment.
@hellodeloo ce n'est pas la même taille que les autres <tr> sur mon navigateur, il y a une différence de quelques pixels. J'hésitais ajouter un taille fixe pour les <tr>. Qu'est-ce que tu penses ?
There was a problem hiding this comment.
Tu peux laisser comme ça. La différence est minime et il est préférable de ne pas bloquer les dimensions
| "Les candidatures spontanées peuvent être ouvertes pendant 90 jours. Une valeur nulle indique que " | ||
| "les candidatures spontanées sont bloquées." | ||
| ), | ||
| ) |
There was a problem hiding this comment.
On a choisis un DateTimeField parce que prochainement ce champs sera mis en False automatiquement chaque 90 jours
| ), | ||
| ) | ||
|
|
||
| def test_blocked_application(self, client): |
There was a problem hiding this comment.
Petit bug corrigé au cours du PR. Je crois que ça vaut le fixe pour éviter un employeur frustré ?
|
|
||
| @freeze_time("2025-01-01") | ||
| def test_toggle_spontaneous_applications(self, client, snapshot): | ||
| response = self._login(client, self.user) |
There was a problem hiding this comment.
Quelle abstraction bizarre que ce login 🙈. Il n’est pas de ton fait, donc rien à corriger, mais je suis surpris.
francoisfreitag
left a comment
There was a problem hiding this comment.
J’ai un peu abrégé la fin de la revue, plus le temps. Désolé.
| response = client.get(self.URL, {"city": guerande.slug}) | ||
| assertContains(response, f"<h3>{company.display_name}</h3>") | ||
| assertContains(response, self.no_spontaneous_applications_str) | ||
| assertNotContains(response, "Cette structure vous intéresse ?") |
There was a problem hiding this comment.
Idéalement, on appairerait le texte de cet assertNotContains avec un assertContains pour être sûr que le texte apparaît bien sur la page.
There was a problem hiding this comment.
Bonne idée ! J'ai proposé l'ajouter sur une assertion dans un autre test (# Has link to job description)
There was a problem hiding this comment.
Je ne vois ni la nouvelle assertion ni une variable partagée contenant ce texte ?
| # Application must not be blocked by the employer at time of access | ||
| if not self.company.has_member(request.user): | ||
| if self.company.block_job_applications: | ||
| messages.error(request, apply_view_constants.ERROR_EMPLOYER_BLOCKING_APPLICATIONS) | ||
| return HttpResponseRedirect(self.get_redirect_url()) | ||
| if ( | ||
| not len(self.apply_session.get("selected_jobs", [])) | ||
| and not self.company.is_open_to_spontaneous_applications | ||
| ): | ||
| messages.error(request, apply_view_constants.ERROR_EMPLOYER_BLOCKING_SPONTANEOUS_APPLICATIONS) | ||
| return HttpResponseRedirect(self.get_redirect_url()) |
There was a problem hiding this comment.
Je ne suis pas sûr que la complexité en vaille le coup. Ça peut être frustrant pour les candidats et prescripteurs ayant effectué la saisie.
Un processus de candidature ne peut pas durer plus d’une semaine (la session expire), et on ne pourra pas en démarrer un nouveau si l’entreprise bloque les candidatures.
J’aurais laissé les processus de candidature démarrés avant que l’entreprise ne bloque les candidatures se terminer.
Au final, la question est quelle date fait foi : le début du processus de candidature ou sa fin ?
There was a problem hiding this comment.
Ça mérite une discussion avec le métier sur le comportement à adopter. On peut leur dire que le fonctionnement actuel est un peu plus simple, mais qu'il peut surprendre les employeurs.
Dans tous les cas, c'est une question intéressante que tu as soulevé 😀
There was a problem hiding this comment.
|
Les premiers commits me semblent très propres 👍 |
07e7c8e to
3e89747
Compare
3e89747 to
b18a5a9
Compare
|
🥁 La recette jetable est prête ! 👉 Je veux tester cette PR ! |
francoisfreitag
left a comment
There was a problem hiding this comment.
En général ça me semble bien.
Il reste quelques retours de recette à traiter sur la carte.
Idéalement, le blocage du processus de candidature immédiatement à la désactivation d’un poste devrait être sorti dans une autre PR. Ça éviterait de mélanger les retours sur les deux fonctionnalités, et on pourrait intégrer l’une dès qu’elle est prête au lieu d’attendre que les deux ne soient prêtes.
| response = client.get(self.URL, {"city": guerande.slug}) | ||
| assertContains(response, f"<h3>{company.display_name}</h3>") | ||
| assertContains(response, self.no_spontaneous_applications_str) | ||
| assertNotContains(response, "Cette structure vous intéresse ?") |
There was a problem hiding this comment.
Je ne vois ni la nouvelle assertion ni une variable partagée contenant ce texte ?
Je dirais de ne pas t’embêter, tant qu’on n’a pas de demande. |
b18a5a9 to
005e222
Compare
Je ne pense pas que ça fait partie du PR ni la carte, sauf j'ai mal compris ta description ? |
005e222 to
6bb5397
Compare
Je parlais de “Disallow job applications in progress if company blocks mid-process” qui devrait idéalement être sorti dans une autre PR. |
6bb5397 to
8172933
Compare
OK, c'est fait ! #5748 |
Via field Company.spontaneous_applications_open_since and control from job_description_list.html
Adds a banner if it's impossible to apply to an enterprise for this reason
8172933 to
3adb7cf
Compare
🤔 Pourquoi ?
Aujourd’hui, il est possible de bloquer toutes les candidatures, ou d’ouvrir et fermer les candidatures pour une fiche de poste en particulier, mais il n’est pas possible de bloquer uniquement les candidatures spontanées.
Or, certaines SIAE ne traitent que les candidatures qui ne sont pas spontanées.
Il faudrait donc pouvoir choisir de bloquer uniquement les candidatures spontanées.
🚨 À vérifier
🏝️ Comment tester ?