diff --git a/app/assets/stylesheets/pages.scss b/app/assets/stylesheets/pages.scss index 6286627..72c5f89 100644 --- a/app/assets/stylesheets/pages.scss +++ b/app/assets/stylesheets/pages.scss @@ -1,4 +1,35 @@ // Place all the styles related to the pages controller here. // They will automatically be included in application.css. // You can use Sass (SCSS) here: http://sass-lang.com/ -.shame-percentage { text-align: right } +.shame-percentage { + text-align: right +} + +a.login-button { + font-size: 200%; + margin: 2em; +} + +.columns-title { + text-align: center; +} + +.left-column { + text-align: right; + padding: 1em 3em; + border-right: 1px solid black; +} + +.right-column { + text-align: left; + padding: 1em 3em; + border-left: 1px solid black; +} + +.full-table { + width: 100%; +} + +.landing-column { + padding: 1em; +} diff --git a/app/controllers/concerns/statistics.rb b/app/controllers/concerns/statistics.rb index e2f756f..a74cd3b 100644 --- a/app/controllers/concerns/statistics.rb +++ b/app/controllers/concerns/statistics.rb @@ -24,10 +24,13 @@ class Statistics < Rails::Application }) end - def amount_distribution - Transaction.group("round(amount / 1000)").count.inject(Hash.new) do |hash, (group, count)| - hash.merge({10 * group.to_f => count}) - end + def creation_counts + User + .joins(:issued_transactions) + .group(:name) + .order("count_all DESC") + .count + .take([shameful_users.count, 4].max) end private @@ -37,3 +40,4 @@ class Statistics < Rails::Application end end + diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml index 1dd2d96..bdd6542 100644 --- a/app/views/layouts/application.html.haml +++ b/app/views/layouts/application.html.haml @@ -17,8 +17,6 @@ - if current_user.penning %li.pure-menu-item =link_to "Zeus", User.zeus, class: "pure-menu-link" - - else - = link_to "Sign in", user_omniauth_authorize_path(:zeuswpi), class: "pure-menu-link" unless current_user .pure-u-1 = render 'partials/flash' = yield diff --git a/app/views/pages/landing.html.haml b/app/views/pages/landing.html.haml index 80f85a5..159d11a 100644 --- a/app/views/pages/landing.html.haml +++ b/app/views/pages/landing.html.haml @@ -1,34 +1,43 @@ -%h1 Tab! -%h2 Authentication -- if user_signed_in? - %p Yeah! Je bent ingelogd. -- else - Log een keer in! - %p= link_to "Log in met Zeus WPI", user_omniauth_authorize_path(:zeuswpi) -%h2 Cute Little Statistics +%h1.columns-title Tab = javascript_include_tag "//www.google.com/jsapi", "chartkick" -.pure-g - .pure-u-1-2 - %h3 Table of Shame - %table.pure-table - %thead - %th Shame on - %th Contribution to Zeus' lack of money - %tbody - - @statistics.shameful_users.each do |user| - %tr - %td.shameful-person= user.name - // Won't divide by zero because there won't be any users with - // a shameful debt if the total debt is zero. - %td.shame-percentage= "#{-100 * user.balance / @statistics.total_debt}%" - .pure-u-1-2 - %h3 Pie of Shame - = pie_chart @statistics.shamehash -.pure-g - .pure-u-1-2 - %h3 Distribution of Debt Sources - = pie_chart @statistics.by_issuer - .pure-u-1-2 - %h3 Distribution of Transaction Amounts - = @statistics.amount_distribution - = column_chart @statistics.amount_distribution +- unless user_signed_in? + .pure-g + .pure-u-1-2.left-column + %h2 Authentication + Log een keer in en betaal uw schulden! + = link_to "Log in met Zeus WPI", user_omniauth_authorize_path(:zeuswpi), class: "pure-button pure-button-primary login-button" + .pure-u-1-2.right-column + %h2 Pie of Shame + = pie_chart @statistics.shamehash +- else + %h2.columns-title Cute Little Statistics + .pure-g + .pure-u-1-2.landing-column + %h3.columns-title Pie of Shame + = pie_chart @statistics.shamehash + %h3.columns-title Table of Shame + %table.pure-table.full-table + %thead + %th Shame on + %th Contribution to Zeus' lack of money + %tbody + - @statistics.shameful_users.each do |user| + %tr + %td.shameful-person= user.name + // Won't divide by zero because there won't be any users with + // a shameful debt if the total debt is zero. + %td.shame-percentage= "#{-100 * user.balance / @statistics.total_debt}%" + .pure-u-1-2.landing-column + %h3.columns-title Distribution of Debt Sources + = pie_chart @statistics.by_issuer + %h3.columns-title Top Debt Creators + %table.pure-table.full-table + %thead + %th Issuer + %th Number of Transactions issued + %tbody + - @statistics.creation_counts.each do |name, count| + %tr + %td.shameful-person= name + %td.shame-percentage= count +