Skip to content

Commit

Permalink
fixup : add check
Browse files Browse the repository at this point in the history
  • Loading branch information
tonial committed Jan 27, 2025
1 parent 8d6b7f4 commit f1cc241
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 0 deletions.
3 changes: 3 additions & 0 deletions itou/eligibility/admin_form.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,9 @@ def clean(self):
author_prescriber_organization = self.cleaned_data.get("author_prescriber_organization")
author_company = self.cleaned_data.get(self.author_company_fieldname)

if author_prescriber_organization and author_company:
self.add_error("__all__", "Vous ne pouvez pas saisir une entreprise et une organisation prescriptrice.")

if author and author_kind:
if author.kind == UserKind.PRESCRIBER:
if not author_kind == AuthorKind.PRESCRIBER:
Expand Down
21 changes: 21 additions & 0 deletions tests/eligibility/test_admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
from itou.eligibility.models.geiq import GEIQEligibilityDiagnosis
from itou.eligibility.models.iae import AdministrativeCriteria, EligibilityDiagnosis
from itou.users.enums import UserKind
from tests.companies.factories import CompanyFactory
from tests.eligibility.admin_utils import build_geiq_diag_post_data, build_iae_diag_post_data
from tests.eligibility.factories import IAEEligibilityDiagnosisFactory
from tests.prescribers.factories import PrescriberOrganizationFactory
Expand Down Expand Up @@ -216,3 +217,23 @@ def test_add_eligibility_diagnostic_employer_not_a_member(self, admin_client, ki
response = admin_client.post(self.get_add_url(kind), data=post_data)
assert response.status_code == 200
assert response.context["errors"] == [["L'auteur n'appartient pas à cette structure."]]

@pytest.mark.parametrize("user_kind", [UserKind.EMPLOYER, UserKind.PRESCRIBER])
def test_add_eligibility_not_both_org_and_company(self, admin_client, kind, user_kind):
author = self.user_factory(kind, user_kind)
post_data = self.build_post_data(kind, author=author, job_seeker=JobSeekerFactory())
if user_kind == UserKind.EMPLOYER:
post_data["author_prescriber_organization"] = PrescriberOrganizationFactory().pk
else:
post_data[self.company_field_name(kind)] = CompanyFactory(
kind=CompanyKind.GEIQ if kind == "geiq" else CompanyKind.EI
).pk

response = admin_client.post(self.get_add_url(kind), data=post_data)
assert response.status_code == 200
expected_errors = [["Vous ne pouvez pas saisir une entreprise et une organisation prescriptrice."]]
if kind == "geiq":
# Additional error thanks to the db constraint
expected_errors[0].append("Le diagnostic d'éligibilité GEIQ ne peut avoir 2 structures pour auteur")
assert response.context["errors"] == expected_errors
assert not self.get_diag_model(kind).objects.exists()

0 comments on commit f1cc241

Please sign in to comment.