Skip to content

Commit

Permalink
eligibility: Add message when linking a diagnosis to a non authorized…
Browse files Browse the repository at this point in the history
… org
  • Loading branch information
tonial committed Jan 28, 2025
1 parent 76c2a62 commit c579dab
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 6 deletions.
5 changes: 4 additions & 1 deletion itou/eligibility/admin.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from django.contrib import admin
from django.contrib import admin, messages
from django.contrib.admin.templatetags import admin_list
from django.forms import ValidationError
from django.forms.models import BaseInlineFormSet
Expand Down Expand Up @@ -181,6 +181,9 @@ def is_valid(self, obj):
def save_model(self, request, obj, form, change):
if not obj.pk:
obj.expires_at = self.model._expiration_date(obj.author)
# We cannot make this message in the admin form
if obj.author_prescriber_organization_id and not obj.author_prescriber_organization.is_authorized:
messages.warning(request, "L'organisation prescriptrice n'est actuellement pas habilitée.")
return super().save_model(request, obj, form, change)


Expand Down
2 changes: 0 additions & 2 deletions itou/eligibility/admin_form.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,6 @@ def clean(self):
elif not author_prescriber_organization.memberships.filter(user=author).exists():
# Allow inactive membership as we may want to fix old diagnoses
self.add_error("author_prescriber_organization", "L'auteur n'appartient pas à cette organisation.")
if author_prescriber_organization and not author_prescriber_organization.is_authorized:
logger.warning("L'organization prescriptrice n'est actuellement pas habilité.")
elif author.kind == UserKind.EMPLOYER:
if not author_kind == self.author_company_kind:
self.add_error("author_kind", "Le type ne correspond pas à l'auteur.")
Expand Down
9 changes: 6 additions & 3 deletions tests/eligibility/test_admin.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import datetime

import pytest
from django.contrib import messages
from django.urls import reverse
from freezegun import freeze_time
from pytest_django.asserts import assertRedirects
Expand Down Expand Up @@ -200,15 +201,17 @@ def test_add_eligibility_diagnostic_bad_prescriber(self, admin_client, kind):
]
assert not self.get_diag_model(kind).objects.exists()

def test_add_eligibility_diagnostic_unauthorized_prescriber(self, admin_client, kind, caplog):
def test_add_eligibility_diagnostic_unauthorized_prescriber(self, admin_client, kind):
author = PrescriberFactory(membership=True)
post_data = self.build_post_data(kind, author, JobSeekerFactory(), with_administrative_criteria=False)

response = admin_client.post(self.get_add_url(kind), data=post_data)
response = admin_client.post(self.get_add_url(kind), data=post_data, follow=True)
assertRedirects(response, self.get_list_url(kind))

assert self.get_diag_model(kind).objects.count() == 1
assert caplog.messages[0] == "L'organization prescriptrice n'est actuellement pas habilité."
assert list(response.context["messages"])[0] == messages.Message(
messages.WARNING, "L'organisation prescriptrice n'est actuellement pas habilitée."
)

def test_add_eligibility_diagnostic_employer_bad_author_kind(self, admin_client, kind):
author = self.user_factory(kind, UserKind.EMPLOYER)
Expand Down

0 comments on commit c579dab

Please sign in to comment.