ish_manager 0.1.8.402 → 0.1.8.404

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 99464fcd8fa7b0f58cb5d7eb6b62dec9e62fb6b5d8da4500bb7b11362a5042a0
4
- data.tar.gz: 71fdb74c90c9d4d7ead1b5d410e2516f29dc51e2bc1a67aaf0d712189527a3e8
3
+ metadata.gz: 7b0e695973583101608da564e5460f74838147a078b52a29cab8c1aab34e9534
4
+ data.tar.gz: 16a23aa8e36df3e4ecee24a754516026017e40b9cc3f45e7a6b5cc81862d02e4
5
5
  SHA512:
6
- metadata.gz: 4123acb840e9676a335b2d8664182e6b81ab7f353ddd0627eea8ee637402269120c419bae5142ca62f5d2709da8f540bb083c5ac5cb5c2bc5bf76d7526fb19e9
7
- data.tar.gz: 155d66ae258ed66afb40f01fa9083d422875e0a40e0f3b1249b34f23610626305bdf04c7b66071397197591c2dcb89acbdde98d634cc3d10b5573d3a008a5639
6
+ metadata.gz: 1cca17f65defbd1073a29f7fc5a6269864651083aaf6fdf1b5b2aeb63b432cb08e347d4e60c6b374405d25a4fae98414434fafc3490ca242e18e1b22740dd4e5
7
+ data.tar.gz: 2ca8c6173c2317cd453fef7b4c6057db8f0858d1b2b9ffa315e3aa5b86a00eea6c5ce5f0714ca05bc414b618a5483874e95386aaadfb7b5e19c528b4424edaff
@@ -0,0 +1,45 @@
1
+
2
+ class ::IshManager::IroPositionsController < IshManager::ApplicationController
3
+
4
+ before_action :set_lists
5
+
6
+ def create
7
+ @position = Iro::Position.new({
8
+ iro_purse: @purse = Iro::Purse.find_or_create_by({ user_id: current_user.id }),
9
+ type: 'Iro::CoveredCall',
10
+ })
11
+ authorize! :update, @position
12
+
13
+ if @position.update params[:position].permit!
14
+ flash[:notice] = 'Successfully updated position.'
15
+ redirect_to controller: 'iro_purses', action: :show
16
+ else
17
+ flash[:alert] = "Cannot update position: #{@position.errors.full_messages.join(', ')}."
18
+ render action: 'edit'
19
+ end
20
+ end
21
+
22
+ def edit
23
+ @position = Iro::Position.find params[:id]
24
+ authorize! :edit, @position
25
+ end
26
+
27
+ def new
28
+ @position = Iro::Position.new
29
+ authorize! :new, @position
30
+ end
31
+
32
+ def update
33
+ @position = Iro::Position.find params[:id]
34
+ authorize! :update, @position
35
+
36
+ if @position.update params[:position].permit!
37
+ flash[:notice] = 'Successfully updated position.'
38
+ redirect_to controller: 'iro_purses', action: :show
39
+ else
40
+ flash[:alert] = "Cannot update position: #{@position.errors.full_messages.join(', ')}."
41
+ render action: 'edit'
42
+ end
43
+ end
44
+
45
+ end
@@ -3,10 +3,11 @@ class ::IshManager::IroPursesController < IshManager::ApplicationController
3
3
 
4
4
  before_action :set_lists
5
5
 
6
- def my
6
+ def show
7
7
  @purse = Iro::Purse.find_or_create_by({ user_id: current_user.id })
8
8
  authorize! :my, @purse
9
9
  @positions = @purse.positions.order({ expires_on: :asc, strike: :asc })
10
+ @positions.map &:refresh
10
11
  @strategies = Iro::CoveredCallStrategy.where({
11
12
  iro_purse_id: Iro::Purse.find_by( user_id: current_user.id ).id,
12
13
  })
@@ -30,10 +30,6 @@ module IshManager
30
30
  # "/manager/email_contexts/for_lead/#{lead.id.to_s}"
31
31
  # end
32
32
 
33
- def pretty_date input
34
- return input.strftime("%Y-%m-%d")
35
- end
36
-
37
33
  def pp_errors errors
38
34
  return errors
39
35
  end
@@ -53,6 +49,12 @@ module IshManager
53
49
  date&.strftime('%Y-%m-%d')
54
50
  end
55
51
  def pp_date a; pretty_date a; end
52
+ def pp_datetime date
53
+ date&.strftime('%Y-%m-%d %l:%M%P %z')
54
+ end
55
+ def pp_time date
56
+ date&.strftime('%l:%M%P %z')
57
+ end
56
58
 
57
59
  def pp_amount a
58
60
  return '-' if !a
@@ -12,7 +12,7 @@ module IshManager
12
12
  @gallery_path = IshManager::Engine.routes.url_helpers.gallery_path(@gallery.slug)
13
13
  mail( :to => '314658@gmail.com',
14
14
  :bcc => profiles.map { |p| p.email },
15
- :subject => 'You got new shared galleries on pi manager' ).deliver
15
+ :subject => 'You got new shared galleries on pi manager' )
16
16
  end
17
17
 
18
18
  def option_alert option
@@ -32,7 +32,7 @@ module IshManager
32
32
  end
33
33
 
34
34
  def test_email
35
- mail( to: 'piousbox@gmail.com', subject: "Test email at #{Time.now}" )
35
+ mail( to: DEFAULT_RECIPIENT, subject: "Test email at #{Time.now}" )
36
36
  end
37
37
 
38
38
  end
@@ -54,8 +54,9 @@ class IshManager::OfficeMailer < IshManager::ApplicationMailer
54
54
  template_name: template )
55
55
  end
56
56
 
57
+ ## 2023-04-02 _vp_ Continue.
57
58
  def send_context_email ctx_id
58
- @ctx = ::Ish::EmailContext.find ctx_id
59
+ @ctx = Ctx.find ctx_id
59
60
  ac = ActionController::Base.new
60
61
  ac.instance_variable_set( :@ctx, @ctx )
61
62
 
@@ -69,18 +70,3 @@ class IshManager::OfficeMailer < IshManager::ApplicationMailer
69
70
  end
70
71
 
71
72
  end
72
-
73
-
74
- ## 2022-11-10 _vp_ backup
75
- # def send_context_email ctx_id
76
- # @email_ctx = ::Ish::EmailContext.find ctx_id
77
- # template = "render/_#{@email_ctx.email_template.slug}"
78
- # ac = ActionController::Base.new
79
- # ac.instance_variable_set( :@email_ctx, @email_ctx )
80
- # rendered_str = ac.render_to_string("ish_manager/email_templates/_#{@email_ctx.email_template.slug}")
81
- # @email_ctx.update( rendered_str: rendered_str, sent_at: Time.now )
82
- # mail( to: @email_ctx.to_email,
83
- # bcc: 'piousbox@gmail.com',
84
- # subject: @email_ctx.subject,
85
- # template_name: template )
86
- # end
@@ -3,6 +3,7 @@
3
3
  Debug
4
4
  .application--debug
5
5
  %ul.browser-default
6
+ %li= link_to 'sidekiq', '/sidekiq', target: :_blank
6
7
  %li= params.inspect
7
8
  %li Cached? #{Rails.application.config.action_controller.perform_caching} :: Cache key: #{@cache_key.inspect}
8
9
  %li= "Env: #{Rails.env}"
@@ -44,7 +44,9 @@
44
44
  = link_to email_context_path(ctx) do
45
45
  = ctx.subject ? ctx.subject : "t| #{ctx.tmpl.subject}"
46
46
  %td= ctx.email_template.slug
47
- %td= pp_date ctx.send_at
47
+ %td.send_at
48
+ .a= pp_date ctx.send_at
49
+ .a= pp_time ctx.send_at
48
50
  %td= pp_date ctx.sent_at
49
51
 
50
52
 
@@ -0,0 +1,34 @@
1
+
2
+ - url = position.new_record? ? iro_positions_path : iro_position_path( position )
3
+
4
+ .iro-positions--form
5
+ = form_for position, as: :position, url: url do |f|
6
+ .flex-row
7
+ .field Position ##{position.id}
8
+ .field
9
+ = f.label :strategy
10
+ = f.select :iro_strategy_id, options_for_select( Iro::CoveredCallStrategy.list, selected: position.iro_strategy_id ), {}, class: 'select2'
11
+ .field
12
+ = f.label :ticker
13
+ = f.text_field :ticker
14
+
15
+ .field
16
+ = f.label :strike
17
+ = f.number_field :strike, step: 0.01
18
+
19
+ .field
20
+ = f.label :expires_on
21
+ = f.text_field :expires_on
22
+ .field
23
+ = f.label :status
24
+ = f.select :status, options_for_select( Iro::Position.statuses_list, selected: position.status ), {}, class: 'select2'
25
+
26
+ .field
27
+ = f.label :opened_price
28
+ = f.text_field :opened_price
29
+ .field
30
+ = f.label :opened_on
31
+ = f.text_field :opened_on
32
+
33
+ .actions
34
+ = f.submit 'Submit'
@@ -0,0 +1,3 @@
1
+
2
+ .iro-positions-edit.padded
3
+ = render 'form', position: @position
@@ -0,0 +1,3 @@
1
+
2
+ .iro-positions-new.padded
3
+ = render 'form', position: @position
@@ -1,9 +1,10 @@
1
1
 
2
2
  .iro-purses-my.padded
3
3
  .header
4
- %h2.title My purse value: $#{@purse.current_value}
4
+ %h2.title Purse value: $#{@purse.current_value}
5
5
 
6
6
  .strategies
7
+ .title Strategies
7
8
  - @strategies.each do |strat|
8
9
  .strategy
9
10
  = link_to '[~]', edit_iro_strategy_path( strat )
@@ -11,13 +12,15 @@
11
12
 
12
13
 
13
14
  .positions
14
- %h3 Positions (#{@positions.length})
15
+ %h3
16
+ Positions (#{@positions.length})
17
+ = link_to '[+]', new_iro_position_path
15
18
 
16
19
  %table.bordered
17
20
  %thead
18
21
  %tr
19
22
  %td id
20
- %td Strat
23
+ %td Strategy
21
24
  %td Ticker
22
25
  %td Kind/Type
23
26
  %td Strike
@@ -40,8 +43,10 @@
40
43
  %tbody
41
44
  - @positions.each do |p|
42
45
  %tr
43
- %td= p.id
44
- %td= p.iro_strategy_id
46
+ %td
47
+ = p.id
48
+ = link_to '[~]', edit_iro_position_path(p)
49
+ %td= p.strategy
45
50
  %td= p.ticker
46
51
  %td= p.type == "Iro::CoveredCall" ? "CALL" : "other"
47
52
  %td= p.strike
data/config/routes.rb CHANGED
@@ -25,10 +25,11 @@ IshManager::Engine.routes.draw do
25
25
  # end
26
26
  # resources :orders
27
27
 
28
+ resources :iro_positions
28
29
 
29
30
  # get 'iro_watches', to: 'iro_watches#index'
30
31
  resources :iro_watches
31
- get 'iro_purse', to: 'iro_purses#my', as: :my_purse
32
+ get 'iro_purse', to: 'iro_purses#show', as: :my_purse
32
33
 
33
34
  resources :iro_strategies
34
35
 
@@ -1,9 +1,4 @@
1
1
 
2
- def puts! a, b=''
3
- puts "+++ +++ #{b}"
4
- puts a.inspect
5
- end
6
-
7
2
  namespace :office do
8
3
 
9
4
  desc 'scheduled email actions, rolling perform'
@@ -11,34 +6,10 @@ namespace :office do
11
6
  while true do
12
7
 
13
8
  Sch.active.where({ :perform_at.lte => Time.now }).each do |sch|
14
- sch.update_attributes({ state: Sch::STATE_INACTIVE })
15
9
 
16
- # send now
17
- ctx = Ctx.new({
18
- email_template_id: sch.act.tmpl.id,
19
- lead_id: sch.lead.id,
20
- send_at: Time.now,
21
- subject: sch.act.tmpl.subject,
22
- from_email: sch.act.tmpl.from_email,
23
- scheduled_email_action_id: sch.act.id,
24
- })
25
- ctx.save!
26
-
27
- # schedule next actions & update the action
28
- sch.act.ties.each do |tie|
29
- next_act = tie.next_email_action
30
- next_at = eval(tie.next_at_exe)
31
- next_sch = Sch.find_or_initialize_by({
32
- lead_id: sch.lead_id,
33
- email_action_id: next_act.id,
34
- })
35
- next_sch.perform_at = next_at
36
- next_sch.state = Sch::STATE_ACTIVE
37
- next_sch.save!
38
- end
10
+ sch.send_and_roll
39
11
 
40
12
  print '+'
41
-
42
13
  end
43
14
 
44
15
  # sleep 1.minute
@@ -47,13 +18,15 @@ namespace :office do
47
18
  end
48
19
  end
49
20
 
21
+ ## 2023-04-02 _vp_ Continue.
50
22
  desc "send emails"
51
- task email_worker: :environment do
23
+ task ctxs: :environment do
52
24
  while true do
53
25
 
54
26
  ctxs = ::Ish::EmailContext.scheduled.notsent
55
27
  ctxs.map do |ctx|
56
- IshManager::OfficeMailer.send_context_email( ctx[:id].to_s ).deliver_later
28
+ out = IshManager::OfficeMailer.send_context_email( ctx[:id].to_s )
29
+ Rails.env.production? ? out.deliver_later : out.deliver_now
57
30
  print '^'
58
31
  end
59
32
 
@@ -30,5 +30,25 @@ namespace :migrate do
30
30
  end
31
31
  end
32
32
 
33
+ desc "every user needs a user_profile"
34
+ task :generate_user_profiles => :environment do
35
+ User.all.map do |u|
36
+ unless u.profile
37
+ p = ::Ish::UserProfile.new :email => u.email, :user => u, :role_name => :guy
38
+ u.profile = p
39
+ u.save && p.save && print('.')
40
+ end
41
+ end
42
+ puts 'OK'
43
+ end
44
+
45
+ desc 'assign my creator_profile to Gameui::Marker where missing'
46
+ task :gameui_markers_creator_profile => :environment do
47
+ ms = Gameui::Marker.where( creator_profile_id: nil )
48
+ profile = User.find_by( email: 'piousbox@gmail.com' ).profile
49
+ ms.update_all( creator_profile_id: profile.id )
50
+ end
51
+
52
+
33
53
  end
34
54
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ish_manager
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8.402
4
+ version: 0.1.8.404
5
5
  platform: ruby
6
6
  authors:
7
7
  - piousbox
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-04-01 00:00:00.000000000 Z
11
+ date: 2023-04-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -320,6 +320,7 @@ files:
320
320
  - app/controllers/ish_manager/galleries_controller.rb
321
321
  - app/controllers/ish_manager/image_assets_controller.rb
322
322
  - app/controllers/ish_manager/invoices_controller.rb
323
+ - app/controllers/ish_manager/iro_positions_controller.rb
323
324
  - app/controllers/ish_manager/iro_purses_controller.rb
324
325
  - app/controllers/ish_manager/iro_strategies_controller.rb
325
326
  - app/controllers/ish_manager/iro_watches_controller.rb
@@ -478,7 +479,10 @@ files:
478
479
  - app/views/ish_manager/iro_mailer/condor_followup_alerb.html.erb
479
480
  - app/views/ish_manager/iro_mailer/option_alert.html.erb
480
481
  - app/views/ish_manager/iro_mailer/stock_alert.html.erb
481
- - app/views/ish_manager/iro_purses/my.haml
482
+ - app/views/ish_manager/iro_positions/_form.haml
483
+ - app/views/ish_manager/iro_positions/edit.haml
484
+ - app/views/ish_manager/iro_positions/new.haml
485
+ - app/views/ish_manager/iro_purses/show.haml
482
486
  - app/views/ish_manager/iro_strategies/_form.haml
483
487
  - app/views/ish_manager/iro_strategies/edit.haml
484
488
  - app/views/ish_manager/iro_strategies/new.haml
@@ -594,7 +598,6 @@ files:
594
598
  - lib/systemd/system/stockwatcher.service
595
599
  - lib/systemd/system/watch_stocks.service
596
600
  - lib/tasks-done/migrate.rake
597
- - lib/tasks/ish_manager_tasks.rake
598
601
  - lib/tasks/office_tasks.rake
599
602
  homepage: http://wasya.co
600
603
  licenses:
@@ -1,29 +0,0 @@
1
-
2
- def puts! a, b=''
3
- puts "+++ +++ #{b}"
4
- puts a.inspect
5
- end
6
-
7
- namespace :ish_manager do
8
-
9
- desc "every user needs a user_profile"
10
- task :generate_user_profiles => :environment do
11
- User.all.map do |u|
12
- unless u.profile
13
- p = ::Ish::UserProfile.new :email => u.email, :user => u, :role_name => :guy
14
- u.profile = p
15
- u.save && p.save && print('.')
16
- end
17
- end
18
- puts 'OK'
19
- end
20
-
21
- desc 'assign my creator_profile to Gameui::Marker where missing'
22
- task :gameui_markers_creator_profile => :environment do
23
- ms = Gameui::Marker.where( creator_profile_id: nil )
24
- profile = User.find_by( email: 'piousbox@gmail.com' ).profile
25
- ms.update_all( creator_profile_id: profile.id )
26
- end
27
-
28
-
29
- end