From 03a05880737a46b62d909308b0b7667d748cd1bb Mon Sep 17 00:00:00 2001 From: Will Bradley Date: Fri, 14 Feb 2014 03:48:03 -0700 Subject: [PATCH] Creating sweet user summary page --- app/assets/stylesheets/scaffolds.css.scss | 1 - app/controllers/users_controller.rb | 5 +- app/helpers/application_helper.rb | 21 ++++++ app/models/user.rb | 3 + app/views/layouts/application.html.erb | 11 +++- app/views/layouts/resources.html.erb | 79 ++++++++++------------- app/views/resources/index.html.erb | 24 +++---- app/views/users/_badges.html.erb | 5 ++ app/views/users/_user.html.erb | 4 +- app/views/users/summary.html.erb | 38 +++++------ 10 files changed, 106 insertions(+), 85 deletions(-) create mode 100644 app/views/users/_badges.html.erb diff --git a/app/assets/stylesheets/scaffolds.css.scss b/app/assets/stylesheets/scaffolds.css.scss index 93e111e..db7610d 100755 --- a/app/assets/stylesheets/scaffolds.css.scss +++ b/app/assets/stylesheets/scaffolds.css.scss @@ -19,7 +19,6 @@ pre { font-size: 11px; } - div { &.field, &.actions { margin-bottom: 10px; diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index f6d3792..9adaefe 100755 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -17,10 +17,11 @@ class UsersController < ApplicationController def index unless params[:full] # by default, show summary - @users = @users.joins(:payments).where("payments.date > ?", (DateTime.now - 60.days)).uniq + @users = @users.paying + @users.volunteer +#.joins(:payments).where("payments.date > ? OR ", (DateTime.now - 60.days)).uniq respond_to do |format| - format.html { render 'summary' } + format.html { render 'summary', layout: 'resources' } format.json { render :json => @users } end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 2fdeae7..3db69e3 100755 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -7,4 +7,25 @@ module ApplicationHelper sort_dir = params[:dir] == 'up' ? 'down' : 'up' link_to_unless condition, title, request.parameters.merge( {:sort => column, :dir => sort_dir} ) end + + def li_link_to(name = nil, options = nil, html_options = nil, &block) + html_options, options, name = options, name, block if block_given? + options ||= {} + + html_options = convert_options_to_data_attributes(options, html_options) + + url = url_for(options) + html_options['href'] ||= url + + if current_page?(url) + content_tag(:li, class: "active") do + content_tag(:a, name || url, html_options, &block) + end + else + content_tag(:li) do + content_tag(:a, name || url, html_options, &block) + end + end + end + end diff --git a/app/models/user.rb b/app/models/user.rb index f93bc1d..2c76625 100755 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -18,6 +18,9 @@ class User < ActiveRecord::Base has_many :macs has_many :resources + scope :volunteer, -> { where('member_level >= 10 AND member_level < 25') } + scope :paying, -> { joins(:payments).where("payments.date > ?", (DateTime.now - 90.days)).uniq } + validates_format_of [:twitter_url, :facebook_url, :github_url, :website_url], :with => URI::regexp(%w(http https)), :allow_blank => true # disable # validates_presence_of :postal_code diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index d030f79..5f5a180 100755 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -33,9 +33,14 @@ <%= link_to 'Membership Application', new_user_registration_path unless user_signed_in? %>
-

<%= raw(notice) %>

-

<%= raw(alert) %>

-<%= yield %> + <% if notice %> +

<%= raw(notice) %>

+ <% end %> + <% if alert %> +

<%= raw(alert) %>

+ <% end %> + + <%= yield %>
<%= raw Setting.analytics_code if Setting.present? %> diff --git a/app/views/layouts/resources.html.erb b/app/views/layouts/resources.html.erb index 525052e..7c941cd 100755 --- a/app/views/layouts/resources.html.erb +++ b/app/views/layouts/resources.html.erb @@ -60,51 +60,42 @@ diff --git a/app/views/resources/index.html.erb b/app/views/resources/index.html.erb index 9740b29..56bd282 100755 --- a/app/views/resources/index.html.erb +++ b/app/views/resources/index.html.erb @@ -1,13 +1,15 @@ -

Lab Resources - <%= link_to 'Add Resource', new_resource_path, :class => "btn btn-success" if can? :create, Resource %> - <%= link_to 'Categories', resource_categories_path, :class => "btn btn-primary" if can? :read, ResourceCategory %> - Expand/Collapse All -

- - -

Featured item:

-<%= render @featured_resource %> -
+
+

Lab Resources + <%= link_to 'Add Resource', new_resource_path, :class => "btn btn-success" if can? :create, Resource %> + <%= link_to 'Categories', resource_categories_path, :class => "btn btn-primary" if can? :read, ResourceCategory %> + Expand/Collapse All +

+ + +

Featured item:

+ <%= render @featured_resource %> +
+
<% unless @resources.blank? %> @@ -22,7 +24,7 @@
<% resources.each do |resource| %> -
+
<%= render resource %>
<% end %> diff --git a/app/views/users/_badges.html.erb b/app/views/users/_badges.html.erb new file mode 100644 index 0000000..1fc0825 --- /dev/null +++ b/app/views/users/_badges.html.erb @@ -0,0 +1,5 @@ + <%= raw(user.member_status_symbol) %> + <%= link_to image_tag('/twitter.png', :class => 'social-icon', :title => "Twitter"), user.twitter_url, :class => 'social-link' if user.twitter_url.present? %> + <%= link_to image_tag('/facebook.png', :class => 'social-icon', :title => "Facebook"), user.facebook_url, :class => 'social-link' if user.facebook_url.present? %> + <%= link_to image_tag('/github.png', :class => 'social-icon', :title => "Github"), user.github_url, :class => 'social-link' if user.github_url.present? %> + <%= link_to image_tag('/website.png', :class => 'social-icon', :title => "Website"), user.website_url, :class => 'social-link' if user.website_url.present? %> diff --git a/app/views/users/_user.html.erb b/app/views/users/_user.html.erb index 07276a5..8d7efae 100644 --- a/app/views/users/_user.html.erb +++ b/app/views/users/_user.html.erb @@ -1,6 +1,8 @@
<%= image_tag user.gravatar_url(:default => "http://members.heatsynclabs.org/pirate.png") %> - <%= raw(user.member_status_symbol) %> + +<%= render partial: 'badges', locals: {user: user} %> +

<%= link_to user.name, user %>

diff --git a/app/views/users/summary.html.erb b/app/views/users/summary.html.erb index 637e935..4d41828 100755 --- a/app/views/users/summary.html.erb +++ b/app/views/users/summary.html.erb @@ -1,41 +1,33 @@ - - - +<% if user_signed_in? && current_user.current_sign_in_at < Date.parse("2014-03-01") %> +
Looking for the old table view? Find it in the menu under People, Full Table View.
+<% end %> +

HeatSync People -<%= link_to 'Full Table View', {:controller => "users", :full => "full"}, class: "btn btn-primary" %> +<%= link_to 'New User', new_user_path, class: "btn btn-success" if can? :create, User %> +<%= link_to 'Merge Users', users_merge_path, class: "btn btn-default" if can? :manage, User %>

-<% if can? :create, User %> - <%= link_to 'New User', new_user_path %> | -<% end %> -<% if can? :manage, User %> - <%= link_to 'Merge Users', users_merge_path %> | -<% end %> -<% if current_user.admin? %> - <%= link_to 'Inactive Users', users_inactive_path %> | -<% end %> -<% if can? :activity, User %> - <%= link_to 'Recent Activity', users_activity_path %> | -<% end %> -<% if can? :new_member_report, User %> - <%= link_to 'New Members Report', users_new_member_report_path %> -<% end %> - -
- <%= render @users.sort_by(&:member_status).reverse %> + <%= render @users.sort_by{|u| [-u.member_status, u.name] } %>
<% if current_user.orientation.blank? then %>