From 2e427c289f33d378d5ad50fa2b5117468fa512bd Mon Sep 17 00:00:00 2001 From: secretpray Date: Thu, 7 Mar 2024 10:49:14 +0200 Subject: [PATCH] some profile fixes --- .tool-versions | 1 + app/assets/images/default_avatar.jpeg | Bin 0 -> 1021 bytes app/controllers/profiles_controller.rb | 10 +++++++++- app/helpers/profile_helper.rb | 13 +++++++++++++ app/models/profile.rb | 16 ++++++++++++++++ app/models/user.rb | 2 ++ app/views/layouts/_header.html.erb | 6 +++--- app/views/properties/_reviews.html.erb | 6 +++--- app/views/properties/_reviews_modal.html.erb | 6 +++--- app/views/shared/_profile_sidebar.html.erb | 2 +- config/routes.rb | 12 ++++++------ db/seeds.rb | 3 +++ 12 files changed, 60 insertions(+), 17 deletions(-) create mode 100644 .tool-versions create mode 100644 app/assets/images/default_avatar.jpeg create mode 100644 app/helpers/profile_helper.rb diff --git a/.tool-versions b/.tool-versions new file mode 100644 index 0000000..306ab33 --- /dev/null +++ b/.tool-versions @@ -0,0 +1 @@ +ruby 3.1.4 diff --git a/app/assets/images/default_avatar.jpeg b/app/assets/images/default_avatar.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..903ab6b828222497eeb424ce72b7573b7655f6d2 GIT binary patch literal 1021 zcmex=_1P|rX?qqI0P zFI~aY%U!`Mz|~!$%*;qrN1?DZF(6Oj-S5fuR$!pIEN!@|nR z%E~Fi%grl7GWdUhL6C#NfWd&7QHg;`kdaxC@&6G9c?JeXR-jiwzJ&rtCZHSH*f}`4 zxPc0`3NSD+GBY!=FoRqTR9y>{XJ8Rz6;d>GWD^cdWLGK_F>0K+kVDyN<3Z7&iyu^s zlZu)+xx~aJB&Af<)HO7@(s#)lOnKGb1qam<1W^8GhaC(z-T%+1WK&0+F{HF8kaLw`E^xcc9oo zG~>_fyCwGRx9ocJR(;!e?|lEP>{i~%Z}^#}$NZ>Y{Mziz>TKCLKYpfd4_G2!U}3`e z(0;CHe%NKTi(93;wHsJAY`fgoexX0fAZz(k2iDU63|#k2Kh`Mz`|R@2`0tzgw(JS3 zqk``qUm3l%p=?h$o1(-?-7gFHmuRf2a``^ps>Ue(w(i=C@-|)v8|>p>daw2`&s~02 zwRgkrUCd89XK1Luc93)Y82LC~?1b=p9SwQ;d$0d=tg~DD>Qn6Ll`(sNlRnmlnS?Kne{26ueHzENA=dw>RPOHH6RA80zH@&T z{1tv7gkegcD??GefQ_PjN6GOWO$MeCBAbl*QkYlCzkL67z2N#~`_D)H{C>=gds)Te VpzV%ZS&mMrVv}z8o5B45CIIm)e2xGB literal 0 HcmV?d00001 diff --git a/app/controllers/profiles_controller.rb b/app/controllers/profiles_controller.rb index cc9d429..f467b01 100644 --- a/app/controllers/profiles_controller.rb +++ b/app/controllers/profiles_controller.rb @@ -1,4 +1,12 @@ class ProfilesController < ApplicationController - def show + before_action :authenticate_user! + before_action :set_user + + def show; end + + private + + def set_user + @user = current_user end end diff --git a/app/helpers/profile_helper.rb b/app/helpers/profile_helper.rb new file mode 100644 index 0000000..475f6f5 --- /dev/null +++ b/app/helpers/profile_helper.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +# Helper methods for the User Profile +module ProfileHelper + def avatar_for(user, classes: "h-12 w-12 rounded-full" ) + user_name = user.name || "User" + if user.avatar.attached? + image_tag user.avatar, alt: user_name, class: classes + else + image_tag 'default_avatar.jpeg', alt: user_name, class: classes + end + end +end diff --git a/app/models/profile.rb b/app/models/profile.rb index 638716d..8f12731 100644 --- a/app/models/profile.rb +++ b/app/models/profile.rb @@ -2,4 +2,20 @@ class Profile < ApplicationRecord belongs_to :user has_one_attached :picture + + before_validation :set_default_picture, on: :create + + alias owner user + alias avatar picture + + private + + def set_default_picture + return if picture.attached? + + picture.attach(io: File.open(Rails.root.join('app', 'assets', 'images', 'default_avatar.jpeg')), + filename: 'default_avatar.jpeg', + content_type: 'image/jpeg') + end + end diff --git a/app/models/user.rb b/app/models/user.rb index 856f301..98d73ee 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -16,6 +16,8 @@ class User < ApplicationRecord after_create :new_profile + delegate :name, :address_1, :address_2, :city, :state, :country, :avatar, to: :profile + def new_profile self.profile = Profile.new save! diff --git a/app/views/layouts/_header.html.erb b/app/views/layouts/_header.html.erb index a0ac11f..cc0723f 100644 --- a/app/views/layouts/_header.html.erb +++ b/app/views/layouts/_header.html.erb @@ -51,8 +51,8 @@