From 70d091c8fd1c64471e0e41c22ea1b58a25240726 Mon Sep 17 00:00:00 2001 From: Nicolas Bally Date: Mon, 3 Feb 2020 22:20:53 +0100 Subject: [PATCH] suite --- Gemfile | 4 ++- Gemfile.lock | 16 +++++++++ app/assets/javascripts/public.js.coffee | 34 +++++++++++++++++++ app/mailers/general_mailer.rb | 6 ++-- app/models/kaps_rappel.rb | 2 +- app/models/kaps_rappel_item.rb | 24 ++++++++++++- app/views/public/kaps_days/show.html.haml | 3 +- config/environments/development.rb | 3 ++ config/environments/production.rb | 4 ++- config/initializers/mailjet.rb | 5 +++ ...03203853_add_token_to_kaps_rappel_items.rb | 5 +++ db/schema.rb | 7 ++-- 12 files changed, 102 insertions(+), 11 deletions(-) create mode 100644 config/initializers/mailjet.rb create mode 100644 db/migrate/20200203203853_add_token_to_kaps_rappel_items.rb diff --git a/Gemfile b/Gemfile index e6f043a..a558141 100644 --- a/Gemfile +++ b/Gemfile @@ -109,4 +109,6 @@ gem 'paypal-sdk-merchant' gem 'searchkick'#, "2.3.1" -gem 'whenever', require: false \ No newline at end of file +gem 'whenever', require: false + +gem "mailjet" \ No newline at end of file diff --git a/Gemfile.lock b/Gemfile.lock index 1707ff6..7feb530 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -82,6 +82,8 @@ GEM currencies (0.4.2) debug_inspector (0.0.2) debugger-linecache (1.2.0) + domain_name (0.5.20190701) + unf (>= 0.0.5, < 1.0.0) elasticsearch (6.0.1) elasticsearch-api (= 6.0.1) elasticsearch-transport (= 6.0.1) @@ -126,6 +128,9 @@ GEM haml (~> 4.0.0) nokogiri (~> 1.6.0) ruby_parser (~> 3.5) + http-accept (1.7.0) + http-cookie (1.0.3) + domain_name (~> 0.5) i18n (0.9.5) concurrent-ruby (~> 1.0) i18n_data (0.7.0) @@ -152,6 +157,10 @@ GEM nokogiri (>= 1.5.9) mail (2.7.0) mini_mime (>= 0.1.1) + mailjet (1.5.4) + activesupport (>= 3.1.0) + rack (>= 1.4.0) + rest-client mime-types (3.2.2) mime-types-data (~> 3.2015) mime-types-data (3.2018.0812) @@ -169,6 +178,7 @@ GEM net-ssh (5.1.0) net-ssh-gateway (1.2.0) net-ssh (>= 2.6.5) + netrc (0.11.0) nokogiri (1.6.8.1) mini_portile2 (~> 2.1.0) oauth2 (1.4.0) @@ -233,6 +243,11 @@ GEM json (~> 1.4) redcarpet (3.3.4) ref (1.0.5) + rest-client (2.1.0) + http-accept (>= 1.7.0, < 2.0) + http-cookie (>= 1.0.2, < 2.0) + mime-types (>= 1.16, < 4.0) + netrc (~> 0.8) rmagick (2.15.4) roo (2.1.1) nokogiri (~> 1) @@ -344,6 +359,7 @@ DEPENDENCIES jbuilder (~> 2.0) jquery-rails kaminari-bootstrap + mailjet mysql2 net-ssh (~> 5.1.0) nokogiri diff --git a/app/assets/javascripts/public.js.coffee b/app/assets/javascripts/public.js.coffee index cc74e41..21d33aa 100644 --- a/app/assets/javascripts/public.js.coffee +++ b/app/assets/javascripts/public.js.coffee @@ -3,6 +3,12 @@ #= require jquery_ujs + + +#= require vendor/jquery-ui +#= require vendor/jquery.ui.widget + +#= require bootstrap #= require ./vendor/jquery.flexslider #= require ./vendor/markerclusterer @@ -256,6 +262,34 @@ top = 20 $ -> + + + $(document).on 'click', 'input.datepicker', -> + $(this).datetimepicker( + language: 'fr' + pickTime: false + ).focus(); + + $(document).on 'click', 'input.datetimepicker', -> + $(this).datetimepicker( + use24hours: true + format: 'DD/MM/YYYY HH:mm' + minuteStepping:15 + language: 'fr' + ).focus(); + + + $(document).on 'click', 'input.timepicker', -> + $(this).datetimepicker( + use24hours: true + format: 'DD/MM/YYYY hh:mm' + minuteStepping:15 + pickDate: false + language: 'fr' + ).focus(); + + + $(window).on "resize", -> resize() diff --git a/app/mailers/general_mailer.rb b/app/mailers/general_mailer.rb index 87f6af9..d5ab4bc 100755 --- a/app/mailers/general_mailer.rb +++ b/app/mailers/general_mailer.rb @@ -1,5 +1,5 @@ class GeneralMailer < ActionMailer::Base - default from: "Kaps " + default from: "Kaps " add_template_helper(MailHelper) @@ -29,7 +29,9 @@ class GeneralMailer < ActionMailer::Base def new_send_qi_mail(options = {}) - mail to: options[:to], :subject => options[:subject] do |format| + + + mail to: options[:to], :subject => options[:subject], :"X-MJ-CustomID" => options[:custom_id] do |format| format.html { render :inline => options[:body] } end diff --git a/app/models/kaps_rappel.rb b/app/models/kaps_rappel.rb index cc430f6..fb91074 100644 --- a/app/models/kaps_rappel.rb +++ b/app/models/kaps_rappel.rb @@ -19,7 +19,7 @@ class KapsRappel < ActiveRecord::Base def generate_rappel(kaps_day, time) if kaps_rappel_items = KapsRappelItem.where(:kaps_rappel_id => self.id, :kaps_day_id => kaps_day.id) and count = kaps_rappel_items.count and count < (self.nbr_rep.to_i + 1) - if kapsme = kaps_day.kapsmes.where(:kap_id => self.kap_id).first and ((!kapsme.done and !kapsme.paused) or (!kapsme.done and self.paused_inc)) ) + if kapsme = kaps_day.kapsmes.where(:kap_id => self.kap_id).first and ((!kapsme.done and !kapsme.paused) or (!kapsme.done and self.paused_inc)) if kaps_rappel_items.count == 0 or (time > kaps_rappel_items.order("created_at DESC").first.created_at + (self.minutes_rep.to_i >= 1 ? self.minutes_rep.to_i : 15).minutes) KapsRappelItem.create(:kaps_rappel_id => self.id, :kaps_day_id => kaps_day.id, :kapsme_id => kaps_day.kapsmes.where(:kap_id => self.kap_id).first.id, :number => (count + 1)) diff --git a/app/models/kaps_rappel_item.rb b/app/models/kaps_rappel_item.rb index de4cfef..ed9b764 100644 --- a/app/models/kaps_rappel_item.rb +++ b/app/models/kaps_rappel_item.rb @@ -4,11 +4,33 @@ class KapsRappelItem < ActiveRecord::Base belongs_to :kaps_day + #require 'mailjet' + + def generate_token() + + begin + self[:token] = SecureRandom.urlsafe_base64 + end while DataFile.exists?(:token => self[:token]) + end + + + before_create { generate_token() } + 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/").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 :(
http://kaps.quartz.xyz/", :custom_id => self.token).deliver end + + def get_mailjet_infos + + + + + return Mailjet::Message.all("CustomID" => KapsRappelItem.last.token) + + end + end diff --git a/app/views/public/kaps_days/show.html.haml b/app/views/public/kaps_days/show.html.haml index 86199c2..1e4d119 100644 --- a/app/views/public/kaps_days/show.html.haml +++ b/app/views/public/kaps_days/show.html.haml @@ -7,8 +7,7 @@ -#@kaps_day.generate_kapsmes - -#KapsRappel.generate_rappels - + -KapsRappel.generate_rappels .qi_row diff --git a/config/environments/development.rb b/config/environments/development.rb index a09af37..ebea2ba 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -44,8 +44,11 @@ Rails.application.configure do #config.action_mailer.delivery_method = :file config.action_mailer.delivery_method = :smtp + config.action_mailer.smtp_settings = { :address => "127.0.0.1", :port => 1025 } + + config.action_mailer.default_url_options = { :host => HOSTNAME } Rails.application.routes.default_url_options = config.action_mailer.default_url_options = { :host => HOSTNAME, :protocol => 'http' } diff --git a/config/environments/production.rb b/config/environments/production.rb index bf81442..f6fe838 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -84,8 +84,10 @@ Rails.application.configure do config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { - :address => "localhost", + :address => "in-v3.mailjet.com", :port => 25, + :user_name => "0339a4401e7b00f82d9fcdd4a7316647" , + :password => "5c52a97d4f46dc65835fbd44a1a4cc11", :openssl_verify_mode => 'none' } #config.action_mailer.smtp_settings = { diff --git a/config/initializers/mailjet.rb b/config/initializers/mailjet.rb new file mode 100644 index 0000000..11d4280 --- /dev/null +++ b/config/initializers/mailjet.rb @@ -0,0 +1,5 @@ +Mailjet.configure do |config| + config.api_key = '0339a4401e7b00f82d9fcdd4a7316647' + config.secret_key = '5c52a97d4f46dc65835fbd44a1a4cc11' + #config.default_from = 'nbally@olwen-capital.com' +end \ No newline at end of file diff --git a/db/migrate/20200203203853_add_token_to_kaps_rappel_items.rb b/db/migrate/20200203203853_add_token_to_kaps_rappel_items.rb new file mode 100644 index 0000000..d40bccd --- /dev/null +++ b/db/migrate/20200203203853_add_token_to_kaps_rappel_items.rb @@ -0,0 +1,5 @@ +class AddTokenToKapsRappelItems < ActiveRecord::Migration + def change + add_column :kaps_rappel_items, :token, :string + end +end diff --git a/db/schema.rb b/db/schema.rb index 15d6441..3a32b0f 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: 20200112211919) do +ActiveRecord::Schema.define(version: 20200203203853) do create_table "admin_admin_roles", force: :cascade do |t| t.integer "admin_id", limit: 4 @@ -486,8 +486,9 @@ ActiveRecord::Schema.define(version: 20200112211919) do t.integer "kapsme_id", limit: 4 t.integer "kaps_day_id", limit: 4 t.datetime "generate_at" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.string "token", limit: 255 end add_index "kaps_rappel_items", ["kaps_day_id"], name: "index_kaps_rappel_items_on_kaps_day_id", using: :btree