suite
This commit is contained in:
parent
1239d54244
commit
de0c9d0677
1
Gemfile
1
Gemfile
@ -105,3 +105,4 @@ gem 'paypal-sdk-merchant'
|
|||||||
|
|
||||||
gem 'searchkick'#, "2.3.1"
|
gem 'searchkick'#, "2.3.1"
|
||||||
|
|
||||||
|
gem 'whenever', require: false
|
@ -59,6 +59,7 @@ GEM
|
|||||||
activesupport (>= 3.2.0)
|
activesupport (>= 3.2.0)
|
||||||
json (>= 1.7)
|
json (>= 1.7)
|
||||||
mime-types (>= 1.16)
|
mime-types (>= 1.16)
|
||||||
|
chronic (0.10.2)
|
||||||
coffee-rails (4.1.0)
|
coffee-rails (4.1.0)
|
||||||
coffee-script (>= 2.2.0)
|
coffee-script (>= 2.2.0)
|
||||||
railties (>= 4.0.0, < 5.0)
|
railties (>= 4.0.0, < 5.0)
|
||||||
@ -308,6 +309,8 @@ GEM
|
|||||||
binding_of_caller (>= 0.7.2)
|
binding_of_caller (>= 0.7.2)
|
||||||
railties (~> 4.0)
|
railties (~> 4.0)
|
||||||
sprockets-rails (>= 2.0, < 4.0)
|
sprockets-rails (>= 2.0, < 4.0)
|
||||||
|
whenever (1.0.0)
|
||||||
|
chronic (>= 0.6.3)
|
||||||
wicked_pdf (0.11.0)
|
wicked_pdf (0.11.0)
|
||||||
rails
|
rails
|
||||||
xml-simple (1.1.5)
|
xml-simple (1.1.5)
|
||||||
@ -364,6 +367,7 @@ DEPENDENCIES
|
|||||||
uglifier (>= 1.3.0)
|
uglifier (>= 1.3.0)
|
||||||
unicorn
|
unicorn
|
||||||
web-console (~> 2.0)
|
web-console (~> 2.0)
|
||||||
|
whenever
|
||||||
wicked_pdf
|
wicked_pdf
|
||||||
|
|
||||||
BUNDLED WITH
|
BUNDLED WITH
|
||||||
|
@ -15,7 +15,7 @@ class KapsDay < ActiveRecord::Base
|
|||||||
end
|
end
|
||||||
|
|
||||||
def generate_kapsmes
|
def generate_kapsmes
|
||||||
self.kapsmes.where(:kap_id => 1).destroy_all
|
#self.kapsmes.where(:kap_id => 1).destroy_all
|
||||||
self.p_customer.kaps.where(:kaps_type_id => 1).where("start_at <= ? and (end_at is null or end_at >= ?)", self.date, self.date).each do |kap|
|
self.p_customer.kaps.where(:kaps_type_id => 1).where("start_at <= ? and (end_at is null or end_at >= ?)", self.date, self.date).each do |kap|
|
||||||
|
|
||||||
|
|
||||||
@ -75,7 +75,7 @@ class KapsDay < ActiveRecord::Base
|
|||||||
|
|
||||||
|
|
||||||
def total_points
|
def total_points
|
||||||
self.kapsmes.sum(:points)
|
self.kapsmes.sum(:point_to_count)
|
||||||
end
|
end
|
||||||
|
|
||||||
def total_points_earneds
|
def total_points_earneds
|
||||||
@ -89,5 +89,13 @@ class KapsDay < ActiveRecord::Base
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
def cron
|
||||||
|
PCustomer.all.each do |pc|
|
||||||
|
pc.generate_kaps_days
|
||||||
|
end
|
||||||
|
|
||||||
|
# whenever --update-crontab
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
@ -14,6 +14,16 @@ class Kapsme < ActiveRecord::Base
|
|||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
before_save do
|
||||||
|
if self.paused
|
||||||
|
self.point_to_count = 0
|
||||||
|
else
|
||||||
|
self.point_to_count = self.points
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
belongs_to :kaps_day
|
belongs_to :kaps_day
|
||||||
|
|
||||||
end
|
end
|
||||||
|
@ -30,6 +30,31 @@ class PCustomer < ActiveRecord::Base
|
|||||||
|
|
||||||
has_many :p_friends
|
has_many :p_friends
|
||||||
|
|
||||||
|
def generate_kaps_days
|
||||||
|
if last = self.kaps_days.order("date DESC").first
|
||||||
|
start_date = last.date
|
||||||
|
else
|
||||||
|
start_date = self.created_at.to_date
|
||||||
|
end
|
||||||
|
|
||||||
|
date = start_date
|
||||||
|
|
||||||
|
while date <= Date.today
|
||||||
|
if kaps_day = self.kaps_days.where(:date => date).first
|
||||||
|
kaps_day.generate_kapsmes
|
||||||
|
else
|
||||||
|
self.kaps_days.create(:date => date)
|
||||||
|
end
|
||||||
|
|
||||||
|
date = date + 1.day
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def generate_kaps_day(date)
|
def generate_kaps_day(date)
|
||||||
if !(kap_day = self.kaps_days.where(:date => date).first)
|
if !(kap_day = self.kaps_days.where(:date => date).first)
|
||||||
kap_day =self.kaps_days.create(:date => date)
|
kap_day =self.kaps_days.create(:date => date)
|
||||||
|
@ -8,6 +8,10 @@ class PFriend < ActiveRecord::Base
|
|||||||
validates :p_friend_customer_id, :presence => true
|
validates :p_friend_customer_id, :presence => true
|
||||||
|
|
||||||
|
|
||||||
|
has_many :p_friend_kaps
|
||||||
|
has_many :kaps, :through => :p_friend_kaps
|
||||||
|
|
||||||
|
|
||||||
before_validation do
|
before_validation do
|
||||||
if !self.id
|
if !self.id
|
||||||
|
|
||||||
@ -36,5 +40,18 @@ class PFriend < ActiveRecord::Base
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
def reverse
|
||||||
|
PFriend.where(:p_customer_id => self.p_friend_customer_id, :p_friend_customer_id => self.p_customer_id).first
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
def allow_kapsmes(kaps_day)
|
||||||
|
|
||||||
|
kaps_day.kapsmes.where(:kap_id => self.kaps.ids)
|
||||||
|
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
end
|
end
|
4
app/models/p_friend_kap.rb
Normal file
4
app/models/p_friend_kap.rb
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
class PFriendKap < ActiveRecord::Base
|
||||||
|
belongs_to :kap
|
||||||
|
belongs_to :p_friend
|
||||||
|
end
|
@ -8,17 +8,7 @@
|
|||||||
|
|
||||||
.qi_row
|
.qi_row
|
||||||
.qi_pannel.qi_plain.padding
|
.qi_pannel.qi_plain.padding
|
||||||
|
-current_p_customer.generate_kaps_days
|
||||||
-start_date = Date.parse("2020/01/01")
|
|
||||||
-date = start_date
|
|
||||||
-while date <= start_date + 6.month
|
|
||||||
-if kaps_day = current_p_customer.kaps_days.where(:date => date).first
|
|
||||||
-kaps_day.generate_kapsmes
|
|
||||||
-else
|
|
||||||
-current_p_customer.kaps_days.create(:date => date)
|
|
||||||
|
|
||||||
|
|
||||||
-date = date + 1.day
|
|
||||||
|
|
||||||
%table.table
|
%table.table
|
||||||
%tr
|
%tr
|
||||||
@ -27,6 +17,6 @@
|
|||||||
|
|
||||||
|
|
||||||
%tbody#kaps_days_rows
|
%tbody#kaps_days_rows
|
||||||
=render current_p_customer.kaps_days.order("date DESC").all
|
=render current_p_customer.kaps_days.order("date DESC").where("date <= ?", Date.today).all
|
||||||
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
%p Les Kaps du jours
|
%p Les Kaps du jours
|
||||||
|
|
||||||
=@kaps_day.generate_kapsmes
|
-@kaps_day.generate_kapsmes
|
||||||
.qi_row
|
.qi_row
|
||||||
.qi_pannel.qi_plain.padding{:style => "position:relative;"}
|
.qi_pannel.qi_plain.padding{:style => "position:relative;"}
|
||||||
#pourcentage_inner{:style => "position:absolute;top:0;left:0;right:0;"}
|
#pourcentage_inner{:style => "position:absolute;top:0;left:0;right:0;"}
|
||||||
@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
%th Points
|
%th Points
|
||||||
|
|
||||||
%th Pause ?
|
|
||||||
%th Public ?
|
%th Public ?
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,26 +1,37 @@
|
|||||||
%tr#kapsme{:id => kapsme.id}
|
%tr#kapsme{:id => kapsme.id}
|
||||||
%td{:style => "vertical-align:middle;"}= kapsme.name
|
|
||||||
%td{:style => "vertical-align:middle;"}
|
%td{:style => "vertical-align:middle;"}
|
||||||
-if kapsme.done
|
= kapsme.name
|
||||||
%strong= kapsme.points
|
%td{:style => "vertical-align:middle;"}
|
||||||
-else
|
-if kapsme.paused
|
||||||
%span{:style => "color:rgba(0,0,0,0.2);"}= kapsme.points
|
Pause
|
||||||
|
|
||||||
%td
|
-else
|
||||||
="oui" if kapsme.paused
|
-if kapsme.done
|
||||||
%td{:style => "vertical-align:middle;"}
|
%strong= kapsme.point_to_count
|
||||||
="oui" if kapsme.public
|
-else
|
||||||
|
%span{:style => "color:rgba(0,0,0,0.2);"}= kapsme.point_to_count
|
||||||
|
|
||||||
|
-if !@p_friend
|
||||||
|
%td{:style => "vertical-align:middle;"}
|
||||||
|
="oui" if kapsme.public
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%td{:style => "font-size:25px;"}
|
%td{:style => "font-size:25px;"}
|
||||||
-if kapsme.done
|
-if !kapsme.paused
|
||||||
=link_to ic(:check), public_kapsme_path(:id => kapsme.id, :kapsme => {:done => false}, :format => :js), :method => :put, :remote => true, :style => "color:green;"
|
-if kapsme.done
|
||||||
|
-if !@p_friend
|
||||||
|
=link_to ic(:check), public_kapsme_path(:id => kapsme.id, :kapsme => {:done => false}, :format => :js), :method => :put, :remote => true, :style => "color:green;"
|
||||||
|
-else
|
||||||
|
%span{:style => "color:green;"}=ic(:check)
|
||||||
|
|
||||||
-else
|
-else
|
||||||
=link_to ic(:check), public_kapsme_path(:id => kapsme.id, :kapsme => {:done => true}, :format => :js), :method => :put, :remote => true, :style => "color:rgba(0,0,0,0.2);"
|
-if !@p_friend
|
||||||
|
=link_to ic(:check), public_kapsme_path(:id => kapsme.id, :kapsme => {:done => true}, :format => :js), :method => :put, :remote => true, :style => "color:rgba(0,0,0,0.2);"
|
||||||
|
-else
|
||||||
|
%span{:style => "color:rgba(0,0,0,0.2);"}=ic(:check)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -5,7 +5,9 @@
|
|||||||
= f.hidden_field :p_customer_id
|
= f.hidden_field :p_customer_id
|
||||||
= f.input :email
|
= f.input :email
|
||||||
|
|
||||||
=debug @p_friend.errors.messages
|
|
||||||
|
= f.input :kap_ids, :collection => current_p_customer.kaps, :as => :check_boxes
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -44,10 +44,15 @@
|
|||||||
|
|
||||||
%tbody#kaps_rows
|
%tbody#kaps_rows
|
||||||
-current_p_customer.p_friends.where(:enabled => true).each do |p_friend|
|
-current_p_customer.p_friends.where(:enabled => true).each do |p_friend|
|
||||||
%tr#p_friend{:id => p_friend.id}
|
%tr#p_friend_row{:id => p_friend.id}
|
||||||
%td= p_friend.p_friend_customer.email
|
%td= p_friend.p_friend_customer.email
|
||||||
|
|
||||||
|
|
||||||
%td.actions
|
%td
|
||||||
|
=#.actions
|
||||||
|
|
||||||
|
= link_to i(:pencil)+" Droits", edit_public_p_friend_path(p_friend), :remote => true, :class => "btn btn-primary"
|
||||||
|
|
||||||
= link_to i(:eye)+" Voir", public_p_friend_path(p_friend), :remote => false, :class => "btn btn-primary"
|
= link_to i(:eye)+" Voir", public_p_friend_path(p_friend), :remote => false, :class => "btn btn-primary"
|
||||||
|
|
||||||
|
|
@ -1,10 +1,47 @@
|
|||||||
%h1=@kap.name
|
=@p_friend.p_friend_customer.email
|
||||||
|
|
||||||
%h2 Marques
|
|
||||||
=link_to "ajouter une marque", new_public_label_marque_path(:kap_id => @kap.id), :class => "btn btn-primary"
|
-friend_p_customer = @p_friend.reverse.p_customer
|
||||||
%table.table
|
|
||||||
=render @kap.label_marques.order(:name)
|
|
||||||
%br
|
.right{:style => "width:180px;padding-right:20px;text-align:right"}
|
||||||
%br
|
-friend_p_customer.kaps_days.order("date DESC").where("date <= ?", Date.today).all.each do |kaps_day|
|
||||||
%br
|
|
||||||
%br
|
%p= link_to l(kaps_day.date, :format => "%A %e %B %Y"), public_p_friend_path(:id => @p_friend.id, :kaps_day_id => kaps_day.id)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-if params[:kaps_day_id]
|
||||||
|
-@kaps_day = friend_p_customer.kaps_days.find(params[:kaps_day_id])
|
||||||
|
|
||||||
|
-else
|
||||||
|
-@kaps_day = friend_p_customer.kaps_days.where(:date => Date.today).first
|
||||||
|
|
||||||
|
-if @kaps_day
|
||||||
|
%div{:style => "padding-right:20px;text-align:right;margin-right:210px;"}
|
||||||
|
.qi_row
|
||||||
|
=l(@kaps_day.date, :format => "%A %e %B %Y")
|
||||||
|
.qi_pannel.qi_plain.padding{:style => "position:relative;"}
|
||||||
|
#pourcentage_inner{:style => "position:absolute;top:0;left:0;right:0;"}
|
||||||
|
=render(:partial => "public/kaps_days/pourcentage", :locals => {:kaps_day => @kaps_day})
|
||||||
|
|
||||||
|
|
||||||
|
%table.table
|
||||||
|
%tr
|
||||||
|
%th
|
||||||
|
|
||||||
|
|
||||||
|
%th Points
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
%th
|
||||||
|
|
||||||
|
|
||||||
|
%tbody#kaps_rows
|
||||||
|
=render @p_friend.reverse.allow_kapsmes(@kaps_day).order("id DESC")
|
||||||
|
|
||||||
|
|
||||||
|
.clear
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
$('#p_friends_rows').html("<%= escape_javascript(render(@p_friends))%>");
|
$('#p_friend_row_<%= @p_friend.id %>').html("<%= escape_javascript(render(@p_friend))%>");
|
||||||
close_pane_hover();
|
close_pane_hover();
|
@ -82,6 +82,8 @@ namespace :deploy do
|
|||||||
|
|
||||||
sudo "sudo systemctl enable quartz_app@#{application}"
|
sudo "sudo systemctl enable quartz_app@#{application}"
|
||||||
|
|
||||||
|
run "cd #{current_path}; bundle exec whenever --update-crontab"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
29
config/schedule.rb
Normal file
29
config/schedule.rb
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
# Use this file to easily define all of your cron jobs.
|
||||||
|
#
|
||||||
|
# It's helpful, but not entirely necessary to understand cron before proceeding.
|
||||||
|
# http://en.wikipedia.org/wiki/Cron
|
||||||
|
|
||||||
|
# Example:
|
||||||
|
#
|
||||||
|
# set :output, "/path/to/my/cron_log.log"
|
||||||
|
#
|
||||||
|
# every 2.hours do
|
||||||
|
# command "/usr/bin/some_great_command"
|
||||||
|
# runner "MyModel.some_method"
|
||||||
|
# rake "some:great:rake:task"
|
||||||
|
# end
|
||||||
|
#
|
||||||
|
# every 4.days do
|
||||||
|
# runner "AnotherModel.prune_old_records"
|
||||||
|
# end
|
||||||
|
|
||||||
|
# Learn more: http://github.com/javan/whenever
|
||||||
|
|
||||||
|
|
||||||
|
every 1.minute do
|
||||||
|
runner "KapsDay.cron"
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#every 1.days, at: '0:00 am'do
|
10
db/migrate/20200112112644_create_p_friend_kaps.rb
Normal file
10
db/migrate/20200112112644_create_p_friend_kaps.rb
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
class CreatePFriendKaps < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
create_table :p_friend_kaps do |t|
|
||||||
|
t.references :kap, index: true, foreign_key: true
|
||||||
|
t.references :p_friend, index: true, foreign_key: true
|
||||||
|
|
||||||
|
t.timestamps null: false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
9
db/migrate/20200112130214_add_points_count_to_kapsmes.rb
Normal file
9
db/migrate/20200112130214_add_points_count_to_kapsmes.rb
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
class AddPointsCountToKapsmes < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
add_column :kapsmes, :point_to_count, :integer
|
||||||
|
|
||||||
|
Kapsme.all.each do |km|
|
||||||
|
km.save
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
15
db/schema.rb
15
db/schema.rb
@ -11,7 +11,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: 20200111123747) do
|
ActiveRecord::Schema.define(version: 20200112130214) do
|
||||||
|
|
||||||
create_table "admin_admin_roles", force: :cascade do |t|
|
create_table "admin_admin_roles", force: :cascade do |t|
|
||||||
t.integer "admin_id", limit: 4
|
t.integer "admin_id", limit: 4
|
||||||
@ -499,6 +499,7 @@ ActiveRecord::Schema.define(version: 20200111123747) do
|
|||||||
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.boolean "paused", default: false
|
t.boolean "paused", default: false
|
||||||
|
t.integer "point_to_count", limit: 4
|
||||||
end
|
end
|
||||||
|
|
||||||
add_index "kapsmes", ["kap_id"], name: "index_kapsmes_on_kap_id", using: :btree
|
add_index "kapsmes", ["kap_id"], name: "index_kapsmes_on_kap_id", using: :btree
|
||||||
@ -993,6 +994,16 @@ ActiveRecord::Schema.define(version: 20200111123747) do
|
|||||||
t.string "tel", limit: 255
|
t.string "tel", limit: 255
|
||||||
end
|
end
|
||||||
|
|
||||||
|
create_table "p_friend_kaps", force: :cascade do |t|
|
||||||
|
t.integer "kap_id", limit: 4
|
||||||
|
t.integer "p_friend_id", limit: 4
|
||||||
|
t.datetime "created_at", null: false
|
||||||
|
t.datetime "updated_at", null: false
|
||||||
|
end
|
||||||
|
|
||||||
|
add_index "p_friend_kaps", ["kap_id"], name: "index_p_friend_kaps_on_kap_id", using: :btree
|
||||||
|
add_index "p_friend_kaps", ["p_friend_id"], name: "index_p_friend_kaps_on_p_friend_id", using: :btree
|
||||||
|
|
||||||
create_table "p_friends", force: :cascade do |t|
|
create_table "p_friends", force: :cascade do |t|
|
||||||
t.integer "p_customer_id", limit: 4
|
t.integer "p_customer_id", limit: 4
|
||||||
t.integer "p_friend_customer_id", limit: 4
|
t.integer "p_friend_customer_id", limit: 4
|
||||||
@ -1629,6 +1640,8 @@ ActiveRecord::Schema.define(version: 20200111123747) do
|
|||||||
add_foreign_key "p_customers", "p_price_cats"
|
add_foreign_key "p_customers", "p_price_cats"
|
||||||
add_foreign_key "p_degressifs", "p_price_cats"
|
add_foreign_key "p_degressifs", "p_price_cats"
|
||||||
add_foreign_key "p_degressifs", "p_products"
|
add_foreign_key "p_degressifs", "p_products"
|
||||||
|
add_foreign_key "p_friend_kaps", "kaps"
|
||||||
|
add_foreign_key "p_friend_kaps", "p_friends"
|
||||||
add_foreign_key "p_friends", "p_customers"
|
add_foreign_key "p_friends", "p_customers"
|
||||||
add_foreign_key "p_price_cat_p_degressifs", "p_degressifs"
|
add_foreign_key "p_price_cat_p_degressifs", "p_degressifs"
|
||||||
add_foreign_key "p_price_cat_p_degressifs", "p_price_cats"
|
add_foreign_key "p_price_cat_p_degressifs", "p_price_cats"
|
||||||
|
9
test/fixtures/p_friend_kaps.yml
vendored
Normal file
9
test/fixtures/p_friend_kaps.yml
vendored
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
|
||||||
|
|
||||||
|
one:
|
||||||
|
kaps_id:
|
||||||
|
p_friend_id:
|
||||||
|
|
||||||
|
two:
|
||||||
|
kaps_id:
|
||||||
|
p_friend_id:
|
7
test/models/p_friend_kap_test.rb
Normal file
7
test/models/p_friend_kap_test.rb
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
require 'test_helper'
|
||||||
|
|
||||||
|
class PFriendKapTest < ActiveSupport::TestCase
|
||||||
|
# test "the truth" do
|
||||||
|
# assert true
|
||||||
|
# end
|
||||||
|
end
|
Loading…
x
Reference in New Issue
Block a user