From 89f79d804bfd48c30a112b98ca3e7c1cb5a6da3f Mon Sep 17 00:00:00 2001 From: Jannik Pulfer Date: Fri, 23 Feb 2024 12:45:02 +0100 Subject: [PATCH] make view display nil properties of person as -, create picture controller and remove picture_path method from people_controller, use new picture controller to load pictures correctly in view --- app/controllers/people_controller.rb | 10 ---------- app/controllers/picture_controller.rb | 6 ++++++ app/helpers/picture_helper.rb | 2 ++ app/views/people/edit.html.haml | 4 ++-- app/views/people/show.html.haml | 20 +++++++++++++++----- public/default_avatar.png | Bin 25878 -> 0 bytes spec/helpers/picture_helper_spec.rb | 15 +++++++++++++++ spec/requests/picture_request_spec.rb | 5 +++++ 8 files changed, 45 insertions(+), 17 deletions(-) create mode 100644 app/controllers/picture_controller.rb create mode 100644 app/helpers/picture_helper.rb delete mode 100644 public/default_avatar.png create mode 100644 spec/helpers/picture_helper_spec.rb create mode 100644 spec/requests/picture_request_spec.rb diff --git a/app/controllers/people_controller.rb b/app/controllers/people_controller.rb index 7b7d107ae..f28c7ed60 100644 --- a/app/controllers/people_controller.rb +++ b/app/controllers/people_controller.rb @@ -3,8 +3,6 @@ class PeopleController < CrudController include ExportController - helper_method :picture_path - self.permitted_attrs = %i[birthdate location marital_status updated_by name nationality nationality2 title competence_notes company_id email department_id shortname] @@ -42,12 +40,4 @@ def export type: 'application/vnd.oasis.opendocument.text', disposition: content_disposition('attachment', filename) end - - def picture_path - if @person.picture.file - @person.picture.url - else - "/default_avatar.png" - end - end end diff --git a/app/controllers/picture_controller.rb b/app/controllers/picture_controller.rb new file mode 100644 index 000000000..a523f6b05 --- /dev/null +++ b/app/controllers/picture_controller.rb @@ -0,0 +1,6 @@ +class PictureController < ApplicationController + def show + picture_url = @person.picture.file.nil? ? default_avatar_path : @person.picture.url + send_file(picture_url, disposition: 'inline') + end +end diff --git a/app/helpers/picture_helper.rb b/app/helpers/picture_helper.rb new file mode 100644 index 000000000..42cb833cd --- /dev/null +++ b/app/helpers/picture_helper.rb @@ -0,0 +1,2 @@ +module PictureHelper +end diff --git a/app/views/people/edit.html.haml b/app/views/people/edit.html.haml index a3574b797..d1c75c1a2 100644 --- a/app/views/people/edit.html.haml +++ b/app/views/people/edit.html.haml @@ -2,8 +2,8 @@ = form_with model: @person do |form| %div.d-flex.justify-content-between %div.pe-5 - %img.rounded-circle{src: picture_path, width: '141', height: '141'} - -# = form.file_field :picture + %img.rounded-circle{src: "/api/people/#{@person.id}/picture", width: '141', height: '141'} + = form.file_field :picture %div.pe-5.d-flex %table %tbody diff --git a/app/views/people/show.html.haml b/app/views/people/show.html.haml index 18dba98cc..eb59d9e58 100644 --- a/app/views/people/show.html.haml +++ b/app/views/people/show.html.haml @@ -6,7 +6,7 @@ %turbo-frame{id: "#{dom_id @person}"} %div.d-flex.justify-content-between %div - -# %img.rounded-circle{src: @person.picture, width: '141', height: '141'} + %img.rounded-circle{src: "/api/people/#{@person.id}/picture", width: '141', height: '141'} %div.mt-3= link_to "Bearbeiten", edit_person_path %div.pe-5 %table @@ -21,12 +21,19 @@ %tr %td= @person.title %th.fw-light Funktion - - @person.person_roles.each do |person_role| + - unless @person.person_roles.empty? + - @person.person_roles.each do |person_role| + %tr + %td= "#{person_role.role.name} #{person_role.person_role_level.level} #{person_role.percent.to_i}%" + - else %tr - %td= "#{person_role.role.name} #{person_role.person_role_level.level} #{person_role.percent.to_i}%" + %td - %th.fw-light Organisationseinheit %tr - %td= @person.department&.name + - unless @person.department.nil? + %td= @person.department.name + - else + %td - %th.fw-light Firma %tr %td= @person.company.name @@ -47,7 +54,10 @@ %td= @person.marital_status %th.fw-light Kürzel %tr - %td= @person.shortname + - unless @person.shortname.nil? + %td= @person.shortname + - else + %td - %div %div.fw-light Sprachen %div.border.border-dark-subtle.mt-1.p-2.rounded diff --git a/public/default_avatar.png b/public/default_avatar.png deleted file mode 100644 index 75749ead5d91dc843f6b709ded013486eb7614fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25878 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 diff --git a/spec/helpers/picture_helper_spec.rb b/spec/helpers/picture_helper_spec.rb new file mode 100644 index 000000000..1c022316c --- /dev/null +++ b/spec/helpers/picture_helper_spec.rb @@ -0,0 +1,15 @@ +require 'rails_helper' + +# Specs in this file have access to a helper object that includes +# the PictureHelper. For example: +# +# describe PictureHelper do +# describe "string concat" do +# it "concats two strings with spaces" do +# expect(helper.concat_strings("this","that")).to eq("this that") +# end +# end +# end +RSpec.describe PictureHelper, type: :helper do + pending "add some examples to (or delete) #{__FILE__}" +end diff --git a/spec/requests/picture_request_spec.rb b/spec/requests/picture_request_spec.rb new file mode 100644 index 000000000..a17fc15a5 --- /dev/null +++ b/spec/requests/picture_request_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe "Pictures", type: :request do + +end