Skip to content

Commit

Permalink
Merge branch 'dev' into 258_markdown
Browse files Browse the repository at this point in the history
  • Loading branch information
MasterCarl committed Jan 7, 2017
2 parents b53b8b2 + 468f360 commit 704a403
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 11 deletions.
2 changes: 2 additions & 0 deletions app/controllers/events_controller.rb
Expand Up @@ -96,6 +96,7 @@ def print_applications
# GET /events/1/send-acceptances-email
def send_acceptance_emails
event = Event.find(params[:id])
event.lock_application_status
@email = event.generate_acceptances_email
@templates = [{subject: 'Zusage 1', content: 'Lorem Ispum...'}, {subject: 'Zusage 2', content: 'Lorem Ispum...'}, {subject: 'Zusage 3', content: 'Lorem Ispum...'}]
render :email
Expand All @@ -104,6 +105,7 @@ def send_acceptance_emails
# GET /events/1/send-rejections-email
def send_rejection_emails
event = Event.find(params[:id])
event.lock_application_status
@email = event.generate_rejections_email
@templates = [{subject: 'Absage 1', content: 'Lorem Ispum...'}, {subject: 'Absage 2', content: 'Lorem Ispum...'}, {subject: 'Absage 3', content: 'Lorem Ispum...'}]
render :email
Expand Down
9 changes: 8 additions & 1 deletion app/models/event.rb
Expand Up @@ -155,6 +155,14 @@ def compute_occupied_places
application_letters.where(status: ApplicationLetter.statuses[:accepted]).count
end

# Locks the ability to change application statuses
#
# @param none
# @return none
def lock_application_status
update(application_status_locked: true)
end

# Returns a label listing the number of days to the deadline if
# it's <= 7 days to go. Otherwise returns nil.
#
Expand Down Expand Up @@ -253,5 +261,4 @@ def compare_participants_by_agreement(participant1, participant2)
end
return participant1.name <=> participant2.name
end

end
16 changes: 14 additions & 2 deletions spec/features/events_spec.rb
Expand Up @@ -133,8 +133,7 @@

scenario "logged in as Organizer I can not change application status with radio buttons if the applications are locked" do
login(:organizer)
@event.application_status_locked = true
@event.save
@event.lock_application_status
@pupil = FactoryGirl.create(:profile)
@application_letter = FactoryGirl.create(:application_letter, event: @event, user: @pupil.user)
visit event_path(@event)
Expand All @@ -145,6 +144,19 @@
end
end

scenario "logged in as Organizer I can lock the event application statuses by pressing one of the email buttons" do
login(:organizer)
@pupil = FactoryGirl.create(:profile)
@application_letter = FactoryGirl.create(:application_letter_accepted, event: @event, user: @pupil.user)
['.events.applicants_overview.sending_acceptances', '.events.applicants_overview.sending_rejections'].each do | email_button |
@event.application_status_locked = false
@event.save
visit event_path(@event)
click_link I18n.t email_button
expect(Event.find(@event.id).application_status_locked).to be(true)
end
end

scenario "logged in as Coach I can see application status" do
login(:coach)
@pupil = FactoryGirl.create(:profile)
Expand Down
23 changes: 15 additions & 8 deletions spec/models/event_spec.rb
Expand Up @@ -20,7 +20,7 @@
it "is created by event factory" do
expect(event).to be_valid
end

it "has as many participants as accepted applications" do
event = FactoryGirl.create(:event_with_accepted_applications, accepted_application_letters_count: 10, rejected_application_letters_count: 7)
expect(event.participants.length).to eq 10
Expand All @@ -32,32 +32,32 @@
@profile1 = FactoryGirl.create(:profile, user: @user1, birth_date: 15.years.ago)
@application1 = FactoryGirl.create(:application_letter_accepted, user: @user1, event: @event)
@agreement1 = FactoryGirl.create(:agreement_letter, user: @user1, event: @event)

@user2 = FactoryGirl.create(:user, name: 'bba')
@profile2 = FactoryGirl.create(:profile, user: @user2, birth_date: 16.years.ago)
@application2 = FactoryGirl.create(:application_letter_accepted, user: @user2, event: @event)

@user3 = FactoryGirl.create(:user, name: 'eee')
@profile3 = FactoryGirl.create(:profile, user: @user3, birth_date: 19.years.ago)
@application3 = FactoryGirl.create(:application_letter_accepted, user: @user3, event: @event)
@agreement3 = FactoryGirl.create(:agreement_letter, user: @user3, event: @event)

@user4 = FactoryGirl.create(:user, name: 'ddd')
@profile4 = FactoryGirl.create(:profile, user: @user4, birth_date: 16.years.ago)
@application4 = FactoryGirl.create(:application_letter_accepted, user: @user4, event: @event)

@user5 = FactoryGirl.create(:user, name: 'bbb')
@profile5 = FactoryGirl.create(:profile, user: @user5, birth_date: 20.years.ago)
@application5 = FactoryGirl.create(:application_letter_accepted, user: @user5, event: @event)

@user6 = FactoryGirl.create(:user, name: 'abc')
@profile6 = FactoryGirl.create(:profile, user: @user6, birth_date: 16.years.ago)
@application6 = FactoryGirl.create(:application_letter_accepted, user: @user6, event: @event)
@agreement6 = FactoryGirl.create(:agreement_letter, user: @user6, event: @event)
#2,4,6,1,5,3
expect(@event.participants_by_agreement_letter).to eq([@user2, @user4, @user6, @user1, @user5, @user3])
end


it "checks if there are unclassified applications_letters" do
event = FactoryGirl.create(:event)
Expand Down Expand Up @@ -179,5 +179,12 @@
email = event.generate_rejections_email
expect(email).to have_attributes(hide_recipients: false, recipients: event.email_adresses_of_rejected_applicants, reply_to: 'workshop.portal@hpi.de', subject: '', content: '')
end
end

it "locks the application status changing of the event" do
event = FactoryGirl.create(:event)
event.application_status_locked = false
event.save
event.lock_application_status
expect(event.application_status_locked).to eq(true)
end
end

0 comments on commit 704a403

Please sign in to comment.