diff --git a/app/controllers/events_controller.rb b/app/controllers/events_controller.rb index 385f8b0..c46a104 100644 --- a/app/controllers/events_controller.rb +++ b/app/controllers/events_controller.rb @@ -30,6 +30,7 @@ def show # GET /events/new.xml def new @event = Event.new + @locations = current_user.locations respond_to do |format| format.html # new.html.erb @@ -40,6 +41,7 @@ def new # GET /events/1/edit def edit @event = current_user.events.find(params[:id]) + @locations = current_user.locations end # POST /events diff --git a/app/helpers/invite_helper.rb b/app/helpers/invite_helper.rb index 482e1de..384aded 100644 --- a/app/helpers/invite_helper.rb +++ b/app/helpers/invite_helper.rb @@ -5,55 +5,6 @@ def address(location) end - def yes_list() - list_by_state("yes") - end - - def no_list() - list_by_state("no") - end - - def maybe_list() - list_by_state("maybe") - end - - def na_list() - list_by_state("na") - end - - def yes_number() - number_by_state("yes") - end - - def no_number() - number_by_state("no") - end - - def maybe_number() - number_by_state("maybe") - end - - def na_number() - number_by_state("na") - end - - def number_by_state(state) - rsvps = Rsvp.find(:all, :conditions => ["state = ?", state]) - count = 0 - rsvps.each do |r| - count += (r.num or 1) - end - return count - end - - def list_by_state(state) - if state == "na" - return Rsvp.find(:all, :conditions => ["state = ?", state]).sort_by {|s| s.person.email } - else - return Rsvp.find(:all, :conditions => ["state = ?", state]).sort_by {|s| s.updated_at } - end - end - def format_invitee_admin(r) date = "" if r.visited_at diff --git a/app/models/event.rb b/app/models/event.rb index 0e9378f..d9b0599 100644 --- a/app/models/event.rb +++ b/app/models/event.rb @@ -2,4 +2,54 @@ class Event < ActiveRecord::Base has_many :rsvps belongs_to :location belongs_to :user + + def yes_list + list_by_state("yes") + end + + def no_list + list_by_state("no") + end + + def maybe_list + list_by_state("maybe") + end + + def na_list + list_by_state("na") + end + + def yes_number + number_by_state("yes") + end + + def no_number + number_by_state("no") + end + + def maybe_number + number_by_state("maybe") + end + + def na_number + number_by_state("na") + end + + def number_by_state(state) + rs = rsvps.find(:all, :conditions => ["state = ?", state]) + count = 0 + rs.each do |r| + count += (r.num or 1) + end + return count + end + + def list_by_state(state) + if state == "na" + return rsvps.find(:all, :conditions => ["state = ?", state]).sort_by {|s| s.person.email } + else + return rsvps.find(:all, :conditions => ["state = ?", state]).sort_by {|s| s.updated_at } + end + end + end diff --git a/app/views/events/edit.html.erb b/app/views/events/edit.html.erb index 20838a7..371c7d5 100644 --- a/app/views/events/edit.html.erb +++ b/app/views/events/edit.html.erb @@ -30,7 +30,8 @@

Location
- <%= f.text_field :location_id %> + <%= collection_select("event", "location_id", @locations, "id", "name") %> +

diff --git a/app/views/events/index.html.erb b/app/views/events/index.html.erb index 73899cc..fad4e6d 100644 --- a/app/views/events/index.html.erb +++ b/app/views/events/index.html.erb @@ -28,3 +28,4 @@
<%= link_to 'New event', new_event_path %> +<%= link_to 'New location', new_location_path %> diff --git a/app/views/events/new.html.erb b/app/views/events/new.html.erb index a674b6c..efb811d 100644 --- a/app/views/events/new.html.erb +++ b/app/views/events/new.html.erb @@ -30,7 +30,8 @@

Location
- <%= f.text_field :location_id %> + <%= collection_select("event", "location_id", @locations, "id", "name") %> +

diff --git a/app/views/events/show.html.erb b/app/views/events/show.html.erb index f6ae9c3..b41c661 100644 --- a/app/views/events/show.html.erb +++ b/app/views/events/show.html.erb @@ -28,24 +28,24 @@ - -<% yes_list.each do |r| %> + +<% @event.yes_list.each do |r| %> <%= format_invitee_admin(r) %> <% end %> - + -<% maybe_list.each do |r| %> +<% @event.maybe_list.each do |r| %> <%= format_invitee_admin(r) %> <% end %> - -<% no_list.each do |r| %> + +<% @event.no_list.each do |r| %> <%= format_invitee_admin(r) %> <% end %> - -<% na_list.each do |r| %> + +<% @event.na_list.each do |r| %> <%= format_invitee_admin(r) %> <% end %>
NameLast VisitedNumberMessage
Will Attend - <%= yes_number %>
Will Attend - <%= @event.yes_number %>
May Attend - <%= maybe_number %>
May Attend - <%= @event.maybe_number %>
Won't Attend - <%= no_number %>
Won't Attend - <%= @event.no_number %>
Haven't Responded - <%= na_number %>
Haven't Responded - <%= @event.na_number %>
diff --git a/app/views/invite/show.html.erb b/app/views/invite/show.html.erb index fb7f023..a776f24 100644 --- a/app/views/invite/show.html.erb +++ b/app/views/invite/show.html.erb @@ -45,24 +45,24 @@ Click the Map to Get Directions

Who's coming?

- -<% yes_list.each do |r| %> + +<% @rsvp.event.yes_list.each do |r| %> <%= format_invitee(r) %> <% end %> - + -<% maybe_list.each do |r| %> +<% @rsvp.event.maybe_list.each do |r| %> <%= format_invitee(r) %> <% end %> - -<% no_list.each do |r| %> + +<% @rsvp.event.no_list.each do |r| %> <%= format_invitee(r) %> <% end %> - -<% na_list.each do |r| %> + +<% @rsvp.event.na_list.each do |r| %> <%= format_invitee(r) %> <% end %>
NameNumberMessage
Will Attend - <%= yes_number %>
Will Attend - <%= @rsvp.event.yes_number %>
May Attend - <%= maybe_number %>
May Attend - <%= @rsvp.event.maybe_number %>
Won't Attend - <%= no_number %>
Won't Attend - <%= @rsvp.event.no_number %>
Haven't Responded - <%= na_number %>
Haven't Responded - <%= @rsvp.event.na_number %>