diff --git a/Gemfile b/Gemfile index 2f39ca8..e6f043a 100644 --- a/Gemfile +++ b/Gemfile @@ -38,8 +38,12 @@ group :development, :test do gem "capistrano", '2.15.9', group: :development, require: false gem "rvm-capistrano",'1.4.1', group: :development - gem 'net-ssh', '~>2.7.0' - + #gem 'net-ssh', '~>2.7.0' + #gem 'net-sftp' + + gem 'net-ssh', '~> 5.1.0' + + #gem 'openssl', '~> 2.0.0.beta.1' gem 'web-console', '~> 2.0' @@ -68,7 +72,7 @@ gem 'gravatar_image_tag' gem 'roo', '~> 2.1.0' gem 'roo-xls' -gem 'curb' +gem 'curb', "0.9.10" gem 'kaminari-bootstrap' @@ -83,7 +87,7 @@ gem "iban-tools" gem "nokogiri" - +gem "houston" gem 'twitter-text' diff --git a/Gemfile.lock b/Gemfile.lock index 8fc02a0..1707ff6 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -68,6 +68,8 @@ GEM execjs coffee-script-source (1.9.1) columnize (0.9.0) + commander (4.4.6) + highline (~> 1.7.2) concurrent-ruby (1.1.3) countries (1.2.2) currencies (~> 0.4.2) @@ -76,7 +78,7 @@ GEM countries (~> 1.2.0) sort_alphabetical (~> 1.0) crass (1.0.4) - curb (0.8.8) + curb (0.9.10) currencies (0.4.2) debug_inspector (0.0.2) debugger-linecache (1.2.0) @@ -116,6 +118,9 @@ GEM railties (>= 4.0.1) hashie (3.5.7) highline (1.7.8) + houston (2.4.0) + commander (~> 4.4) + json html2haml (2.0.0) erubis (~> 2.7.0) haml (~> 4.0.0) @@ -161,7 +166,7 @@ GEM net-ssh (>= 2.6.5) net-sftp (2.1.2) net-ssh (>= 2.6.5) - net-ssh (2.7.0) + net-ssh (5.1.0) net-ssh-gateway (1.2.0) net-ssh (>= 2.6.5) nokogiri (1.6.8.1) @@ -187,10 +192,9 @@ GEM xml-simple paypal-sdk-merchant (1.117.2) paypal-sdk-core (~> 0.3.0) - posix-spawn (0.3.11) - pygments.rb (0.6.3) - posix-spawn (~> 0.3.6) - yajl-ruby (~> 1.2.0) + posix-spawn (0.3.13) + pygments.rb (1.2.1) + multi_json (>= 1.0.0) rack (1.6.11) rack-test (0.6.3) rack (>= 1.0) @@ -314,7 +318,6 @@ GEM wicked_pdf (0.11.0) rails xml-simple (1.1.5) - yajl-ruby (1.2.1) PLATFORMS ruby @@ -328,7 +331,7 @@ DEPENDENCIES carrierwave coffee-rails (~> 4.1.0) country_select - curb + curb (= 0.9.10) fastimage formtastic (= 2.3.0) formtastic-bootstrap @@ -336,12 +339,13 @@ DEPENDENCIES gibbon gravatar_image_tag haml-rails + houston iban-tools jbuilder (~> 2.0) jquery-rails kaminari-bootstrap mysql2 - net-ssh (~> 2.7.0) + net-ssh (~> 5.1.0) nokogiri ogone-rails omniauth-facebook @@ -371,4 +375,4 @@ DEPENDENCIES wicked_pdf BUNDLED WITH - 1.16.2 + 1.17.3 diff --git a/app/helpers/document_line_helper.rb b/app/helpers/document_line_helper.rb index 0e4de6b..731d15a 100644 --- a/app/helpers/document_line_helper.rb +++ b/app/helpers/document_line_helper.rb @@ -21,7 +21,8 @@ module DocumentLineHelper end fields = f.fields_for(association, new_object, :child_index => "new_#{association}") do |builder| - render("admin/"+association.to_s + "/form", :form => builder) + + render(controller.class.parents[0].to_s.downcase+"/"+association.to_s + "/form", :form => builder) end link_to name,"#", :onclick => "add_fields(this, \"#{association}\", \"#{escape_javascript(fields)}\");return false;" diff --git a/app/mailers/general_mailer.rb b/app/mailers/general_mailer.rb index 3ef7591..c4c125d 100755 --- a/app/mailers/general_mailer.rb +++ b/app/mailers/general_mailer.rb @@ -1,5 +1,5 @@ class GeneralMailer < ActionMailer::Base - default from: "contact@kaps.net" + default from: "hey@kaps.net" add_template_helper(MailHelper) @@ -8,7 +8,7 @@ class GeneralMailer < ActionMailer::Base # # en.question.deliver.subject # - def send_qi_mail(lang_slug, slug, to, options) + def send_qi_mail(lang_slug, slug, to, options={}) @mail_content = MailContent.find_key(LangSite.find_by_slug(lang_slug), slug) @@ -16,7 +16,23 @@ class GeneralMailer < ActionMailer::Base @options = options - mail to: to, :subject => "[KapsMe] "+@mail_content.subject.to_s + if @options[:subject] + subject = @options[:subject] + else + subject = @mail_content.subject.to_s + end + + + mail to: to, :subject => "[KapsMe] "+subject + end + + + def new_send_qi_mail(options = {}) + + mail to: options[:to], :subject => "[KapsMe] "+options[:subject] do |format| + format.html { render :inline => options[:body] } + + end end diff --git a/app/models/kap.rb b/app/models/kap.rb index 628f28f..710561d 100644 --- a/app/models/kap.rb +++ b/app/models/kap.rb @@ -5,7 +5,11 @@ class Kap < ActiveRecord::Base validates :points, :presence => true validates :name, :presence => true validates :kaps_type_id, :presence => true - + + has_many :kaps_rappels + accepts_nested_attributes_for :kaps_rappels, :allow_destroy => true + + validates :start_at, :presence => true @@ -46,4 +50,6 @@ class Kap < ActiveRecord::Base end + + end diff --git a/app/models/kaps_day.rb b/app/models/kaps_day.rb index 41dd28c..19345fe 100644 --- a/app/models/kaps_day.rb +++ b/app/models/kaps_day.rb @@ -2,6 +2,7 @@ class KapsDay < ActiveRecord::Base belongs_to :p_customer has_many :kapsmes + has_many :kaps_rappels, :through => :kapsmes after_save do diff --git a/app/models/kaps_rappel.rb b/app/models/kaps_rappel.rb new file mode 100644 index 0000000..4f87ba6 --- /dev/null +++ b/app/models/kaps_rappel.rb @@ -0,0 +1,43 @@ +class KapsRappel < ActiveRecord::Base + belongs_to :kap + + def self.generate_rappels + puts "AAAAAAHHHH" + + KapsDay.where(:date => Date.today).each do |kd| + kd.kaps_rappels.where("hour <= ?", Time.now.hour).each do |kr| + + kr.generate_rappel(kd,Time.now) + + + end + + end + + end + + 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 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)) + + end + + puts "Un Rappel est lancé" + else + puts "RAPPEL" + puts count + puts "Rappel déjà fait" + + end + + + + end + + + + + +end diff --git a/app/models/kaps_rappel_item.rb b/app/models/kaps_rappel_item.rb new file mode 100644 index 0000000..3bf870b --- /dev/null +++ b/app/models/kaps_rappel_item.rb @@ -0,0 +1,14 @@ +class KapsRappelItem < ActiveRecord::Base + belongs_to :kaps_rappel + belongs_to :kapsme + belongs_to :kaps_day + + + 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 :(").deliver + + + end +end diff --git a/app/models/kapsme.rb b/app/models/kapsme.rb index be616a5..a26446b 100644 --- a/app/models/kapsme.rb +++ b/app/models/kapsme.rb @@ -1,7 +1,9 @@ class Kapsme < ActiveRecord::Base - belongs_to :kaps + belongs_to :kap belongs_to :p_customer + has_many :kaps_rappels, :through => :kap + def kaps_type if self.kaps_type_id == 1 "Journalier" diff --git a/app/views/public/_form.html.haml b/app/views/public/_form.html.haml new file mode 100644 index 0000000..e69de29 diff --git a/app/views/public/kaps/_form.html.haml b/app/views/public/kaps/_form.html.haml index 1f69564..164baf6 100755 --- a/app/views/public/kaps/_form.html.haml +++ b/app/views/public/kaps/_form.html.haml @@ -21,6 +21,17 @@ + + %h3 Contacts de l'adresse : + + + .kaps_rappels_form + =f.semantic_fields_for :kaps_rappels do |form| + =render :partial => "public/kaps_rappels/form", :locals => {:form => form} + + + %p= link_to_add_fields ic(:plus)+" Ajouter un rappel", f, :kaps_rappels + .actions=f.submit "sauvegarder", :class => "btn btn-primary" \ No newline at end of file diff --git a/app/views/public/kaps_days/show.html.haml b/app/views/public/kaps_days/show.html.haml index 521d8e2..299d179 100644 --- a/app/views/public/kaps_days/show.html.haml +++ b/app/views/public/kaps_days/show.html.haml @@ -5,7 +5,12 @@ %p Les Kaps du jours - -@kaps_day.generate_kapsmes + -#@kaps_day.generate_kapsmes + + -KapsRappel.generate_rappels + + + .qi_row .qi_pannel.qi_plain.padding{:style => "position:relative;"} #pourcentage_inner{:style => "position:absolute;top:0;left:0;right:0;"} diff --git a/app/views/public/kaps_rappels/_form.html.haml b/app/views/public/kaps_rappels/_form.html.haml new file mode 100644 index 0000000..aab47b6 --- /dev/null +++ b/app/views/public/kaps_rappels/_form.html.haml @@ -0,0 +1,23 @@ +.kaps_rappel_form.field + + %table{:style => "width:100%;"} + %tr + + %td + = form.hidden_field :rappel_type + %td + = form.input :hour, :label => "Heure du rappel :", :as => :string + + %td + = form.input :nbr_rep, :label => "Nbr répétitions :" + + %td + = form.input :minutes_rep, :label => "Minutes séparant les répétitions :", :as => :string + + %td + = form.input :paused_inc, :label => "Rappel aussi les jours de pause ?" + + + %td{:style => "width:30px;"} + =link_to_remove_fields ic(:"trash-o"), form + \ No newline at end of file diff --git a/config/schedule.rb b/config/schedule.rb index 41d682e..d46bfe0 100644 --- a/config/schedule.rb +++ b/config/schedule.rb @@ -20,10 +20,28 @@ # Learn more: http://github.com/javan/whenever -every 1.minute do +#every 1.minute do +# runner "KapsDay.cron" +#end + +every 2.minute do + runner "KapsRappel.generate_rappels" +end + +every 1.days, at: '0:00 am'do + runner "KapsDay.cron" +end + +every 1.days, at: '1:00 am'do + runner "KapsDay.cron" +end + +every 1.days, at: '2:00 am'do + runner "KapsDay.cron" +end + +every 1.days, at: '3:00 am'do runner "KapsDay.cron" end - -#every 1.days, at: '0:00 am'do \ No newline at end of file diff --git a/construction.txt b/construction.txt deleted file mode 100644 index 466f4f4..0000000 --- a/construction.txt +++ /dev/null @@ -1 +0,0 @@ -
Notre nouveau site vient juste d'être mis en ligne, nous faisons tout pour le compléter au plus vite.