Skip to content

Commit

Permalink
Merge branch '320_Picture_Upload' of github.com:hpi-swt2/workshop-por…
Browse files Browse the repository at this point in the history
…tal into 320_Picture_Upload
  • Loading branch information
corinnaj committed Feb 4, 2017
2 parents ca48334 + 690db32 commit f5ca314
Show file tree
Hide file tree
Showing 10 changed files with 82 additions and 39 deletions.
5 changes: 1 addition & 4 deletions app/assets/stylesheets/events.css
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,6 @@
margin: 15px 0;
padding-bottom: 15px;
}
.event-preview.event-past {
opacity: 0.7;
}
.front-section:nth-child(even) .event-preview {
border-bottom: 1px solid rgba(255, 255, 255, 0.3);
}
Expand Down Expand Up @@ -108,4 +105,4 @@
width: 100%;
height: 150px;
margin-bottom: 15px;
}
}
24 changes: 15 additions & 9 deletions app/views/events/_applicants_overview.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -64,18 +64,24 @@
</div>

<% if (can? :send_email, Email) && (@event.phase == :selection) %>
<div class="btn-group send-emails-buttons pull-right tooltip-wrapper has-tooltip" role="group" data-toggle="tooltip" title="<%= @event.send_mails_tooltip %>">
<%= form_tag event_email_show_path(@event), method: :get do %>
<%= hidden_field_tag "status", "acceptance" %>
<%= button_tag t('.sending_acceptances'), class: 'send-emails-button btn btn-default', disabled: @event.send_mails_tooltip.present? %>
<% if not @event.acceptances_have_been_sent %>
<div class="btn-group send-emails-buttons pull-right tooltip-wrapper has-tooltip" role="group" data-toggle="tooltip" title="<%= @event.send_mails_tooltip %>">
<%= form_tag event_email_show_path(@event), method: :get do %>
<%= hidden_field_tag "status", "acceptance" %>
<%= button_tag t('.sending_acceptances'), class: 'send-emails-button btn btn-default', disabled: @event.send_mails_tooltip.present? %>
<% end %>
</div>
<% end %>
<%= form_tag event_email_show_path(@event), method: :get do %>
<%= hidden_field_tag "status", "rejection" %>
<%= button_tag t('.sending_rejections'), class: 'send-emails-button btn btn-default', disabled: @event.send_mails_tooltip.present? %>
<% if not @event.rejections_have_been_sent %>
<div class="btn-group send-emails-buttons pull-right tooltip-wrapper has-tooltip" role="group" data-toggle="tooltip" title="<%= @event.send_mails_tooltip %>">
<%= form_tag event_email_show_path(@event), method: :get do %>
<%= hidden_field_tag "status", "rejection" %>
<%= button_tag t('.sending_rejections'), class: 'send-emails-button btn btn-default', disabled: @event.send_mails_tooltip.present? %>
<% end %>
</div>
<% end %>

</div>
<% end %>
<% if (can? :view_participants, Event) && (@event.phase == :execution) %>
<%= link_to t('events.participants.show_participants'),
event_path(@event) + "/participants" , :class => 'btn btn-primary btn-sm pull-right' %>
Expand Down
2 changes: 1 addition & 1 deletion app/views/events/_event.html.erb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<div class="event-preview media <%= 'event-past' if event.is_past %> clearfix">
<div class="event-preview media clearfix">
<%= image_tag event.image_url(:list_view), class: "img-rounded img-responsive img-float-corner-tr center-block" if event.image_url%>
<div class="media-left">
<%= render "events/event_date_large", event: event %>
Expand Down
5 changes: 4 additions & 1 deletion db/sample_data.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,15 @@ def add_sample_data

events[:programmierkurs] = event_programmierkurs
events[:mintcamp] = event_mintcamp
events[:bechersaeuberungsevent] = event_bechersaeuberungsevent
events[:gongakrobatik] = event_gongakrobatik
events[:batterie_akustik] = event_batterie_akustik
events[:bachlorpodium] = event_bachlorpodium
events[:past_deadline_event] = event_gongakrobatik

# past events are not valid by definition, however we
# would like to pretend to have some old ones
event_bechersaeuberungsevent.save!(validate: false)

users = Hash.new
users[:pupil] = user_pupil
users[:teacher] = user_teacher
Expand Down
9 changes: 5 additions & 4 deletions db/sample_data/events.rb
Original file line number Diff line number Diff line change
Expand Up @@ -40,18 +40,19 @@ def event_mintcamp
end

def event_bechersaeuberungsevent
date_range_singleday = DateRange.create!(
start_date: Date.new(2017, 04, 04),
end_date: Date.new(2017, 04, 05)
date_range_singleday = DateRange.new(
start_date: Date.yesterday,
end_date: Date.yesterday
)
date_range_singleday.save!(validate: false)
Event.new(
name: 'Bechersäuberungsevent',
description: 'Es dreht sich den ganzen Tag um das Säubern von Bechern. Wie säubert man einen Becher am effizientesten oder am schnellsten? Wie immer bieten wir eine Reihe an Expertenvorträgen an. Dieses Mal erfahrt ihr unter anderem wie ihr Edding-Markierungen selbst nach einer Spülmaschinen-Reinigung noch entfernen könnt oder wie man die richtige Größe für Becher-Stapel herausfindet und anwendet.',
max_participants: 25,
organizer: 'FSR',
knowledge_level: 'Anfänger',
date_ranges: [date_range_singleday],
application_deadline: Date.tomorrow,
application_deadline: Date.yesterday.prev_day(2),
published: true,
hidden: false,
custom_application_fields: ['Lieblings-Becherart', 'Kannst du eine eigene Spülmaschine mitbringen?']
Expand Down
22 changes: 20 additions & 2 deletions spec/factories/events.rb
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@
end
end

trait :in_selection_phase do
trait :in_selection_phase_with_no_mails_sent do
after(:build) do |event|
event.published = true
event.application_deadline = Date.yesterday
Expand All @@ -123,6 +123,24 @@
end
end

trait :in_selection_phase_with_acceptances_sent do
after(:build) do |event|
event.published = true
event.application_deadline = Date.yesterday
event.acceptances_have_been_sent = true
event.rejections_have_been_sent = false
end
end

trait :in_selection_phase_with_rejections_sent do
after(:build) do |event|
event.published = true
event.application_deadline = Date.yesterday
event.acceptances_have_been_sent = false
event.rejections_have_been_sent = true
end
end

trait :in_execution_phase do
after(:build) do |event|
event.published = true
Expand All @@ -145,7 +163,7 @@
organizer "Workshop-Organizer"
knowledge_level "Workshop-Knowledge Level"
application_deadline Date.current

after(:create) do |event, evaluator|
create_list(:application_letter_accepted, evaluator.accepted_application_letters_count, event: event)
create_list(:application_letter_rejected, evaluator.rejected_application_letters_count, event: event)
Expand Down
14 changes: 7 additions & 7 deletions spec/features/events_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
end

scenario "logged in as Organizer I want to be unable to send emails if there is any unclassified application left" do
@event = FactoryGirl.build(:event, :with_diverse_open_applications, :in_selection_phase)
@event = FactoryGirl.build(:event, :with_diverse_open_applications, :in_selection_phase_with_no_mails_sent)
login(:organizer)
@event.update!(max_participants: 1)
visit event_path(@event)
Expand All @@ -58,7 +58,7 @@
end

scenario "logged in as Organizer I want to be unable to send emails if there is a negative number of free places left" do
@event = FactoryGirl.create(:event, :in_selection_phase)
@event = FactoryGirl.create(:event, :in_selection_phase_with_no_mails_sent)
login(:organizer)
@event.update!(max_participants: 1)
2.times do |n|
Expand All @@ -72,7 +72,7 @@
end

scenario "logged in as Organizer I want to be able to send an email to all accepted applicants" do
@event = FactoryGirl.create(:event, :in_selection_phase)
@event = FactoryGirl.create(:event, :in_selection_phase_with_no_mails_sent)
login(:organizer)
@event.update!(max_participants: 2)
2.times do |n|
Expand All @@ -90,7 +90,7 @@
end

scenario "logged in as Organizer I want to be able to send an email to all rejected applicants" do
@event = FactoryGirl.create(:event, :in_selection_phase)
@event = FactoryGirl.create(:event, :in_selection_phase_with_no_mails_sent)
login(:organizer)
@event.update!(max_participants: 2)
2.times do |n|
Expand Down Expand Up @@ -125,7 +125,7 @@

scenario "logged in as Organizer I can change application status with radio buttons in selection phase" do
login(:organizer)
@event = FactoryGirl.create(:event, :with_open_application, :in_selection_phase)
@event = FactoryGirl.create(:event, :with_open_application, :in_selection_phase_with_no_mails_sent)
visit event_path(@event)
ApplicationLetter.statuses.keys.each do |new_status|
choose(I18n.t "application_status.#{new_status}")
Expand All @@ -135,7 +135,7 @@

scenario "logged in as Organizer I can change application status with radio buttons without the page reloading in selection phase", js: true do
login(:organizer)
@event = FactoryGirl.create(:event, :with_open_application, :in_selection_phase)
@event = FactoryGirl.create(:event, :with_open_application, :in_selection_phase_with_no_mails_sent)
visit event_path(@event)
find('label', text: I18n.t('application_status.accepted')).click
check_values = lambda {
Expand Down Expand Up @@ -167,7 +167,7 @@
end

scenario "logged in as Organizer I can push the accept all button to accept all applicants" do
@event = FactoryGirl.create(:event, :with_diverse_open_applications, :in_selection_phase)
@event = FactoryGirl.create(:event, :with_diverse_open_applications, :in_selection_phase_with_no_mails_sent)
@event.max_participants = @event.application_letters.size + 1
@event.save
login(:organizer)
Expand Down
6 changes: 5 additions & 1 deletion spec/models/event_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -250,7 +250,11 @@
end

it "is in selection phase" do
event = FactoryGirl.build(:event, :in_selection_phase)
event = FactoryGirl.build(:event, :in_selection_phase_with_no_mails_sent)
expect(event.phase).to eq(:selection)
event = FactoryGirl.build(:event, :in_selection_phase_with_acceptances_sent)
expect(event.phase).to eq(:selection)
event = FactoryGirl.build(:event, :in_selection_phase_with_rejections_sent)
expect(event.phase).to eq(:selection)
end

Expand Down
2 changes: 1 addition & 1 deletion spec/views/events/participants.html.erb_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@
end

it "does not show the print badges button when the event is in selection phase" do
@event = assign(:event, FactoryGirl.create(:event_with_accepted_applications, :in_selection_phase))
@event = assign(:event, FactoryGirl.create(:event_with_accepted_applications, :in_selection_phase_with_no_mails_sent))
@participants = assign(:participants, @event.participants)
render
expect(rendered).to_not have_link(t(:print_button_label, scope: 'events.badges'))
Expand Down
32 changes: 23 additions & 9 deletions spec/views/events/show.html.erb_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@
end

it "should not display accept-all-button for non-organizers" do
@event = assign(:event, FactoryGirl.create(:event, :in_selection_phase))
@event = assign(:event, FactoryGirl.create(:event, :in_selection_phase_with_no_mails_sent))
@event.max_participants = @event.application_letters.size + 1
@event.save
[:coach, :pupil].each do | each |
Expand All @@ -109,7 +109,7 @@
end

it "should display accept-all-button for organizers if there are enough free places" do
@event = assign(:event, FactoryGirl.create(:event, :with_diverse_open_applications, :in_selection_phase))
@event = assign(:event, FactoryGirl.create(:event, :with_diverse_open_applications, :in_selection_phase_with_no_mails_sent))
@event.max_participants = @event.application_letters.size + 1
@event.save
sign_in(FactoryGirl.create(:user, role: :organizer))
Expand All @@ -118,7 +118,7 @@
end

it "should not display accept-all-button if there are not enough free places" do
@event = assign(:event, FactoryGirl.create(:event, :with_diverse_open_applications, :in_selection_phase))
@event = assign(:event, FactoryGirl.create(:event, :with_diverse_open_applications, :in_selection_phase_with_no_mails_sent))
sign_in(FactoryGirl.create(:user, role: :organizer))
@event.max_participants = 1
render
Expand Down Expand Up @@ -165,7 +165,7 @@
end
end
end

it "displays correct buttons in draft phase" do
@event = assign(:event, FactoryGirl.create(:event, :in_draft_phase))
sign_in(FactoryGirl.create(:user, role: :organizer))
Expand Down Expand Up @@ -201,7 +201,7 @@
end

it "displays correct buttons in selection phase" do
@event = assign(:event, FactoryGirl.create(:event, :in_selection_phase))
@event = assign(:event, FactoryGirl.create(:event, :in_selection_phase_with_no_mails_sent))
sign_in(FactoryGirl.create(:user, role: :organizer))
render
expect(rendered).to have_link(t(:print_all, scope: 'events.applicants_overview'))
Expand All @@ -211,16 +211,30 @@
expect(rendered).to_not have_link(t(:show_participants, scope: 'events.participants'))
end

it "does not display send acceptances button after acceptances have been sent in selection phase" do
@event = assign(:event, FactoryGirl.create(:event, :in_selection_phase_with_acceptances_sent))
sign_in(FactoryGirl.create(:user, role: :organizer))
render
expect(rendered).to_not have_button(t(:sending_acceptances, scope: 'events.applicants_overview'))
end

it "does not display send acceptances button after acceptances have been sent in selection phase" do
@event = assign(:event, FactoryGirl.create(:event, :in_selection_phase_with_rejections_sent))
sign_in(FactoryGirl.create(:user, role: :organizer))
render
expect(rendered).to_not have_button(t(:sending_rejections, scope: 'events.applicants_overview'))
end

it "displays the disabled send email buttons in selection phase (when there are unclassified applications)" do
@event = assign(:event, FactoryGirl.create(:event, :with_diverse_open_applications, :in_selection_phase))
@event = assign(:event, FactoryGirl.create(:event, :with_diverse_open_applications, :in_selection_phase_with_no_mails_sent))
sign_in(FactoryGirl.create(:user, role: :organizer))
render
expect(rendered).to have_button(t(:sending_acceptances, scope: 'events.applicants_overview'), disabled: true)
expect(rendered).to have_button(t(:sending_rejections, scope: 'events.applicants_overview'), disabled: true)
end

it "displays the disabled send email buttons in selection phase (when there are too many accepted applications)" do
@event = assign(:event, FactoryGirl.create(:event_with_accepted_applications, :in_selection_phase, max_participants: 1))
@event = assign(:event, FactoryGirl.create(:event_with_accepted_applications, :in_selection_phase_with_no_mails_sent, max_participants: 1))
sign_in(FactoryGirl.create(:user, role: :organizer))
render
expect(rendered).to have_button(t(:sending_acceptances, scope: 'events.applicants_overview'), disabled: true)
Expand All @@ -247,8 +261,8 @@
expect(rendered).to have_link(t('events.participants.show_participants'))
end

it "should not display particiants button when email were not already sent as organizer" do
@event = assign(:event, FactoryGirl.create(:event, :in_selection_phase))
it "should not display particiants button when emails have not been sent as organizer" do
@event = assign(:event, FactoryGirl.create(:event, :in_selection_phase_with_no_mails_sent))
sign_in(FactoryGirl.create(:user, role: :organizer))
render
expect(rendered).not_to have_link(t('events.participants.show_participants'))
Expand Down

0 comments on commit f5ca314

Please sign in to comment.