[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:
parent
5c8f3adb9e
commit
59b677ad5d
6 changed files with 38 additions and 29 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
8
app/views/internal/events/new.html.erb
Normal file
8
app/views/internal/events/new.html.erb
Normal 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 %>
|
||||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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")
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue