Code Monkey home page Code Monkey logo

livelog's People

Contributors

dependabot-preview[bot] avatar dependabot-support avatar dependabot[bot] avatar sankichi92 avatar snakagaw avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

livelog's Issues

Remove `coffee-rails`

Just removing coffee-rails from Gemfile will cause build failures on Heroku.

-----> Preparing app for Rails asset pipeline
       Running: rake assets:precompile
       Yarn executable was not detected in the system.
       Download Yarn at https://yarnpkg.com/en/docs/install
       rake aborted!
       LoadError: cannot load such file -- coffee_script
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.3/lib/active_support/dependencies.rb:292:in `require'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.3/lib/active_support/dependencies.rb:292:in `block in require'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.3/lib/active_support/dependencies.rb:258:in `load_dependency'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.3/lib/active_support/dependencies.rb:292:in `require'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/autoload/coffee_script.rb:1:in `<top (required)>'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.3/lib/active_support/dependencies.rb:292:in `require'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.3/lib/active_support/dependencies.rb:292:in `block in require'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.3/lib/active_support/dependencies.rb:258:in `load_dependency'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.3/lib/active_support/dependencies.rb:292:in `require'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/coffee_script_processor.rb:15:in `cache_key'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/processor_utils.rb:93:in `processor_cache_key'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/cached_environment.rb:22:in `block in initialize'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/cached_environment.rb:53:in `processor_cache_key'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/processor_utils.rb:102:in `block in processors_cache_keys'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/processor_utils.rb:102:in `map'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/processor_utils.rb:102:in `processors_cache_keys'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/processing.rb:159:in `resolve_processors_cache_key_uri'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets.rb:162:in `block in <module:Sprockets>'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/dependencies.rb:67:in `resolve_dependency'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/cached_environment.rb:23:in `block in initialize'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/cached_environment.rb:59:in `resolve_dependency'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/loader.rb:268:in `block in resolve_dependencies'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/loader.rb:268:in `map'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/loader.rb:268:in `resolve_dependencies'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/loader.rb:55:in `block in load'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/loader.rb:311:in `block in fetch_asset_from_dependency_cache'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/loader.rb:307:in `each'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/loader.rb:307:in `each_with_index'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/loader.rb:307:in `fetch_asset_from_dependency_cache'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/loader.rb:44:in `load'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/cached_environment.rb:20:in `block in initialize'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/cached_environment.rb:47:in `load'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/base.rb:66:in `find_asset'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/base.rb:73:in `find_all_linked_assets'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/manifest.rb:142:in `block in find'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/legacy.rb:114:in `block (2 levels) in logical_paths'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/path_utils.rb:228:in `block in stat_tree'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/path_utils.rb:212:in `block in stat_directory'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/path_utils.rb:209:in `each'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/path_utils.rb:209:in `stat_directory'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/path_utils.rb:227:in `stat_tree'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/legacy.rb:105:in `each'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/legacy.rb:105:in `block in logical_paths'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/legacy.rb:104:in `each'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/legacy.rb:104:in `logical_paths'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/manifest.rb:140:in `find'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/sprockets/manifest.rb:185:in `compile'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-rails-3.2.0/lib/sprockets/rails/task.rb:68:in `block (3 levels) in define'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-3.7.1/lib/rake/sprocketstask.rb:147:in `with_logger'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/sprockets-rails-3.2.0/lib/sprockets/rails/task.rb:67:in `block (2 levels) in define'
       /tmp/build_3fd2476f946045315a5a7cdafd088f11/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/exe/rake:27:in `<top (required)>'
       Tasks: TOP => assets:precompile
       (See full trace by running task with --trace)
 !
 !     Precompiling assets failed.

Running bin/rails tmp:cache:clear solved this problem on my local environment.
(cf. rails/sprockets#183 (comment))
However, I did't know how to do this on Heroku.

オリジナル曲かどうかを設定できるようにする

  • Song モデルに original という boolean のフィールドを追加する
  • 曲やエントリーの作成・編集フォームに項目を追加する
  • Concerns::Song::Searchable で Elasticsearch にインデックスするようにする
  • Song::SearchQuery で検索できるようにする

TODO

  • 曲検索
  • 統計
  • 管理者の追加・削除
  • 管理者によるディアクティベート
  • プロフィールの公開範囲
  • 曲の公開範囲
  • プロフィール項目を増やす
  • リリース
  • Analytics と Adsense を仕込む
  • SSL 対応
  • README ちゃんと書く
  • パスワードの変更
  • テストをしっかり書く
  • アルバムURLをライブに追加(入部1年前から8年間のみ閲覧可)
  • 曲の個別ページを Modal にする(show アクションで .js フォーマットに対応する)

ActionMailer のテストで body の内容をチェックできない

/Users/miyoshi/.rbenv/shims/bundle exec ruby -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) /Users/miyoshi/.rbenv/versions/2.4.1/bin/rspec /Users/miyoshi/Projects/LiveLog/spec/mailers/user_mailer_spec.rb --require teamcity/spec/runner/formatter/teamcity/formatter --format Spec::Runner::Formatter::TeamcityFormatter --example UserMailer
Testing started at 0:46 ...
Run options: include {:full_description=>/UserMailer/}

expected "\r\n----==_mimepart_5995ba5196a71_c243fda9543f7c444349\r\nContent-Type: text/plain;\r\n charset=UTF-...2E+PC9wPgoKICA8L2JvZHk+CjwvaHRtbD4K\r\n\r\n----==_mimepart_5995ba5196a71_c243fda9543f7c444349--\r\n" to match "京大 アンプラ太郎"
Diff:
@@ -1,2 +1,39 @@
-京大 アンプラ太郎
+
+----==_mimepart_5995ba5196a71_c243fda9543f7c444349
+Content-Type: text/plain;
+ charset=UTF-8
+Content-Transfer-Encoding: base64
+
+5Lqs5aSn44Ki44Oz44OX44Op44Kw44OJMjAxNuW5tOW6puWFpemDqArkuqzl
+pKcg44Ki44Oz44OX44Op5aSq6YOOIOOBleOCkwoKMjAxNuW5tOW6puWFpemD
+qOOBriDkuqzlpKcg44Ki44Oz44OX44Op5aSq6YOOIOOBleOCk+OBi+OCiSBM
+aXZlTG9nIOOBq+aLm+W+heOBleOCjOOBpuOBhOOBvuOBmeOAggrku6XkuIvj
+ga5VUkzjgYvjgonjgqLjgqvjgqbjg7Pjg4jjga7mnInlirnljJbmiYvntprj
+gY3jgpLooYzjgaPjgabjgY/jgaDjgZXjgYTjgIIKCmh0dHA6Ly9saXZlbG9n
+Lmt1LXVucGx1Z2dlZC5uZXQvbWVtYmVycy8xNjU4L2FjdGl2YXRpb24vZWRp
+dD90PWd6VlUyT1c4M3JJb1RLbEoycEo4TmcKCg==
+
+----==_mimepart_5995ba5196a71_c243fda9543f7c444349
+Content-Type: text/html;
+ charset=UTF-8
+Content-Transfer-Encoding: base64
+
+PCFET0NUWVBFIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPG1ldGEgaHR0
+cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNo
+YXJzZXQ9dXRmLTgiIC8+CiAgICA8c3R5bGU+CiAgICAgIC8qIEVtYWlsIHN0
+eWxlcyBuZWVkIHRvIGJlIGlubGluZSAqLwogICAgPC9zdHlsZT4KICA8L2hl
+YWQ+CgogIDxib2R5PgogICAgPHA+CuS6rOWkp+OCouODs+ODl+ODqeOCsOOD
+iTIwMTblubTluqblhaXpg6gKPGJyPgrkuqzlpKcg44Ki44Oz44OX44Op5aSq
+6YOOIOOBleOCkwo8L3A+CjxwPgoyMDE25bm05bqm5YWl6YOo44GuIOS6rOWk
+pyDjgqLjg7Pjg5fjg6nlpKrpg44g44GV44KT44GL44KJCjxhIGhyZWY9Imh0
+dHA6Ly9saXZlbG9nLmt1LXVucGx1Z2dlZC5uZXQvIj5MaXZlTG9nPC9hPgrj
+gavmi5vlvoXjgZXjgozjgabjgYTjgb7jgZnjgIIKPGJyPgrku6XkuIvjga7j
+g6rjg7Pjgq/jgpLjgq/jg6rjg4Pjgq/jgZfjgabjgqLjgqvjgqbjg7Pjg4jj
+ga7mnInlirnljJbmiYvntprjgY3jgpLooYzjgaPjgabjgY/jgaDjgZXjgYTj
+gIIKPC9wPgo8cD48YSBocmVmPSJodHRwOi8vbGl2ZWxvZy5rdS11bnBsdWdn
+ZWQubmV0L21lbWJlcnMvMTY1OC9hY3RpdmF0aW9uL2VkaXQ/dD1nelZVMk9X
+ODNySW9US2xKMnBKOE5nIj7mnInlirnljJbmiYvntprjgY3jgavpgLLjgoA8
+L2E+PC9wPgoKICA8L2JvZHk+CjwvaHRtbD4K
+
+----==_mimepart_5995ba5196a71_c243fda9543f7c444349--

./spec/mailers/user_mailer_spec.rb:17:in `block (3 levels) in <top (required)>'
-e:1:in `load'
-e:1:in `<main>'

Pending: Temporarily skipped with xit

4 examples, 1 failure, 2 passed, 1 pending

Finished in 0.795407 seconds

Process finished with exit code 1

entry 中の曲を不可視にする

  • クリスマスライブなど, 曲目を秘密としておきたいライブ
  • entry 後の song 変更を気兼ねなく行う

ため, 未来のライブのページについては, 自分が関わっているライブ以外表示されないようにする

LiveLog 上で PA へ曲の申請を行えるようにする

  1. 管理者が未来の日付のライブを追加する
  2. 未来のライブが存在するとき,ログインしているユーザに対して navbar 上に "Apply" ボタンを表示する
  3. Apply すると,PA にメールが送信され,LiveLog 上にも曲が追加される

これにより管理者がライブ終了後に一気に曲を入力する必要がなくなる.
また,PA にもフォーマットの整ったメールが送られる.

未来のライブや曲の扱いを整理する

課題

  • Entry を実装するにあたって「未来のライブ」「未来の曲」という概念が導入されたが,既存のコードがそれに対応していない
    • ユーザー詳細ページの統計や曲一覧に未来の曲が含まれてしまう

解決策

  • それぞれのモデルで適切なスコープを設定する?
    • User.performed_songs とか?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.