Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GPS: Ne pas masquer les informations de contact de l'utilisateur #5483

Merged
merged 1 commit into from
Jan 28, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 30 additions & 22 deletions itou/templates/gps/includes/group_members.html
Original file line number Diff line number Diff line change
Expand Up @@ -54,36 +54,44 @@ <h3>{{ membership.member.get_full_name }}</h3>
<ul class="list-data list-data__two-column-md">
<li>
<small>Adresse e-mail</small>
<button class="btn-link btn-ico has-btn-with-spinner-loading-text"
id="email-{{ membership.member_id }}"
hx-post="{% url "gps:display_contact_info" beneficiary.follow_up_group.id membership.member.public_id "email" %}"
hx-swap="outerHTML"
{% matomo_event "gps" "clic" "displayed_member_email" %}>
<span>Afficher l'email</span>
<div class="stable-text">
<i class="ri-mail-line fw-medium" aria-hidden="true"></i>
</div>
<div class="loading-text">
<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span>
</div>
</button>
</li>
<li>
<small>Téléphone</small>
{% if membership.member.phone %}
{% if membership.member_id != request.user.pk %}
<button class="btn-link btn-ico has-btn-with-spinner-loading-text"
id="phone-{{ membership.member_id }}"
hx-post="{% url "gps:display_contact_info" beneficiary.follow_up_group.id membership.member.public_id "phone" %}"
id="email-{{ membership.member_id }}"
hx-post="{% url "gps:display_contact_info" beneficiary.follow_up_group.id membership.member.public_id "email" %}"
hx-swap="outerHTML"
{% matomo_event "gps" "clic" "displayed_member_phone" %}>
<span>Afficher le téléphone</span>
{% matomo_event "gps" "clic" "displayed_member_email" %}>
<span>Afficher l'email</span>
<div class="stable-text">
<i class="ri-phone-line fw-medium" aria-hidden="true"></i>
<i class="ri-mail-line fw-medium" aria-hidden="true"></i>
</div>
<div class="loading-text">
<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span>
</div>
</button>
{% else %}
{% include "gps/includes/member_email.html" with member=membership.member %}
{% endif %}
</li>
<li>
<small>Téléphone</small>
{% if membership.member.phone %}
{% if membership.member_id != request.user.pk %}
<button class="btn-link btn-ico has-btn-with-spinner-loading-text"
id="phone-{{ membership.member_id }}"
hx-post="{% url "gps:display_contact_info" beneficiary.follow_up_group.id membership.member.public_id "phone" %}"
hx-swap="outerHTML"
{% matomo_event "gps" "clic" "displayed_member_phone" %}>
<span>Afficher le téléphone</span>
<div class="stable-text">
<i class="ri-phone-line fw-medium" aria-hidden="true"></i>
</div>
<div class="loading-text">
<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span>
</div>
</button>
{% else %}
{% include "gps/includes/member_phone.html" with member=membership.member %}
{% endif %}
{% else %}
<i class="text-disabled">Non renseigné</i>
{% endif %}
Expand Down
93 changes: 78 additions & 15 deletions tests/gps/__snapshots__/test_views.ambr
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@
<form>
<input name="csrfmiddlewaretoken" type="hidden" value="NORMALIZED_CSRF_TOKEN"/>

<div class="c-box c-box--results has-links-inside my-md-4" id="card-03580247-b036-4578-bf9d-f92c9c2f68cd">
<div class="c-box c-box--results has-links-inside my-md-4" id="card-[PK of prescriber]">
<div class="c-box--results__header">
<div class="d-flex flex-column flex-lg-row gap-1 gap-lg-3 mb-3">
<p class="fs-sm mb-0 flex-grow-1">
Expand Down Expand Up @@ -215,29 +215,88 @@
<ul class="list-data list-data__two-column-md">
<li>
<small>Adresse e-mail</small>
<button class="btn-link btn-ico has-btn-with-spinner-loading-text" data-matomo-action="clic" data-matomo-category="gps" data-matomo-event="true" data-matomo-option="displayed_member_email" hx-post="/gps/display/[PK of group]/[Public ID of prescriber]/email" hx-swap="outerHTML" id="email-[PK of prescriner]">
<span>Afficher l'email</span>
<div class="stable-text">
<i aria-hidden="true" class="ri-mail-line fw-medium"></i>
</div>
<div class="loading-text">
<span aria-hidden="true" class="spinner-border spinner-border-sm" role="status"></span>
</div>
</button>

<strong>[email protected]</strong>
<button class="btn-link" data-bs-placement="top" data-bs-title="Copié !" data-bs-toggle="tooltip" data-bs-trigger="manual" data-it-clipboard-button="copy" data-it-copy-to-clipboard="[email protected]" data-matomo-action="clic" data-matomo-category="gps" data-matomo-event="true" data-matomo-option="copied_user_phone">
<i aria-hidden="true" class="ri-file-copy-line fw-normal"></i>
<span class="visually-hidden">Copier</span>
</button>



</li>
<li>
<small>Téléphone</small>

<button class="btn-link btn-ico has-btn-with-spinner-loading-text" data-matomo-action="clic" data-matomo-category="gps" data-matomo-event="true" data-matomo-option="displayed_member_phone" hx-post="/gps/display/[PK of group]/[Public ID of prescriber]/phone" hx-swap="outerHTML" id="phone-[PK of prescriber]">
<span>Afficher le téléphone</span>

<strong>0612345678</strong>
<button class="btn-link" data-bs-placement="top" data-bs-title="Copié !" data-bs-toggle="tooltip" data-bs-trigger="manual" data-it-clipboard-button="copy" data-it-copy-to-clipboard="0612345678" data-matomo-action="clic" data-matomo-category="gps" data-matomo-event="true" data-matomo-option="copied_user_phone">
<i aria-hidden="true" class="ri-file-copy-line fw-normal"></i>
<span class="visually-hidden">Copier</span>
</button>




</li>
</ul>
</div>
</div>

<div class="c-box c-box--results has-links-inside my-md-4" id="card-[PK of participant]">
<div class="c-box--results__header">
<div class="d-flex flex-column flex-lg-row gap-1 gap-lg-3 mb-3">
<p class="fs-sm mb-0 flex-grow-1">
<i aria-hidden="true" class="ri-calendar-line fw-normal me-1"></i>
Membre du groupe de suivi depuis le 21/06/2024
</p>

</div>
<div class="c-box--results__summary">

<i aria-hidden="true" class="ri-user-line"></i>

<div>
<h3>François LE FRANÇAIS</h3>
<div class="d-flex flex-column flex-md-row align-items-start align-items-md-end gap-1 gap-md-2">
Prescripteur

</div>
</div>
</div>
</div>
<hr class="m-0"/>
<div class="c-box--results__body">
<ul class="list-data list-data__two-column-md">
<li>
<small>Adresse e-mail</small>

<button class="btn-link btn-ico has-btn-with-spinner-loading-text" data-matomo-action="clic" data-matomo-category="gps" data-matomo-event="true" data-matomo-option="displayed_member_email" hx-post="/gps/display/[PK of group]/[Public ID of participant]/email" hx-swap="outerHTML" id="email-[PK of participant]">
<span>Afficher l'email</span>
<div class="stable-text">
<i aria-hidden="true" class="ri-phone-line fw-medium"></i>
<i aria-hidden="true" class="ri-mail-line fw-medium"></i>
</div>
<div class="loading-text">
<span aria-hidden="true" class="spinner-border spinner-border-sm" role="status"></span>
</div>
</button>

</li>
<li>
<small>Téléphone</small>


<button class="btn-link btn-ico has-btn-with-spinner-loading-text" data-matomo-action="clic" data-matomo-category="gps" data-matomo-event="true" data-matomo-option="displayed_member_phone" hx-post="/gps/display/[PK of group]/[Public ID of participant]/phone" hx-swap="outerHTML" id="phone-[PK of participant]">
<span>Afficher le téléphone</span>
<div class="stable-text">
<i aria-hidden="true" class="ri-phone-line fw-medium"></i>
</div>
<div class="loading-text">
<span aria-hidden="true" class="spinner-border spinner-border-sm" role="status"></span>
</div>
</button>


</li>
</ul>
</div>
Expand Down Expand Up @@ -345,24 +404,28 @@
<ul class="list-data list-data__two-column-md">
<li>
<small>Adresse e-mail</small>
<strong>[email protected]</strong>

<strong>[email protected]</strong>
<button class="btn-link" data-bs-placement="top" data-bs-title="Copié !" data-bs-toggle="tooltip" data-bs-trigger="manual" data-it-clipboard-button="copy" data-it-copy-to-clipboard="[email protected]">
<i aria-hidden="true" class="ri-file-copy-line fw-normal"></i>
<span class="visually-hidden">Copier</span>
</button>



</li>
<li>
<small>Téléphone</small>

<strong>0123456789</strong>

<strong>0123456789</strong>
<button class="btn-link" data-bs-placement="top" data-bs-title="Copié !" data-bs-toggle="tooltip" data-bs-trigger="manual" data-it-clipboard-button="copy" data-it-copy-to-clipboard="0123456789">
<i aria-hidden="true" class="ri-file-copy-line fw-normal"></i>
<span class="visually-hidden">Copier</span>
</button>




</li>
</ul>
Expand Down
29 changes: 18 additions & 11 deletions tests/gps/test_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,12 @@ def test_beneficiary_details(client, snapshot):
)
beneficiary = JobSeekerFactory(for_snapshot=True)
group = FollowUpGroupFactory(beneficiary=beneficiary, memberships=1, memberships__member=prescriber)
participant = FollowUpGroupMembershipFactory(
member__first_name="François",
member__last_name="Le Français",
follow_up_group=group,
created_at=timezone.now(),
).member

client.force_login(prescriber)

Expand All @@ -199,19 +205,20 @@ def test_beneficiary_details(client, snapshot):
"user_organization_id=[PK of organization]",
),
("href", f"beneficiary_id={beneficiary.pk}", "beneficiary_id=[PK of beneficiary]"),
("id", f"card-{prescriber.public_id}", "card-[PK of prescriber]"),
("id", f"card-{participant.public_id}", "card-[PK of participant]"),
(
"hx-post",
f"/gps/display/{group.pk}/{prescriber.public_id}/phone",
"/gps/display/[PK of group]/[Public ID of prescriber]/phone",
f"/gps/display/{group.pk}/{participant.public_id}/phone",
"/gps/display/[PK of group]/[Public ID of participant]/phone",
),
(
"hx-post",
f"/gps/display/{group.pk}/{prescriber.public_id}/email",
"/gps/display/[PK of group]/[Public ID of prescriber]/email",
f"/gps/display/{group.pk}/{participant.public_id}/email",
"/gps/display/[PK of group]/[Public ID of participant]/email",
),
("id", f"phone-{prescriber.pk}", "phone-[PK of prescriber]"),
("id", f"email-{prescriber.pk}", "email-[PK of prescriner]"),
("id", f"card-{prescriber.pk}", "card-[PK of prescriber]"),
("id", f"phone-{participant.pk}", "phone-[PK of participant]"),
("id", f"email-{participant.pk}", "email-[PK of participant]"),
],
)
assert str(html_details) == snapshot
Expand All @@ -227,8 +234,8 @@ def test_beneficiary_details(client, snapshot):
assertContains(response, display_phone_txt)

# Membership card: missing member information.
prescriber.phone = ""
prescriber.save()
participant.phone = ""
participant.save()
response = client.get(user_details_url)
assertContains(response, display_email_txt)
assertNotContains(response, display_phone_txt)
Expand All @@ -249,8 +256,8 @@ def test_beneficiary_details_members_order(client):

html_details = parse_response_to_soup(response, selector="#gps_intervenants")
cards = html_details.find_all("div", attrs={"class": "c-box c-box--results has-links-inside my-md-4"})
participant_pks = [card.attrs["id"].split("card-")[1] for card in cards]
assert participant_pks == [str(participant.public_id), str(prescriber.public_id)]
participant_ids = [card.attrs["id"].split("card-")[1] for card in cards]
assert participant_ids == [str(participant.public_id), str(prescriber.public_id)]


@freezegun.freeze_time("2025-01-20")
Expand Down
Loading