Merge pull request #2464 from betagouv/improve-feedback
Improve feedback
This commit is contained in:
commit
1a76836461
8 changed files with 43 additions and 12 deletions
|
@ -1,6 +1,6 @@
|
||||||
class NewUser::FeedbacksController < ApplicationController
|
class NewUser::FeedbacksController < ApplicationController
|
||||||
def create
|
def create
|
||||||
current_user.feedbacks.create!(mark: params[:mark])
|
current_user.feedbacks.create!(rating: params[:rating])
|
||||||
flash.notice = "Merci de votre retour, si vous souhaitez nous en dire plus, n'hésitez pas à <a href='mailto:#{CONTACT_EMAIL}' target='_blank'>nous contacter par email</a>."
|
flash.notice = "Merci de votre retour, si vous souhaitez nous en dire plus, n'hésitez pas à <a href='mailto:#{CONTACT_EMAIL}' target='_blank'>nous contacter par email</a>."
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -89,16 +89,16 @@ class StatsController < ApplicationController
|
||||||
|
|
||||||
def satisfaction_usagers
|
def satisfaction_usagers
|
||||||
legend = {
|
legend = {
|
||||||
"0" => "Mécontents",
|
Feedback.ratings.fetch(:unhappy) => "Mécontents",
|
||||||
"1" => "Neutres",
|
Feedback.ratings.fetch(:neutral) => "Neutres",
|
||||||
"2" => "Satisfaits"
|
Feedback.ratings.fetch(:happy) => "Satisfaits"
|
||||||
}
|
}
|
||||||
|
|
||||||
totals = Feedback.where(created_at: 5.weeks.ago..Time.now).group_by_week(:created_at).count
|
totals = Feedback.where(created_at: 5.weeks.ago..Time.now).group_by_week(:created_at).count
|
||||||
|
|
||||||
(0..2).map do |mark|
|
Feedback::rating.values.map do |rating|
|
||||||
data = Feedback
|
data = Feedback
|
||||||
.where(created_at: 5.weeks.ago..Time.now, mark: mark)
|
.where(created_at: 5.weeks.ago..Time.now, rating: rating)
|
||||||
.group_by_week(:created_at)
|
.group_by_week(:created_at)
|
||||||
.count
|
.count
|
||||||
.map do |week, count|
|
.map do |week, count|
|
||||||
|
@ -112,7 +112,7 @@ class StatsController < ApplicationController
|
||||||
end.to_h
|
end.to_h
|
||||||
|
|
||||||
{
|
{
|
||||||
name: legend[mark.to_s],
|
name: legend[rating],
|
||||||
data: data
|
data: data
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
class Feedback < ApplicationRecord
|
class Feedback < ApplicationRecord
|
||||||
belongs_to :user
|
belongs_to :user
|
||||||
|
|
||||||
|
enum rating: {
|
||||||
|
happy: 'happy',
|
||||||
|
neutral: 'neutral',
|
||||||
|
unhappy: 'unhappy'
|
||||||
|
}
|
||||||
end
|
end
|
||||||
|
|
|
@ -58,11 +58,11 @@
|
||||||
#user-satisfaction
|
#user-satisfaction
|
||||||
%h3 Que pensez-vous de la facilité d'utilisation de ce service ?
|
%h3 Que pensez-vous de la facilité d'utilisation de ce service ?
|
||||||
.icons
|
.icons
|
||||||
= link_to feedback_path(mark: 0), data: { remote: true, method: :post } do
|
= link_to feedback_path(rating: Feedback.ratings.fetch(:unhappy)), data: { remote: true, method: :post } do
|
||||||
%span.icon.frown
|
%span.icon.frown
|
||||||
= link_to feedback_path(mark: 1), data: { remote: true, method: :post } do
|
= link_to feedback_path(rating: Feedback.ratings.fetch(:neutral)), data: { remote: true, method: :post } do
|
||||||
%span.icon.meh
|
%span.icon.meh
|
||||||
= link_to feedback_path(mark: 2), data: { remote: true, method: :post } do
|
= link_to feedback_path(rating: Feedback.ratings.fetch(:happy)), data: { remote: true, method: :post } do
|
||||||
%span.icon.smile
|
%span.icon.smile
|
||||||
|
|
||||||
- else
|
- else
|
||||||
|
|
5
db/migrate/20180827102828_add_rating_to_feedbacks.rb
Normal file
5
db/migrate/20180827102828_add_rating_to_feedbacks.rb
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
class AddRatingToFeedbacks < ActiveRecord::Migration[5.2]
|
||||||
|
def change
|
||||||
|
add_column :feedbacks, :rating, :string
|
||||||
|
end
|
||||||
|
end
|
|
@ -10,7 +10,7 @@
|
||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# It's strongly recommended that you check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema.define(version: 2018_08_22_162952) do
|
ActiveRecord::Schema.define(version: 2018_08_27_102828) do
|
||||||
|
|
||||||
# These are extensions that must be enabled in order to support this database
|
# These are extensions that must be enabled in order to support this database
|
||||||
enable_extension "plpgsql"
|
enable_extension "plpgsql"
|
||||||
|
@ -323,6 +323,7 @@ ActiveRecord::Schema.define(version: 2018_08_22_162952) do
|
||||||
t.integer "mark"
|
t.integer "mark"
|
||||||
t.datetime "created_at", null: false
|
t.datetime "created_at", null: false
|
||||||
t.datetime "updated_at", null: false
|
t.datetime "updated_at", null: false
|
||||||
|
t.string "rating"
|
||||||
t.index ["user_id"], name: "index_feedbacks_on_user_id"
|
t.index ["user_id"], name: "index_feedbacks_on_user_id"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
19
lib/tasks/2018_08_27_migrate_feedbacks.rake
Normal file
19
lib/tasks/2018_08_27_migrate_feedbacks.rake
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
require Rails.root.join("lib", "tasks", "task_helper")
|
||||||
|
|
||||||
|
namespace :'2018_08_27_migrate_feedbacks' do
|
||||||
|
task run: :environment do
|
||||||
|
MAPPING = {
|
||||||
|
0 => Feedback.ratings.fetch(:unhappy),
|
||||||
|
1 => Feedback.ratings.fetch(:neutral),
|
||||||
|
2 => Feedback.ratings.fetch(:happy)
|
||||||
|
}
|
||||||
|
|
||||||
|
MAPPING.keys.each do |mark|
|
||||||
|
rating = MAPPING[mark]
|
||||||
|
|
||||||
|
Feedback
|
||||||
|
.where(mark: mark)
|
||||||
|
.update_all(rating: rating)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -1,5 +1,5 @@
|
||||||
FactoryBot.define do
|
FactoryBot.define do
|
||||||
factory :feedback do
|
factory :feedback do
|
||||||
mark 3
|
rating Feedback.ratings.fetch(:happy)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue