Skip to content

Commit

Permalink
peut supprimer le responsable de suivi depuis la show d'une évaluation
Browse files Browse the repository at this point in the history
Refacto des tags
  • Loading branch information
marouria authored and etienneCharignon committed Jan 25, 2023
1 parent 61a2834 commit cfcab7f
Show file tree
Hide file tree
Showing 15 changed files with 88 additions and 20 deletions.
11 changes: 8 additions & 3 deletions app/admin/evaluation.rb
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,11 @@
resource.update(mise_en_action_effectuee: params[:mise_en_action_effectuee])
end

member_action :supprimer_responsable_suivi, method: :patch do
resource.update(responsable_suivi: nil)
redirect_to request.referer
end

show do
params[:parties_selectionnees] =
FabriqueRestitution.initialise_selection(resource,
Expand All @@ -108,9 +113,9 @@
end

sidebar :responsable_de_suivi, only: :show, if: proc { resource.responsable_suivi.present? } do
span class: 'responsable-suivi' do
resource.responsable_suivi.nom_complet
end
render 'components/tag', contenu: resource.responsable_suivi.nom_complet,
url: supprimer_responsable_suivi_admin_evaluation_path(resource),
supprimable: can?(:update, Evaluation)
end
sidebar :menu, class: 'menu-sidebar', only: :show

Expand Down
2 changes: 1 addition & 1 deletion app/admin/source_aides.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

index do
column(:categorie) do |a|
render 'components/tag', contenu: t(".categories.#{a.categorie}")
render 'components/tag', contenu: t(".categories.#{a.categorie}"), classes: 'tag-categorie'
end
column :titre
column :description
Expand Down
3 changes: 3 additions & 0 deletions app/assets/images/croix.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
23 changes: 20 additions & 3 deletions app/assets/stylesheets/admin/composants/_tags.scss
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,27 @@
white-space: nowrap;
}

.tag-categorie {
.tag {
@include tag();
.lien-supprimer {
position: absolute;
right: 5px;
img {
vertical-align: baseline;
}
}
}

.tag-supprimable {
padding-right: 1.75rem;
position: relative;
display: block;
span {
margin-right: .75rem;
}
}

.tag-categorie {
&.assistance {
@include tag-couleur($couleur-accent-erreur, $couleur-accent-erreur)
}
Expand All @@ -56,5 +75,3 @@
border-color: $couleur-texte
}
}


8 changes: 4 additions & 4 deletions app/assets/stylesheets/admin/pages/_evaluations.scss
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,13 @@
font-weight: 600;
font-family: $font-texte;
}
.responsable-suivi {
display: inline-block;
.tag {
@include tronque;
display: inline-block;
max-width: calc(#{ $largeur-panel - ($padding * 2) });
background-color: $eva_dark;
padding: 0.25rem 1rem;
border-radius: 0.25rem;
font-weight: 400;
color: white;
background-color: $eva_dark;
}
}
3 changes: 2 additions & 1 deletion app/models/ability_utilisateur.rb
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,8 @@ def droit_evaluation(compte)
can %i[read mise_en_action], Evaluation, campagne: comptes_de_meme_structure(compte)
return unless compte.admin?

can %i[update destroy], Evaluation, campagne: comptes_de_meme_structure(compte)
can %i[update destroy supprimer_responsable_suivi], Evaluation,
campagne: comptes_de_meme_structure(compte)
end

def droit_evenement(compte)
Expand Down
2 changes: 1 addition & 1 deletion app/views/admin/actualites/_actualites.html.arb
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ div class: 'actualites' do
end
div class: 'contenu' do
render 'components/tag', contenu: t(".categories.#{actualite.categorie}"),
classes: actualite.categorie
classes: "tag-categorie #{actualite.categorie}"
h3 class: 'titre' do
link_to actualite.titre, admin_actualite_path(actualite)
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ div class: 'autres-actualites' do
autres_actualites.each do |actualite|
div class: 'actualite' do
render 'components/tag', contenu: t(".categories.#{actualite.categorie}"),
classes: actualite.categorie
classes: "tag-categorie #{actualite.categorie}"
text_node link_to actualite.titre, [:admin, actualite], class: 'lien'
end
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ div class: 'metadonnees' do
div class: 'donnee' do
span 'Publié dans :', class: 'label'
render 'components/tag', contenu: t(".categories.#{actualite.categorie}"),
classes: actualite.categorie
classes: "tag-categorie #{actualite.categorie}"
end
div class: 'donnee' do
span 'Auteur :', class: 'label'
Expand Down
2 changes: 1 addition & 1 deletion app/views/admin/campagnes/_situation.html.arb
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ div class: 'campagne-situation d-flex align-items-center' do
div class: 'd-flex mb-2' do
h5 situation_configuration.situation.libelle
if questionnaire == Questionnaire::LIVRAISON_AVEC_REDACTION
render 'components/tag', contenu: '+ Exercice de rédaction', classes: 'green'
render 'components/tag', contenu: '+ Exercice de rédaction', classes: 'tag-categorie green'
end
end
para situation_configuration.situation.description
Expand Down
2 changes: 1 addition & 1 deletion app/views/admin/dashboard/_actualite.html.arb
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ div class: 'carte-actualite' do
div class: 'texte' do
div class: 'entete' do
render 'components/tag', contenu: t(".categories.#{actualite.categorie}"),
classes: actualite.categorie
classes: "tag-categorie #{actualite.categorie}"
end
span(class: 'titre') { link_to(actualite.titre, [:admin, actualite]) }
div class: 'footer' do
Expand Down
4 changes: 2 additions & 2 deletions app/views/admin/evaluations/_menu_sidebar.html.arb
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ div class: 'menu menu-transverse' do
if resource.illettrisme_potentiel?
render 'components/tag', image_path: 'demande_aide',
contenu: 'Formation recommandée',
classes: 'orange'
classes: 'tag-categorie orange'
end
end
end
Expand All @@ -43,7 +43,7 @@ div class: 'menu menu-transverse' do
if resource.illettrisme_potentiel?
render 'components/tag', image_path: 'demande_aide',
contenu: 'Formation recommandée',
classes: 'orange'
classes: 'tag-categorie orange'
end
end
end
Expand Down
8 changes: 7 additions & 1 deletion app/views/components/_tag.html.erb
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
<% classes ||= '' %>
<% image_path ||= nil %>
<% supprimable ||= false %>

<div class="tag-categorie <%= classes %>">
<div class="tag<%= ' tag-supprimable' if supprimable %> <%= classes %>">
<% if image_path.present? %>
<%= image_tag("#{image_path}.png", class: 'tag__icone') %>
<% end %>
<span><%= contenu %></span>
<% if supprimable %>
<%= link_to url, method: :patch, class: 'lien-supprimer' do %>
<%= image_tag("croix.svg") %>
<% end %>
<% end %>
</div>
35 changes: 35 additions & 0 deletions spec/features/admin/evaluation_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -287,6 +287,41 @@
expect(page.current_url).to eql(admin_campagne_url(ma_campagne))
end
end

describe 'responsable de suivi' do
let(:mon_collegue) { create :compte_admin, structure: mon_compte.structure }
let(:evaluation) do
create :evaluation, campagne: ma_campagne, responsable_suivi: mon_collegue
end

context "en tant qu'admin" do
before { visit admin_evaluation_path(evaluation) }

it "peut retirer l'assignation de n'importe quel collègue de ma structure" do
within('#responsable_de_suivi_sidebar_section') do
find('a.lien-supprimer').click
end
expect(page).not_to have_content(mon_collegue.email)
expect(evaluation.reload.responsable_suivi).to eq nil
end
end

context 'en tant que conseiller' do
let!(:admin) { create :compte_admin, structure: mon_compte.structure }

before do
mon_compte.update(role: 'conseiller')
visit admin_evaluation_path(evaluation)
end

it "ne peut pas retirer l'assignation" do
within('#responsable_de_suivi_sidebar_section') do
expect(page).to have_content(evaluation.responsable_suivi.nom_complet)
expect(page).not_to have_selector('.lien-supprimer')
end
end
end
end
end

describe 'Edition' do
Expand Down
1 change: 1 addition & 0 deletions spec/integrations/ability_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,7 @@
let(:evaluation) { create :evaluation, campagne: ma_campagne }

it { is_expected.to be_able_to(:update, evaluation) }
it { is_expected.to be_able_to(:supprimer_responsable_suivi, evaluation) }
end
end

Expand Down

0 comments on commit cfcab7f

Please sign in to comment.