Skip to content
Permalink
Browse files

Merge branch 'master' into design_changes

  • Loading branch information...
bitwelder committed Dec 28, 2010
2 parents fffe494 + aaab319 commit b7246890437c3da0dc40190591de9ef057547b7a
Showing with 1,033 additions and 321 deletions.
  1. +3 −1 Gemfile
  2. +15 −2 Gemfile.lock
  3. +1 −8 README.rdoc
  4. +1 −0 app/controllers/admin/organizations_controller.rb
  5. +1 −1 app/controllers/admin/projects_controller.rb
  6. +8 −0 app/controllers/admin/users_controller.rb
  7. +5 −0 app/controllers/application_controller.rb
  8. +10 −0 app/helpers/admin/users_helper.rb
  9. +9 −0 app/models/ability.rb
  10. +4 −3 app/models/photo.rb
  11. +25 −0 app/models/user.rb
  12. +21 −16 app/views/admin/organizations/edit.html.haml
  13. +33 −30 app/views/admin/organizations/show.html.haml
  14. +4 −3 app/views/admin/projects/edit.html.haml
  15. +15 −7 app/views/admin/projects/show.html.haml
  16. +7 −0 app/views/admin/users/_user.html.haml
  17. +14 −0 app/views/admin/users/index.html.haml
  18. +1 −1 app/views/layouts/admin.html.haml
  19. +6 −0 app/views/pages/access_denied.html.haml
  20. +5 −0 app/views/pages/access_denied_anonymous.html.haml
  21. +30 −48 app/views/projects/show.html.haml
  22. +3 −2 app/views/shared/_header.html.haml
  23. +10 −0 config/locales/en.yml
  24. +10 −0 config/locales/fr.yml
  25. +1 −0 config/routes.rb
  26. +9 −0 db/migrate/20101211173312_add_roles_mask_to_users.rb
  27. +38 −2 features/admin_creates_organization.feature
  28. +35 −0 features/admin_creates_project.feature
  29. +13 −0 features/admin_views_homepage.feature
  30. +53 −0 features/admin_views_users.feature
  31. +4 −0 features/support/paths.rb
  32. +1 −0 features/visitor_views_homepage.feature
  33. +1 −1 features/visitor_views_project.feature
  34. +21 −0 lib/tasks/maintenance.rake
  35. BIN public/stylesheets/images/ui-bg_flat_0_aaaaaa_40x100.png
  36. BIN public/stylesheets/images/ui-bg_flat_75_ffffff_40x100.png
  37. BIN public/stylesheets/images/ui-bg_glass_55_fbf9ee_1x400.png
  38. BIN public/stylesheets/images/ui-bg_glass_65_ffffff_1x400.png
  39. BIN public/stylesheets/images/ui-bg_glass_75_dadada_1x400.png
  40. BIN public/stylesheets/images/ui-bg_glass_75_e6e6e6_1x400.png
  41. BIN public/stylesheets/images/ui-bg_glass_95_fef1ec_1x400.png
  42. BIN public/stylesheets/images/ui-bg_highlight-soft_75_cccccc_1x100.png
  43. BIN public/stylesheets/images/ui-icons_222222_256x240.png
  44. BIN public/stylesheets/images/ui-icons_2e83ff_256x240.png
  45. BIN public/stylesheets/images/ui-icons_454545_256x240.png
  46. BIN public/stylesheets/images/ui-icons_888888_256x240.png
  47. BIN public/stylesheets/images/ui-icons_cd0a0a_256x240.png
  48. +203 −75 public/stylesheets/sass/screen.scss
  49. +154 −64 spec/controllers/admin/organizations_controller_spec.rb
  50. +154 −57 spec/controllers/admin/projects_controller_spec.rb
  51. +53 −0 spec/controllers/admin/users_controller_spec.rb
  52. +10 −0 spec/helpers/admin/users_helper.rb
  53. +42 −0 spec/models/user_spec.rb
  54. BIN vendor/cache/cancan-1.4.1.gem
  55. BIN vendor/cache/code_buddy-0.0.6.gem
  56. BIN vendor/cache/coderay-0.9.6.gem
  57. BIN vendor/cache/hassle-0.0.1.gem
  58. BIN vendor/cache/paperclip-2.3.4.gem
  59. BIN vendor/cache/paperclip-2.3.8.gem
  60. BIN vendor/cache/sinatra-1.1.0.gem
  61. BIN vendor/cache/tilt-1.1.gem
@@ -5,7 +5,7 @@ gem "rack"
gem "haml"
gem "high_voltage"
gem "hoptoad_notifier"
gem "paperclip"
gem "paperclip", "2.3.8"
gem "formtastic"
gem "pg"
gem "flutie"
@@ -16,6 +16,7 @@ gem 'devise_rpx_connectable'
gem 'aws-s3'
gem "http_accept_language", :git => 'http://github.com/iain/http_accept_language.git'
gem 'will_paginate', '3.0.pre2' # still not release for Rails 3
gem 'cancan'
gem 'hassle', :git => 'git://github.com/koppen/hassle.git'

# http://blog.davidchelimsky.net/2010/07/11/rspec-rails-2-generators-and-rake-tasks/
@@ -24,6 +25,7 @@ group :development, :test, :cucumber do
gem "ruby-debug"
gem "faker"
gem "factory_girl_rails"
gem "code_buddy"
end

group :test, :cucumber do
@@ -52,13 +52,20 @@ GEM
bourne (1.0)
mocha (= 0.9.8)
builder (2.1.2)
cancan (1.4.1)
capybara (0.3.9)
culerity (>= 0.2.4)
mime-types (>= 1.16)
nokogiri (>= 1.3.3)
rack (>= 1.0.0)
rack-test (>= 0.5.4)
selenium-webdriver (>= 0.0.3)
code_buddy (0.0.6)
coderay (~> 0.9.6)
json_pure (~> 1.4.6)
rack
sinatra (~> 1.1.0)
coderay (0.9.6)
columnize (0.3.1)
configuration (1.1.0)
cucumber (0.9.2)
@@ -121,7 +128,7 @@ GEM
mocha (0.9.8)
rake
nokogiri (1.4.3.1)
paperclip (2.3.4)
paperclip (2.3.8)
activerecord
activesupport
pg (0.9.0)
@@ -172,8 +179,12 @@ GEM
json_pure
rubyzip
shoulda (2.11.3)
sinatra (1.1.0)
rack (~> 1.1)
tilt (~> 1.1)
term-ansicolor (1.0.5)
thor (0.14.3)
tilt (1.1)
timecop (0.3.5)
treetop (1.4.8)
polyglot (>= 0.3.1)
@@ -189,7 +200,9 @@ PLATFORMS
DEPENDENCIES
aws-s3
bourne
cancan
capybara
code_buddy
cucumber-rails
database_cleaner
devise
@@ -209,7 +222,7 @@ DEPENDENCIES
http_accept_language!
launchy
nokogiri
paperclip
paperclip (= 2.3.8)
pg
rack
rails (= 3.0.1)
@@ -31,18 +31,11 @@ http://github.com/ReliefHub/reliefhub
Pivotal Tracker:

https://www.pivotaltracker.com/projects/122363

Campfire Chat Room:

https://futurefridays.campfirenow.com/7f77a


Designs:

http://melissayasko.com/ReliefHub/reliefhub.html

Build Machine:

http://ci.reliefhub.railsmachina.com

==Development Notes

@@ -1,5 +1,6 @@
class Admin::OrganizationsController < ApplicationController
layout 'admin'
load_and_authorize_resource

def index
@organizations = Organization.all
@@ -1,7 +1,7 @@
class Admin::ProjectsController < ApplicationController
layout 'admin'

before_filter :organization, :except => [:index]
load_and_authorize_resource

def index
@projects = Project.all
@@ -0,0 +1,8 @@
class Admin::UsersController < ApplicationController
layout 'admin'
load_and_authorize_resource

def index
@users = User.ascending.paginate :page => params[:page], :per_page => 10
end
end
@@ -26,4 +26,9 @@ def sign_out_path
destroy_user_session_path
end
helper_method :sign_out_path

rescue_from CanCan::AccessDenied do |exception|
redirect_to page_path(current_user.nil? ? 'access_denied_anonymous' : 'access_denied')
end

end
@@ -0,0 +1,10 @@
module Admin::UsersHelper
def display_if_is?(user, role)
if user.is? role
'Enabled'
else
'Disabled'
end
end
end

@@ -0,0 +1,9 @@
class Ability
include CanCan::Ability

def initialize(user)
if user && user.is?('admin')
can :manage, :all
end
end
end
@@ -1,6 +1,7 @@
class Photo < ActiveRecord::Base
include Mixins::PaperclipStorageDecider
has_attached_file :file, @paperclip_storage.merge({ :styles => { :thumb => '100x80#',
:small => '114x114#',
:full => '288x255#'} })
has_attached_file :file, @paperclip_storage.merge({:styles => {:thumb => '100x80#',
:small => '114x114#',
:medium => '209x209#',
:full => '288x255#'}})
end
@@ -13,6 +13,31 @@ class User < ActiveRecord::Base
validates_presence_of :first_name
validates_presence_of :last_name

scope :ascending, order('last_name, first_name')

# http://github.com/ryanb/cancan/wiki/role-based-authorization

ROLES =%w[admin field_operator organization_manager]

def roles=(roles)
roles = roles.split if roles.is_a? String
self.roles_mask = (roles & ROLES).map { |r| 2**ROLES.index(r) }.sum
end

def roles
ROLES.reject do |r|
((roles_mask || 0) & 2**ROLES.index(r)).zero?
end
end

def is?(role)
roles.include?(role.to_s)
end

def display_name
"#{first_name} #{last_name}"
end

def unique_projects
projects.uniq
end
@@ -1,16 +1,21 @@
= semantic_form_for [:admin, @organization], :html => {:multipart => true} do |f|
= f.inputs do
= f.input :name
= render :partial=>'admin/edit_photo', :collection=>@organization.organization_photos, :locals=>{:field_name=>'organization[organization_photos_attributes][][file]'}
= f.input :street1
= f.input :street2
= f.input :city
= f.input :state
= f.input :zip
= f.input :country, :as => :string
= f.input :contact_person
= f.input :phone_number
= f.input :email_address
= f.input :website
= f.input :overview
= f.submit "Save"
%h1 Edit Organization
.edit_org
= semantic_form_for [:admin, @organization], :html => {:multipart => true} do |f|
= f.inputs do
= f.input :name
.org_files
= render :partial=>'admin/edit_photo', :collection=>@organization.organization_photos, :locals=>{:field_name=>'organization[organization_photos_attributes][][file]'}
.clear
= f.input :street1
= f.input :street2
= f.input :city
= f.input :state
= f.input :zip
= f.input :country, :as => :string
= f.input :contact_person
= f.input :phone_number
= f.input :email_address
= f.input :website
= f.input :overview
.clear
= f.submit "Save"
@@ -2,38 +2,41 @@
.left
%h2= @organization.name
.right= link_to image_tag('edit.gif'), edit_admin_organization_path(@organization), :id=>"Edit"

.section
.section
Pictures
.clear
%br
%h4 Pictures
.pictures
- @organization.organization_photos.each do |organization_photo|
= image_tag organization_photo.file.url(:thumb)

.section
Address
= @organization.address

.section
Contact Person
= @organization.contact_person

.section
Phone Number
= @organization.phone_number

.section
Email Address
= @organization.email_address

.section
Website
= @organization.website

.section
Overview
= @organization.overview

%h2.left Projects in this Organization
.details
%table
%tr
%th
Address
%th
Contact
%th
Phone
%th
Email
%th
Website
%tr
%td
= @organization.address
%td
= @organization.contact_person
%td
= @organization.phone_number
%td
= @organization.email_address
%td
= @organization.website
.overview
%p= @organization.overview
%br
.left
%h2 Projects in this Organization
%h2.right.create-button= link_to 'Create Project', new_admin_organization_project_path(@organization)

%table
@@ -1,12 +1,13 @@
%h1
Edit Project Form
%p
.edit_project
= semantic_form_for [:admin, @project], :url => admin_organization_project_path(@organization), :html => { :multipart => true } do |f|
= f.inputs do
= f.input :name
= f.input :status, :as => :select, :collection => Project.statuses
= f.input :overview
= f.input :funds_purpose
= f.input :goal
= render :partial => 'admin/edit_photo', :collection => @project.project_photos, :locals => { :field_name => 'project[project_photos_attributes][][file]' }
= f.submit 'Save Project'
.files
= render :partial => 'admin/edit_photo', :collection => @project.project_photos, :locals => { :field_name => 'project[project_photos_attributes][][file]' }
= f.submit 'Save Project'
@@ -3,20 +3,28 @@
Orphanage
= link_to @project.organization.name, admin_organization_path(@project.organization)
%p
Status
%br
Status:
= @project.status
%p
Overview
%br
Overview:
= @project.overview
%p
Funds Purpose
%br
Funds Purpose:
= @project.funds_purpose
%p
Funding Needed
%br
Funding Needed:
= @project.goal
%p
Pictures
%br
Pictures:
%br
- @project.project_photos.each do |project_photo|
= image_tag project_photo.file.url(:thumb)

= link_to image_tag('edit.gif'), edit_admin_organization_project_path(@project.organization, @project), :id => "Edit"
%br
%br
%br
= link_to image_tag('edit.gif'), edit_admin_organization_project_path(@project.organization, @project), :id => "Edit"
@@ -0,0 +1,7 @@
%tr
%td= user.created_at.strftime("%m/%d/%Y")
%td= user.display_name
%td= user.email
%td= display_if_is?(user, 'field_operator')
%td= display_if_is?(user, 'organization_manager')
%td= display_if_is?(user, 'admin')
@@ -0,0 +1,14 @@
%h1.left
Users
%table
%tr.header
%th Created
%th User Name
%th Email
%th Field Operator
%th Orphanage Manager
%th Site Administrator
= render @users
.pagination
%ul=will_paginate @users
.clear

0 comments on commit b724689

Please sign in to comment.
You can’t perform that action at this time.