[Updated] Fixes Create Event Bug (#368)

* Move create event to /new

* Minor styling adjustments

* Update tests to use /new

* Fix follow notification count
This commit is contained in:
Andy Zhao 2018-06-04 13:45:22 -04:00 committed by Ben Halpern
parent 5c8f3adb9e
commit 59b677ad5d
6 changed files with 38 additions and 29 deletions

View file

@ -3,17 +3,24 @@ module Internal
layout "internal"
def index
@events = Event.order("starts_at ASC")
@event = Event.new(location_name: "dev.to/live",
end
def new
@event = Event.new(
location_name: "dev.to/live",
location_url: "https://dev.to",
description_markdown: "*Description* *Pre-requisites:* *Bio*" )
description_markdown: "*Description* *Pre-requisites:* *Bio*"
)
end
def create
@event = Event.create!(event_params)
redirect_to(action: :index)
rescue ActiveRecord::RecordInvalid => error
flash[:danger] = error.message
redirect_to(action: :index)
@event = Event.new(event_params)
if @event.save!
redirect_to(action: :index)
else
flash[:danger] = @event.errors.full_messages
render "new.html.erb"
end
end
def update

View file

@ -25,12 +25,12 @@
</div>
<div>
<%= f.label :starts_at %>
<%= f.datetime_select :starts_at, required: true, include_blank: true %> UTC Time Only (4 hours ahead of eastern time)
<%= f.datetime_select :starts_at, required: true, include_blank: true, start_year: Date.today.year, end_year: Date.today.year + 2 %> UTC Time Only (4 hours ahead of eastern time)
</div>
<div>
<%= f.label :ends_at %>
<%= f.datetime_select :ends_at, required: true, include_blank: true %> UTC Time Only (4 hours ahead of eastern time)
<%= f.datetime_select :ends_at, required: true, include_blank: true, start_year: Date.today.year, end_year: Date.today.year + 2 %> UTC Time Only (4 hours ahead of eastern time)
</div>
<div>
<%= f.label :location_name %>
@ -42,6 +42,7 @@
</div>
<div>
<%= f.label :description_markdown %>
<br>
<%= f.text_area :description_markdown, size: "45x10", required: true %>
</div>
<div>

View file

@ -4,14 +4,7 @@
}
</style>
<h1> Create Event</h1>
<%= form_for @event, url: {controller:"events", action: "create"} do |f| %>
<%= render 'event_form', f:f, event: @event %>
<% end %>
<br>
<br>
<h1><a href="/internal/events/new">Create New Event</a></h1>
<div class="event-list">
<h1> Upcoming Events </h1>

View file

@ -0,0 +1,8 @@
<h1><a href="/internal/events">See All Events</a></h1>
<h1>Create New Event</h1>
<hr>
<%= form_for @event, url: { controller: "events", action: "create" } do |f| %>
<%= render "event_form", f: f, event: @event %>
<% end %>

View file

@ -36,7 +36,7 @@
</div>
<br>
<a href="<%= followers.first.path %>"><%= followers.first.name %></a>
and <%= followers.size %> others followed you!
and <%= followers.size - 1 %> others followed you!
<% end %>
</div>
</div>

View file

@ -9,30 +9,30 @@ feature "Admin creates new event" do
end
before do
visit "/internal/events"
visit "/internal/events/new"
end
def select_date_and_time(year, month, date, hour, min, field_name)
select (year), :from => "event[#{field_name}(1i)]"
select (month), :from => "event[#{field_name}(2i)]"
select (date), :from => "event[#{field_name}(3i)]"
select (hour), :from => "event[#{field_name}(4i)]"
select (min), :from => "event[#{field_name}(5i)]"
select year, from: "event[#{field_name}(1i)]"
select month, from: "event[#{field_name}(2i)]"
select date, from: "event[#{field_name}(3i)]"
select hour, from: "event[#{field_name}(4i)]"
select min, from: "event[#{field_name}(5i)]"
end
def create_and_publish_event
fill_in("Title", with: "Workshop Title")
select_date_and_time("2023", "December", "30","15", "30", "starts_at")
select_date_and_time("2023", "December", "30","16", "30", "ends_at")
select_date_and_time(Date.today.year.to_s, "December", "30", "15", "30", "starts_at")
select_date_and_time(Date.today.year.to_s, "December", "30", "16", "30", "ends_at")
check("event[published]")
click_button("Create Event")
end
scenario "load internal/events" do
expect(page).to have_content("Create Event")
it "loads /internal/events/new" do
expect(page).to have_content("Create New Event")
end
scenario "published event loads on /event" do
it "loads published events on /events" do
create_and_publish_event
visit "/events"
expect(page).to have_content("Workshop Title")