Skip to content

Commit

Permalink
mass invitations implemented. go to members/new to mass invite
Browse files Browse the repository at this point in the history
  • Loading branch information
oma committed Feb 22, 2012
1 parent 7cd3b83 commit ecb7ce8
Show file tree
Hide file tree
Showing 7 changed files with 62 additions and 39 deletions.
33 changes: 15 additions & 18 deletions app/controllers/members_controller.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# -*- encoding : utf-8 -*-
class MembersController < ApplicationController
before_filter :authenticate_admin!, except: [:index]
USER_ACTIONS = [:show, :edit, :update, :destroy]
before_filter :authenticate_admin!, except: USER_ACTIONS
before_filter :authenticate_member!, only: USER_ACTIONS


# GET /members
# GET /members.json
Expand All @@ -24,35 +27,28 @@ def show
end
end


# GET /members/1/edit
def edit
@member = Member.find(params[:id])
end



# GET /members/new
# GET /members/new.json
def new
@member = Member.new

respond_to do |format|
format.html # new.html.erb
format.json { render json: @member }
end
end

# GET /members/1/edit
def edit
@member = Member.find(params[:id])
end

# POST /members
# POST /members.json
def create
@member = Member.new(params[:member])

count = Member.mass_invite!(params["MassInvite"]["emails"])
respond_to do |format|
if @member.save
format.html { redirect_to @member, notice: 'Member was successfully created.' }
format.json { render json: @member, status: :created, location: @member }
else
format.html { render action: "new" }
format.json { render json: @member.errors, status: :unprocessable_entity }
end
format.html { redirect_to new_member_path, notice: "Yaay! Totalt #{count} invitasjoner ble sendt." }
end
end

Expand Down Expand Up @@ -83,4 +79,5 @@ def destroy
format.json { head :no_content }
end
end

end
19 changes: 16 additions & 3 deletions app/models/member.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,22 @@ class Member < ActiveRecord::Base
:recoverable, :rememberable, :trackable, :validatable

# Setup accessible (or protected) attributes for your model
attr_accessible :name, :address, :city, :postcode, :email, :password, :password_confirmation, :remember_me
attr_accessible :name, :address, :city, :postcode,:country, :email, :password, :password_confirmation, :remember_me

validates :name, :address, :city, :presence => true
validates :postcode, :presence => true, :numericality => true
validates :name,:email,:password, :password_confirmation, :country, :city, :presence => true
#validates :postcode, :presence => true, :numericality => true


def self.mass_invite(email_name_string)
email_name_string.lines.reduce([]) do |members, line|
email, name = line.split(',')
members << {email: email.chomp, name: name.gsub('"','').chomp}
end
end

def self.mass_invite!(email_name_string)
mass_invite(email_name_string).each do |m|
Member.invite!(m)
end.count
end
end
25 changes: 14 additions & 11 deletions app/views/devise/invitations/edit.html.erb
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
<h2>Set your password</h2>
<h2>Fullfør invitasjon</h2>

<%= form_for resource, :as => resource_name, :url => invitation_path(resource_name), :html => { :method => :put } do |f| %>
<%= devise_error_messages! %>
<%= f.hidden_field :invitation_token %>
<%= simple_form_for(resource, :as => resource_name, :url => invitation_path(resource_name), :wrapper => :inline, :html => { :class => 'form-stacked' }) do |f| %>
<%= f.error_notification %>
<%= f.hidden_field :invitation_token %>
<%= f.input :email, :label => 'E-postadresse' %><a data-content="We need your email in case we have follow up questions. We respect your privacy and will not share the email address with others." rel="popover" href="#" data-original-title="Email privacy">[?]</a>
<%= f.input :name, :label => 'Navn' %>
<%= f.input :address, :label => 'Adresse' %>
<%= f.input :postcode, :label => 'Postnr' %>
<%= f.input :city, :label => 'Sted' %>
<%= f.input :country, :as => :string, :label => 'Land', :input_html => { :value => 'Norge' } %>
<%= f.input :password%>
<%= f.input :password_confirmation %>
<%= f.submit 'Godta invitasjon', :class =>'btn primary' %>
<p><%= f.label :password %><br />
<%= f.password_field :password %></p>

<p><%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation %></p>

<p><%= f.submit "Set my password" %></p>
<% end %>

5 changes: 3 additions & 2 deletions app/views/members/_form.html.erb
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
<%= simple_form_for(@member, :wrapper => :inline, :html => { :class => 'form-stacked' }) do |f| %>
<%= f.error_notification %>
<%= f.error_notification %>
<%= f.input :email, :label => 'E-postadresse' %><a data-content="We need your email in case we have follow up questions. We respect your privacy and will not share the email address with others." rel="popover" href="#" data-original-title="Email privacy">[?]</a>
<%= f.input :name, :label => 'Navn' %>
<%= f.input :address, :label => 'Adresse' %>
<%= f.input :postcode, :label => 'Postnr' %>
<%= f.input :city, :label => 'Sted' %>
<%= f.input :country, :as => :string, :label => 'Land', :input_html => { :value => 'Norge' } %>
<%= f.submit 'Lagre', :class =>'btn primary' %>
<% end %>
14 changes: 12 additions & 2 deletions app/views/members/new.html.erb
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
<h3>Meld deg inn i Smidigkonferansen</h3>
<h3>Masseinvitasjoner til Smidigkonferansen</h3>

<%= render 'form' %>
<%= form_for "MassInvite", :url => members_path, :html => {:method => :post} do |f| %>

<p></p>
<p>Lim inn eposter og navn under. Vi skiller deltaker på linjeskift og epost og navn på komma, slik:</p>
<p>oma@example.com, Ole Morten Heggebakken Amundsen<br/>
kja@example.com, Knut Johannes Dahle</p>
<p></p>
<p><%= f.text_area :emails, class: 'xxlarge' %></p>

<p><%= f.submit "Send invitasjon til alle" %></p>
<% end %>
2 changes: 1 addition & 1 deletion config/environments/development.rb
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,6 @@
config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_deliveries = true
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
config.action_mailer.delivery_method = :smtp #:sendmail
config.action_mailer.delivery_method = :test #:smtp #:sendmail

end
3 changes: 1 addition & 2 deletions config/routes.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@

devise_for :admins
devise_for :members

#resources :members
resources :members

get 'statute_home', :to => 'home#statute'

Expand Down

0 comments on commit ecb7ce8

Please sign in to comment.