diff --git a/app/controllers/public/kapsmes_controller.rb b/app/controllers/public/kapsmes_controller.rb
index b7ea470..3e7edec 100644
--- a/app/controllers/public/kapsmes_controller.rb
+++ b/app/controllers/public/kapsmes_controller.rb
@@ -2,9 +2,38 @@
class Public::KapsmesController < ApplicationController
layout "public"
- before_filter :auth_p_customer
+ before_filter :auth_p_customer, :except => :validate_by_token
skip_before_action :update
+
+ def validate_by_token
+ @kapsme = Kapsme.where(:token => params[:id]).first
+ @kapsme.done = true
+
+ @kapsme.save
+
+
+ user = @kapsme.p_customer
+
+ cookies[:p_customer_auth_token] = user.token
+
+
+ user.last_sign_in_at = Time.now
+
+
+ user.save(:validate => false)
+
+
+
+
+
+ redirect_to today_public_kaps_days_path
+
+
+
+
+ end
+
def index
@kapsmes = Kapsme.order(:name).all
diff --git a/app/models/kaps_rappel_item.rb b/app/models/kaps_rappel_item.rb
index ed9b764..2a5ffa5 100644
--- a/app/models/kaps_rappel_item.rb
+++ b/app/models/kaps_rappel_item.rb
@@ -3,14 +3,14 @@ class KapsRappelItem < ActiveRecord::Base
belongs_to :kapsme
belongs_to :kaps_day
-
+ include Rails.application.routes.url_helpers
#require 'mailjet'
def generate_token()
begin
self[:token] = SecureRandom.urlsafe_base64
- end while DataFile.exists?(:token => self[:token])
+ end while KapsRappelItem.exists?(:token => self[:token])
end
@@ -19,7 +19,7 @@ class KapsRappelItem < ActiveRecord::Base
after_create do
puts "BBBBBBBB"
- GeneralMailer.new_send_qi_mail(:to => self.kaps_rappel.kap.p_customer.email, :subject => "Rappel : #{self.kapsme.name}", :body => "Rappel, la tâche \"#{self.kapsme.name}\" n'a pas été cochée aujourd'hui :(
http://kaps.quartz.xyz/", :custom_id => self.token).deliver
+ GeneralMailer.new_send_qi_mail(:to => self.kaps_rappel.kap.p_customer.email, :subject => "Rappel : #{self.kapsme.name}", :body => "Rappel, la tâche \"#{self.kapsme.name}\" n'a pas été cochée aujourd'hui :(
Marquer comme réalisé : #{validate_by_token_public_kapsme_url(self.kapsme.token)}
http://kaps.quartz.xyz/", :custom_id => self.token).deliver
end
diff --git a/app/models/kapsme.rb b/app/models/kapsme.rb
index a26446b..2aa3e5c 100644
--- a/app/models/kapsme.rb
+++ b/app/models/kapsme.rb
@@ -23,8 +23,24 @@ class Kapsme < ActiveRecord::Base
else
self.point_to_count = self.points
end
+
+ if !self.token
+ self.generate_token
+ end
+
end
+ def generate_token
+
+ begin
+ self[:token] = SecureRandom.urlsafe_base64
+ end while Kapsme.exists?(:token => self[:token])
+
+
+ end
+
+
+
belongs_to :kaps_day
diff --git a/app/views/public/kaps_days/show.html.haml b/app/views/public/kaps_days/show.html.haml
index ad31385..1e4d119 100644
--- a/app/views/public/kaps_days/show.html.haml
+++ b/app/views/public/kaps_days/show.html.haml
@@ -7,7 +7,7 @@
-#@kaps_day.generate_kapsmes
- -#KapsRappel.generate_rappels
+ -KapsRappel.generate_rappels
.qi_row
diff --git a/config/routes.rb b/config/routes.rb
index 6341a7f..7a32b20 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -38,7 +38,11 @@ Rails.application.routes.draw do
end
end
resources :kaps
- resources :kapsmes
+ resources :kapsmes do
+ member do
+ get :validate_by_token
+ end
+ end
resources :kaps_days do
collection do
diff --git a/db/migrate/20200204120448_add_token_to_kapsmes.rb b/db/migrate/20200204120448_add_token_to_kapsmes.rb
new file mode 100644
index 0000000..995a938
--- /dev/null
+++ b/db/migrate/20200204120448_add_token_to_kapsmes.rb
@@ -0,0 +1,9 @@
+class AddTokenToKapsmes < ActiveRecord::Migration
+ def change
+ add_column :kapsmes, :token, :string
+
+ Kapsme.all.each do |kp|
+ kp.save
+ end
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 3a32b0f..908a834 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -11,7 +11,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema.define(version: 20200203203853) do
+ActiveRecord::Schema.define(version: 20200204120448) do
create_table "admin_admin_roles", force: :cascade do |t|
t.integer "admin_id", limit: 4
@@ -530,6 +530,7 @@ ActiveRecord::Schema.define(version: 20200203203853) do
t.datetime "updated_at", null: false
t.boolean "paused", default: false
t.integer "point_to_count", limit: 4
+ t.string "token", limit: 255
end
add_index "kapsmes", ["kap_id"], name: "index_kapsmes_on_kap_id", using: :btree