Skip to content

Commit 8293b32

Browse files
committed
Adding events (prelim)
1 parent 559523d commit 8293b32

35 files changed

+334
-15
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Place all the behaviors and hooks related to the matching controller here.
2+
# All this logic will automatically be available in application.js.
3+
# You can use CoffeeScript in this file: http://coffeescript.org/

app/assets/stylesheets/custom.css.scss

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ img {
7676
color: $maroon;
7777
}
7878

79-
#new_user, #new_show, #new_artwork, #new_link {
79+
#new_user, #new_show, #new_artwork, #new_link, #new_event {
8080
input, textarea, select {
8181
border: 1px solid black;
8282
border-radius: 0;
@@ -142,6 +142,12 @@ img {
142142
margin-bottom: 50px;
143143
}
144144

145+
.left-larger {
146+
float: left;
147+
width: 70%;
148+
margin-bottom: 50px;
149+
}
150+
145151
.right {
146152
float: right;
147153
width: 50%;
@@ -425,7 +431,7 @@ aside {
425431

426432
/* shows */
427433

428-
.ind-show-title, .ind-link-title {
434+
.ind-show-title, .ind-link-title, .ind-event-title {
429435
font-weight: bold;
430436
font-family: Helvetica;
431437
font-size: 14pt;
@@ -448,15 +454,15 @@ aside {
448454
display: none;
449455
}
450456

451-
.shows-list, .artists-list, .links-list {
457+
.shows-list, .artists-list, .links-list, .events-list {
452458
text-align: left;
453459
}
454460

455-
.inner-content-shows {
461+
.inner-content-shows, .inner-content-events {
456462
text-align: left;
457463
}
458464

459-
.shows {
465+
.shows, .events {
460466
margin: 0px;
461467
li {
462468
list-style-type: none;
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
// Place all the styles related to the events controller here.
2+
// They will automatically be included in application.css.
3+
// You can use Sass (SCSS) here: http://sass-lang.com/
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
class EventsController < ApplicationController
2+
def index
3+
@events = Event.all.group_by{|e| e.event_date.beginning_of_month}.sort_by{ |k,v| k }
4+
end
5+
6+
def new
7+
@event = Event.new
8+
end
9+
10+
def create
11+
@event = Event.new(event_params)
12+
if @event.save
13+
flash[:success] = "New event created"
14+
redirect_to events_path
15+
else
16+
render 'new'
17+
end
18+
end
19+
20+
def edit
21+
@event = Event.find(params[:id])
22+
end
23+
24+
def update
25+
@event = Event.find(params[:id])
26+
if @event.update_attributes(event_params)
27+
flash[:success] = "Event updated"
28+
redirect_to events_path
29+
else
30+
render 'edit'
31+
end
32+
end
33+
34+
def destroy
35+
Event.find(params[:id]).destroy
36+
flash[:success] = "Event deleted."
37+
redirect_to events_url
38+
end
39+
40+
def set_homepage
41+
event = Event.find(params[:id])
42+
event.toggle!(:on_homepage)
43+
redirect_to events_url
44+
end
45+
46+
private
47+
def admin_user
48+
# store_location
49+
flash[:notice] = "Only administrators can create events" unless current_user && current_user.admin?
50+
redirect_to(root_url) unless current_user && current_user.admin?
51+
end
52+
53+
def event_params
54+
params.require(:event).permit(:title, :description, :event_date, :start_time, :end_time, :event_image, :on_homepage)
55+
end
56+
end

app/controllers/shows_controller.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ def ind_current
4545

4646
def current
4747
@current_show = Show.where(:current => true).first
48+
# @events = Event.where(:on_homepage => true).sort_by(&:event_date)
4849
end
4950

5051
def past
@@ -73,7 +74,7 @@ def set_current
7374
private
7475
def admin_user
7576
# store_location
76-
flash[:notice] = "Only administrators can create links" unless current_user && current_user.admin?
77+
flash[:notice] = "Only administrators can create shows" unless current_user && current_user.admin?
7778
redirect_to(root_url) unless current_user && current_user.admin?
7879
end
7980

app/helpers/events_helper.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
module EventsHelper
2+
end

app/models/event.rb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
class Event < ActiveRecord::Base
2+
validates :title, presence: true
3+
validates :description, presence: true
4+
has_attached_file :event_image,
5+
:styles =>
6+
{ :medium => "300x300>", :thumb => "150x150#", :largethumb => "250x250#" }
7+
# :path => ":rails_root/public/system/:attachment/:slug/:style/:basename.:extension",
8+
# :url => "/public/:attachment/:slug/:style/:basename.:extension"
9+
validates_attachment_content_type :event_image, :content_type => /\Aimage\/.*\Z/
10+
end
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<div class='inner-tab-group'>
2+
<% if current_user && current_user.admin? %>
3+
<span class='inner-tab'><%= link_to "Create Event", new_event_path, class: cp(new_event_path) %></span>
4+
<% end %>
5+
</div>
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<li>
2+
<div class='ind-event-title'>
3+
<div class='center-div'><p><%= event.title %></p></div>
4+
</div>
5+
<div class='left-larger no-margin'>
6+
<div class='inner-content-shows small-padding'>
7+
<div class='ind-event-text'><%= "#{event.event_date.strftime('%m/%d/%Y')}" %></div>
8+
<div class='ind-event-text'><%= "Start: #{event.start_time}" %></div>
9+
<div class='ind-event-text'><%= "End: #{event.end_time}" %></div>
10+
<div class='ind-event-paragraph-truncated'>
11+
<%= event.description %>
12+
</div>
13+
</div>
14+
</div>
15+
<div class='right-float no-margin'>
16+
<% if event.event_image_file_name? %>
17+
<%= image_tag event.event_image.url(:thumb) %>
18+
<% end %>
19+
</div>
20+
<div class='admin-options small-padding'>
21+
<% if current_user && current_user.admin? %>
22+
<%= link_to "delete", event, method: :delete, data: { confirm: "Are you sure you want to delete this event?" }, class: 'admin-option' %>
23+
<%= link_to "edit", edit_event_path(event), class: 'admin-option' %>
24+
<% if not event.on_homepage? %>
25+
<%= link_to "show on homepage", set_homepage_event_path(event), method: :post, class: 'admin-option' %>
26+
<% end %>
27+
<% if event.on_homepage? %>
28+
<%= link_to "remove from homepage", set_homepage_event_path(event), method: :post, class: 'admin-option' %>
29+
<% end %>
30+
<% end %>
31+
</div>
32+
</li>

app/views/events/edit.html.erb

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<% provide(:title, 'Update event') %>
2+
<%= render 'event_tabs' %>
3+
<h2 class='center'>Update event</h1>
4+
5+
<div class='row'>
6+
<div class='span7 offset1'>
7+
<%= form_for @event, :html => { :multipart => true } do |f| %>
8+
<%= render 'shared/error_messages', :item => @event %>
9+
<%= f.label :title %>
10+
<%= f.text_field :title %>
11+
12+
<%= f.label :description %>
13+
<%= f.text_area :description %>
14+
15+
<%= f.label :event_date %>
16+
<%= f.date_select :event_date %>
17+
18+
<%= f.label :start_time %>
19+
<%= f.time_select :start_time %>
20+
21+
<%= f.label :end_time %>
22+
<%= f.time_select :end_time %>
23+
24+
<p>
25+
<b>Event image</b><br/>
26+
<%= f.file_field :event_image %>
27+
</p>
28+
29+
<%= f.submit "Save changes", class: "btn btn-large btn-primary" %>
30+
<% end %>
31+
</div>
32+
</div>

0 commit comments

Comments
 (0)