improve landing page

This commit is contained in:
Felix Van der Jeugt 2015-09-17 18:23:21 +02:00
parent a59dfd0d51
commit 4aebb0be59
4 changed files with 82 additions and 40 deletions

View file

@ -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;
}

View file

@ -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

View file

@ -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

View file

@ -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