Skip to content

Commit

Permalink
add calendar view first release
Browse files Browse the repository at this point in the history
  • Loading branch information
Francisco de Juan committed Jun 5, 2013
1 parent 7615320 commit c26cabd
Show file tree
Hide file tree
Showing 21 changed files with 226 additions and 6 deletions.
6 changes: 6 additions & 0 deletions app/controllers/calendars_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
class CalendarsController < ApplicationController
def show
@users_by_availability = User.by_availability
@weekdays = %w(monday tuesday wednesday thursday friday saturday sunday)
end
end
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
class MyAccountController < ApplicationController
class MyAccountsController < ApplicationController

def index
def show
@user = current_user
@weekdays = %w(monday tuesday wednesday thursday friday saturday sunday)

Expand Down
2 changes: 2 additions & 0 deletions app/helpers/calendar_helper.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
module CalendarHelper
end
14 changes: 14 additions & 0 deletions app/models/user.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,20 @@ class User < ActiveRecord::Base
end
end


def self.by_availability
@by_availability ||= {}

weekdays = %w(monday tuesday wednesday thursday friday saturday sunday)
(10..22).each do |hour|
weekdays.each do |day|
@by_availability["#{day}_#{hour}"] = self.where("#{day}_#{hour}" => true)
end
end

return @by_availability
end

def has_name_and_phone?
name.present? && phone.present?
end
Expand Down
32 changes: 32 additions & 0 deletions app/views/calendars/show.html.haml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
.page-header
%h1 Calendar

%table.table.table-striped
%thead
%tr
%td &nbsp;
- @weekdays.each do |day|
%th= day
%tbody
- (10..22).each do |hour|
%tr
%th= hour
- @weekdays.each do |day|
%td
- @users_by_availability["#{day}_#{hour}"].each do |user|
%i{:class => "icon-user", :title => user.name}

- if @users_by_availability["#{day}_#{hour}"].count > 0
.modal.hide.fade.in{:style => "display: none; ", :id => "#{day}_#{hour}"}
.modal-header
%a.close{"data-dismiss" => "modal"} ×
%h3= "#{day} at #{hour}"
.modal-body
%p= @users_by_availability["#{day}_#{hour}"].collect(&:name).to_sentence
.modal-footer
%a.btn.btn-success{:href => "#"} Let's play
%a.btn{"data-dismiss" => "modal", :href => "#"} Close


%a{"data-toggle" => "modal", :href => "##{day}_#{hour}"}
%i{:class => "icon-plus"}
9 changes: 9 additions & 0 deletions app/views/devise/confirmations/new.html.haml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
%h2 Resend confirmation instructions
= form_for(resource, :as => resource_name, :url => confirmation_path(resource_name), :html => { :method => :post }) do |f|
= devise_error_messages!
%div
= f.label :email
%br/
= f.email_field :email, :autofocus => true
%div= f.submit "Resend confirmation instructions"
= render "devise/shared/links"
4 changes: 4 additions & 0 deletions app/views/devise/mailer/confirmation_instructions.html.haml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
%p
Welcome #{@email}!
%p You can confirm your account email through the link below:
%p= link_to 'Confirm my account', confirmation_url(@resource, :confirmation_token => @resource.confirmation_token)
6 changes: 6 additions & 0 deletions app/views/devise/mailer/reset_password_instructions.html.haml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
%p
Hello #{@resource.email}!
%p Someone has requested a link to change your password. You can do this through the link below.
%p= link_to 'Change my password', edit_password_url(@resource, :reset_password_token => @resource.reset_password_token)
%p If you didn't request this, please ignore this email.
%p Your password won't change until you access the link above and create a new one.
5 changes: 5 additions & 0 deletions app/views/devise/mailer/unlock_instructions.html.haml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
%p
Hello #{@resource.email}!
%p Your account has been locked due to an excessive number of unsuccessful sign in attempts.
%p Click the link below to unlock your account:
%p= link_to 'Unlock my account', unlock_url(@resource, :unlock_token => @resource.unlock_token)
14 changes: 14 additions & 0 deletions app/views/devise/passwords/edit.html.haml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
%h2 Change your password
= form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :put }) do |f|
= devise_error_messages!
= f.hidden_field :reset_password_token
%div
= f.label :password, "New password"
%br/
= f.password_field :password, :autofocus => true
%div
= f.label :password_confirmation, "Confirm new password"
%br/
= f.password_field :password_confirmation
%div= f.submit "Change my password"
= render "devise/shared/links"
9 changes: 9 additions & 0 deletions app/views/devise/passwords/new.html.haml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
%h2 Forgot your password?
= form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :post }) do |f|
= devise_error_messages!
%div
= f.label :email
%br/
= f.email_field :email, :autofocus => true
%div= f.submit "Send me reset password instructions"
= render "devise/shared/links"
30 changes: 30 additions & 0 deletions app/views/devise/registrations/edit.html.haml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
%h2
Edit #{resource_name.to_s.humanize}
= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f|
= devise_error_messages!
%div
= f.label :email
%br/
= f.email_field :email, :autofocus => true
- if devise_mapping.confirmable? && resource.pending_reconfirmation?
%div
Currently waiting confirmation for: #{resource.unconfirmed_email}
%div
= f.label :password
%i (leave blank if you don't want to change it)
%br/
= f.password_field :password, :autocomplete => "off"
%div
= f.label :password_confirmation
%br/
= f.password_field :password_confirmation
%div
= f.label :current_password
%i (we need your current password to confirm your changes)
%br/
= f.password_field :current_password
%div= f.submit "Update"
%h3 Cancel my account
%p
Unhappy? #{button_to "Cancel my account", registration_path(resource_name), :data => { :confirm => "Are you sure?" }, :method => :delete}
= link_to "Back", :back
25 changes: 25 additions & 0 deletions app/views/devise/registrations/new.html.haml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
%h2 Sign up
= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f|
= devise_error_messages!
%div
= f.label :name
%br/
= f.text_field :name, :autofocus => true
%div
= f.label :phone
%br/
= f.text_field :phone
%div
= f.label :email
%br/
= f.email_field :email
%div
= f.label :password
%br/
= f.password_field :password
%div
= f.label :password_confirmation
%br/
= f.password_field :password_confirmation
%div= f.submit "Sign up"
= render "devise/shared/links"
16 changes: 16 additions & 0 deletions app/views/devise/sessions/new.html.haml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
%h2 Sign in
= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f|
%div
= f.label :email
%br/
= f.email_field :email, :autofocus => true
%div
= f.label :password
%br/
= f.password_field :password
- if devise_mapping.rememberable?
%div
= f.check_box :remember_me
= f.label :remember_me
%div= f.submit "Sign in"
= render "devise/shared/links"
19 changes: 19 additions & 0 deletions app/views/devise/shared/_links.haml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
- if controller_name != 'sessions'
= link_to "Sign in", new_session_path(resource_name)
%br/
- if devise_mapping.registerable? && controller_name != 'registrations'
= link_to "Sign up", new_registration_path(resource_name)
%br/
- if devise_mapping.recoverable? && controller_name != 'passwords'
= link_to "Forgot your password?", new_password_path(resource_name)
%br/
- if devise_mapping.confirmable? && controller_name != 'confirmations'
= link_to "Didn't receive confirmation instructions?", new_confirmation_path(resource_name)
%br/
- if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks'
= link_to "Didn't receive unlock instructions?", new_unlock_path(resource_name)
%br/
- if devise_mapping.omniauthable?
- resource_class.omniauth_providers.each do |provider|
= link_to "Sign in with #{provider.to_s.titleize}", omniauth_authorize_path(resource_name, provider)
%br/
9 changes: 9 additions & 0 deletions app/views/devise/unlocks/new.html.haml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
%h2 Resend unlock instructions
= form_for(resource, :as => resource_name, :url => unlock_path(resource_name), :html => { :method => :post }) do |f|
= devise_error_messages!
%div
= f.label :email
%br/
= f.email_field :email, :autofocus => true
%div= f.submit "Resend unlock instructions"
= render "devise/shared/links"
5 changes: 3 additions & 2 deletions app/views/layouts/application.html.haml
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,14 @@
%span.icon-bar
%span.icon-bar
%span.icon-bar
%a.brand(href="/") Padel
%a.brand Padel
.container.nav-collapse
- if user_signed_in?
%ul.nav.pull-right
%li= link_to t('devise.links.sign_out'), destroy_user_session_path, :method => :delete
%ul.nav
%li= link_to "My account", "/"
%li= link_to "My account", my_account_path
%li= link_to "Calendar", calendar_path

.container-fluid

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,9 @@
%b Email:
= @user.email

%h2 My week
.page-header
%h2 My week

.row
.span9

Expand Down
6 changes: 5 additions & 1 deletion config/routes.rb
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
Padel::Application.routes.draw do
resource :calendar, only: [:show]

resource :my_account, only: [:show]

resources :users, only: [:update]

devise_for :users

root to: 'my_account#index'
root to: 'my_accounts#show'

# The priority is based upon order of creation:
# first created -> highest priority.
Expand Down
9 changes: 9 additions & 0 deletions test/functional/calendar_controller_test.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
require 'test_helper'

class CalendarControllerTest < ActionController::TestCase
test "should get show" do
get :show
assert_response :success
end

end
4 changes: 4 additions & 0 deletions test/unit/helpers/calendar_helper_test.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
require 'test_helper'

class CalendarHelperTest < ActionView::TestCase
end

0 comments on commit c26cabd

Please sign in to comment.