Skip to content

Commit

Permalink
Merge branch 'production' into agd/dsfr-migration-invitation-form-and…
Browse files Browse the repository at this point in the history
…-reset-password-agent
  • Loading branch information
adipasquale authored Dec 26, 2024
2 parents 1d411aa + cfed8cb commit 5565731
Show file tree
Hide file tree
Showing 10 changed files with 72 additions and 25 deletions.
2 changes: 1 addition & 1 deletion app/helpers/absences_helper.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
module AbsencesHelper
CALENDAR_BACKGROUND_COLOR = "rgba(127, 140, 141, 0.7)".freeze
CALENDAR_BACKGROUND_COLOR = "rgba(52, 57, 58, 0.7)".freeze

def absence_tag(absence)
if absence.expired?
Expand Down
4 changes: 4 additions & 0 deletions app/services/concerns/users/creneaux_wizard_concern.rb
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,10 @@ def services
@services ||= matching_motifs.includes(:service).map(&:service).uniq.sort_by(&:name)
end

def follow_up_motifs?
@follow_up_motifs ||= Motif.where(service: services).where.not(bookable_by: :agents).exists?(follow_up: true, deleted_at: nil)
end

def next_availability_by_lieux
return @next_availability_by_lieux if @next_availability_by_lieux

Expand Down
1 change: 1 addition & 0 deletions app/services/off_days.rb
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ def self.to_full_calendar_array
start: jour_ferie.beginning_of_day.as_json,
end: jour_ferie.end_of_day.as_json,
backgroundColor: AbsencesHelper::CALENDAR_BACKGROUND_COLOR,
textColor: "white",
}
end
end
Expand Down
11 changes: 6 additions & 5 deletions app/views/search/_referent_booking_card.html.slim
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,9 @@
span>
| vos rendez-vous
- else
.card
.m-2
| Pour prendre un RDV de suivi avec un de vos agents référent,
span>
= link_to("connectez-vous", users_rdvs_path)
- if context.follow_up_motifs?
.card
.m-2
| Pour prendre un RDV de suivi avec un de vos agents référents,
span>
= link_to("connectez-vous", users_rdvs_path)
7 changes: 2 additions & 5 deletions app/views/static_pages/contact.html.slim
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,10 @@ span> Voir
h3
= mail_to current_domain.support_email,
subject: "[Problème Usager]",
body: "Code postal: \n\rNom: \n\rProblème ou Question:", class: "btn btn-primary" do
span>
i.fa.fa-envelope
body: "Code postal: \n\rNom: \n\rProblème ou Question:", class: "fr-btn fr-btn--icon-left fr-icon-mail-fill" do
| Contacter l'équipe technique

.alert.alert-warning.my-4.d-flex.align-items-center
i.fa.fa-exclamation-triangle>
.fr-alert.fr-alert--warning.fr-mb-3w
.ml-2
- if current_domain == Domain::RDV_MAIRIE
' Nous ne pouvons pas débloquer d'autres créneaux que ceux affichés,
Expand Down
8 changes: 3 additions & 5 deletions app/views/users/users/_form.html.slim
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,13 @@ ruby:
- if rdv_wizard&.rdv&.requires_ants_predemande_number?
= f.input :ants_pre_demande_number, required: true, hint: t("simple_form.hints.user.ants_pre_demande_number_html"), input_html: {style: "text-transform: uppercase;"}
- if user.logged_once_with_franceconnect?
.alert.alert-info.d-flex.align-items-center
.mr-3
.fa.fa-info
div= I18n.t("users.franceconnect_frozen_fields")
.fr-alert.fr-alert--info.fr-mb-1w
= I18n.t("users.franceconnect_frozen_fields")
- if current_user.signed_in_with_invitation_token?
= f.input :email, disabled: user.email.present? && !user.email_changed?, required: true
= f.input :phone_number, as: :tel, required: rdv_wizard&.motif&.phone?
- if user.phone_number.present? && !user.phone_number_mobile?
.alert.alert-warning Vous ne recevrez pas de SMS avec ce numéro non-mobile
.fr-alert.fr-alert--warning.fr-mb-1w Vous ne recevrez pas de SMS avec ce numéro non-mobile
div.mb-2 Préférences de notifications
div= f.input :notify_by_email
div= f.input :notify_by_sms
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
"title" => absence.title,
"start" => absence.starts_at.as_json,
"end" => absence.ends_at.as_json,
"backgroundColor" => "rgba(127, 140, 141, 0.7)",
"backgroundColor" => "rgba(52, 57, 58, 0.7)",
"url" => "/admin/organisations/#{organisation.id}/absences/#{absence.id}/edit",
},
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@
stub_netsize_ok
travel_to(now)
login_as(agent, scope: :agent)
# Depuis que les jours fériés sont affichés sur la journée complète dans le calendrier,
# cela peut nous empêcher de cliquer sur une plage horaire et générer une flaky.
# On les retire pour ce test
allow(OffDays).to receive(:to_full_calendar_array).and_return([])
visit admin_organisation_agent_agenda_path(organisation, agent)
end

Expand Down
54 changes: 48 additions & 6 deletions spec/requests/prendre_rdv_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,30 @@
expect(response.body).to include("Sélectionnez le service avec qui vous voulez prendre un RDV")
end

it "shows a hint to help find a rdv with a referent agent in case the user is looking for the service of a follow_up motifs" do
get root_path(departement: "75", city_code: "75056", latitude: "48.859", longitude: "2.347", address: "Paris 75001")
expect(response.body).to include("Pour prendre un RDV de suivi avec un de vos agents référent")
context "lorsqu’il n’y a pas de motif de suivi associé aux services" do
it "n’affiche pas l’invitation à se connecter pour prendre un RDV de suivi" do
get root_path(departement: "75", city_code: "75056", latitude: "48.859", longitude: "2.347", address: "Paris 75001")
expect(response.body).not_to include("Pour prendre un RDV de suivi avec un de vos agents référents")
end
end

context "lorsqu’il y a un motif de suivi associé aux services" do
let(:bookable_by) { :everyone }
let!(:follow_up_motif) { create(:motif, organisation: organisation, service: motif.service, follow_up: true, bookable_by:) }

it "affiche l’invitation à se connecter pour prendre un RDV de suivi" do
get root_path(departement: "75", city_code: "75056", latitude: "48.859", longitude: "2.347", address: "Paris 75001")
expect(response.body).to include("Pour prendre un RDV de suivi avec un de vos agents référents")
end

context "lorsque le motif est réservable que par un agent" do
let(:bookable_by) { :agents }

it "n’affiche pas l’invitation à se connecter" do
get root_path(departement: "75", city_code: "75056", latitude: "48.859", longitude: "2.347", address: "Paris 75001")
expect(response.body).not_to include("Pour prendre un RDV de suivi avec un de vos agents référents")
end
end
end
end

Expand All @@ -63,9 +84,30 @@
expect(response.body).to include("Sélectionnez le motif de votre RDV")
end

it "shows a hint to help find a rdv with a referent agent in case the user is looking for follow_up motifs" do
get root_path(departement: "75", city_code: "75056", latitude: "48.859", longitude: "2.347", address: "Paris 75001")
expect(response.body).to include("Pour prendre un RDV de suivi avec un de vos agents référent")
context "lorsqu’il n’y a pas de motif de suivi associé aux services" do
it "n’affiche pas l’invitation à se connecter" do
get root_path(departement: "75", city_code: "75056", latitude: "48.859", longitude: "2.347", address: "Paris 75001")
expect(response.body).not_to include("Pour prendre un RDV de suivi avec un de vos agents référents")
end
end

context "lorsqu’il y a un motif de suivi associé aux services" do
let(:bookable_by) { :everyone }
let!(:follow_up_motif) { create(:motif, organisation: organisation, service: motif.service, follow_up: true, bookable_by:) }

it "affiche l’invitation à se connecter pour prendre un RDV de suivi" do
get root_path(departement: "75", city_code: "75056", latitude: "48.859", longitude: "2.347", address: "Paris 75001")
expect(response.body).to include("Pour prendre un RDV de suivi avec un de vos agents référents")
end

context "lorsque le motif est réservable que par un agent" do
let(:bookable_by) { :agents }

it "n’affiche pas l’invitation à se connecter" do
get root_path(departement: "75", city_code: "75056", latitude: "48.859", longitude: "2.347", address: "Paris 75001")
expect(response.body).not_to include("Pour prendre un RDV de suivi avec un de vos agents référents")
end
end
end
end
end
Expand Down
4 changes: 2 additions & 2 deletions spec/services/off_days_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@
describe ".to_full_calendar_array" do
it "returns the proper format for full calendar" do
array = described_class.to_full_calendar_array
expect(array[0].keys).to match_array(%i[title start end backgroundColor])
expect(array[0][:backgroundColor]).to eq "rgba(127, 140, 141, 0.7)"
expect(array[0].keys).to match_array(%i[title start end backgroundColor textColor])
expect(array[0][:backgroundColor]).to eq "rgba(52, 57, 58, 0.7)"
end
end
end

0 comments on commit 5565731

Please sign in to comment.