Skip to content

Commit 87ba197

Browse files
committed
creates new admin view, adds shows and events
1 parent 7a37cd7 commit 87ba197

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+531
-342
lines changed

Gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ gem "paperclip"
99
gem "cancan"
1010
gem "jquery-slick-rails"
1111
gem 'pg'
12+
gem 'kaminari'
1213

1314
group :development, :test do
1415
gem 'rspec-rails'

Gemfile.lock

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -791,6 +791,18 @@ GEM
791791
thor (>= 0.14, < 2.0)
792792
jquery-slick-rails (1.9.0)
793793
railties (>= 3.1)
794+
kaminari (1.1.1)
795+
activesupport (>= 4.1.0)
796+
kaminari-actionview (= 1.1.1)
797+
kaminari-activerecord (= 1.1.1)
798+
kaminari-core (= 1.1.1)
799+
kaminari-actionview (1.1.1)
800+
actionview
801+
kaminari-core (= 1.1.1)
802+
kaminari-activerecord (1.1.1)
803+
activerecord
804+
kaminari-core (= 1.1.1)
805+
kaminari-core (1.1.1)
794806
loofah (2.2.3)
795807
crass (~> 1.0.2)
796808
nokogiri (>= 1.5.9)
@@ -934,6 +946,7 @@ DEPENDENCIES
934946
jbuilder
935947
jquery-rails
936948
jquery-slick-rails
949+
kaminari
937950
paperclip
938951
pg
939952
pry-byebug
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
$grayMediumLight: #eaeaea;
2+
$maroon: #FE8080;
3+
$grayLighter: #eee;
4+
$grayLight: #999;
5+
$sans: 'Lato', sans-serif;
6+
$grayLightest: #ececec;
7+
8+
body.admin {
9+
#logo {
10+
background-color: black;
11+
12+
&:hover {
13+
color: $maroon;
14+
}
15+
}
16+
17+
footer {
18+
justify-content: flex-end;
19+
}
20+
}
21+

app/assets/stylesheets/custom.css.scss

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ a {
5959
margin: 0 auto;
6060
padding-top: 0px;
6161
margin-bottom: 50px;
62+
max-width: 780px;
6263
}
6364

6465
.maroon {
@@ -361,6 +362,8 @@ img.about-page-image {
361362
text-align: center;
362363
display: none;
363364

365+
border-bottom: 1px solid $grayLighter;
366+
364367
li {
365368
list-style-type: none;
366369
margin: 15px auto;
@@ -643,10 +646,6 @@ ul {
643646
width: 100%;
644647
}
645648
}
646-
647-
.current-show-info {
648-
padding-left: 30px;
649-
}
650649
}
651650

652651
.shows-past {
@@ -659,6 +658,21 @@ ul {
659658
}
660659
}
661660

661+
/* events */
662+
663+
.events-list {
664+
margin-top: 50px;
665+
666+
.event-group {
667+
margin-bottom: 50px;
668+
}
669+
670+
.event-row {
671+
padding-left: 10px;
672+
padding-right: 10px;
673+
}
674+
}
675+
662676
/* show */
663677

664678
.show {
@@ -815,6 +829,8 @@ footer {
815829
flex-direction: row;
816830
justify-content: flex-end;
817831

832+
border-bottom: none;
833+
818834
li {
819835
margin: 0;
820836

app/controllers/artworks_controller.rb renamed to app/controllers/admin/artworks_controller.rb

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
1-
class ArtworksController < ApplicationController
2-
before_action :signed_in_user, only: [:new, :create, :destroy]
3-
# before_action :correct_user, only: [:new, :create, :destroy]
1+
class Admin::ArtworksController < Admin::BaseController
2+
before_action :authorize_user
43

54
def create
65
@user = User.find(params[:user_id])
76
@artwork = @user.artworks.build(artwork_params)
87
if @artwork.save
98
flash[:success] = "Artwork added"
10-
redirect_to @user
9+
redirect_to [:admin, @user]
1110
else
1211
render 'new'
1312
end
1413
end
1514

1615
def destroy
17-
Artwork.find(params[:id]).destroy
16+
@user = User.find(params[:user_id])
17+
@user.artworks.find(params[:id]).destroy
1818
flash[:success] = "Artwork deleted."
19-
redirect_to current_user
19+
redirect_to admin_user_path(@user)
2020
end
2121

2222
def new
@@ -39,13 +39,8 @@ def update
3939
end
4040

4141
private
42-
def artwork_params
43-
params.require(:artwork).permit(:title, :image)
44-
end
45-
46-
def signed_in_user
47-
store_location
48-
redirect_to signin_url, notice: "Please sign in." unless signed_in?
49-
end
5042

43+
def artwork_params
44+
params.require(:artwork).permit(:title, :image)
45+
end
5146
end
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
class Admin::BaseController < ApplicationController
2+
layout 'admin'
3+
4+
before_action :signed_in_user
5+
6+
def authorize_user
7+
@user = User.find(params[:id])
8+
redirect_to(admin_user_path(current_user)) unless current_user?(@user) || current_user.admin?
9+
end
10+
11+
def require_admin
12+
redirect_to(admin_user_path(current_user)) unless current_user && current_user.admin?
13+
end
14+
15+
def signed_in_user
16+
store_location
17+
redirect_to signin_url, notice: "Please sign in." unless signed_in?
18+
end
19+
end
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
class Admin::EventsController < Admin::BaseController
2+
def index
3+
@events = Event
4+
.all
5+
.group_by { |e| e.event_date.beginning_of_month }
6+
.sort_by { |k, _v| k }
7+
.reverse
8+
end
9+
10+
def new
11+
@event = Event.new
12+
end
13+
14+
def create
15+
@event = Event.new(event_params)
16+
if @event.save
17+
flash[:success] = "New event created"
18+
redirect_to admin_events_path
19+
else
20+
render 'new'
21+
end
22+
end
23+
24+
def edit
25+
@event = Event.find(params[:id])
26+
end
27+
28+
def update
29+
@event = Event.find(params[:id])
30+
if @event.update_attributes(event_params)
31+
flash[:success] = "Event updated"
32+
redirect_to admin_events_path
33+
else
34+
render 'edit'
35+
end
36+
end
37+
38+
def destroy
39+
Event.find(params[:id]).destroy
40+
flash[:success] = "Event deleted."
41+
redirect_to admin_events_path
42+
end
43+
44+
def set_homepage
45+
event = Event.find(params[:id])
46+
event.toggle!(:on_homepage)
47+
redirect_to admin_events_path
48+
end
49+
50+
def admin_user
51+
# store_location
52+
flash[:notice] = "Only administrators can create events" unless current_user && current_user.admin?
53+
redirect_to(root_url) unless current_user && current_user.admin?
54+
end
55+
56+
def event_params
57+
params.require(:event).permit(:title, :description, :event_date, :start_time, :end_time, :event_image, :on_homepage, :url, :pdf, :pdf_title)
58+
end
59+
end
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
class Admin::ShowsController < Admin::BaseController
2+
before_action :require_admin
3+
4+
def index
5+
@shows = Show.all
6+
today = Date.today
7+
8+
if params[:past]
9+
@shows = @shows.where("end_date < ?", today)
10+
elsif params[:current]
11+
@shows = @shows.where("start_date <= ? AND end_date >= ?", today, today)
12+
elsif params[:upcoming]
13+
@shows = @shows.where("start_date > ?", today)
14+
end
15+
16+
@shows = @shows.order(start_date: :desc).page(params[:page])
17+
@shows
18+
end
19+
20+
def new
21+
@show = Show.new
22+
end
23+
24+
def show
25+
@show = Show.find(params[:id])
26+
end
27+
28+
def create
29+
@show = Show.new(show_params)
30+
if @show.save
31+
flash[:success] = "New show created"
32+
redirect_to admin_shows_path
33+
else
34+
render 'new'
35+
end
36+
end
37+
38+
def edit
39+
@show = Show.find(params[:id])
40+
end
41+
42+
def update
43+
@show = Show.find(params[:id])
44+
if @show.update_attributes(show_params)
45+
flash[:success] = "Show updated"
46+
redirect_to admin_shows_path
47+
else
48+
render 'edit'
49+
end
50+
end
51+
52+
def destroy
53+
Show.find(params[:id]).destroy
54+
flash[:success] = "Show deleted."
55+
redirect_to shows_url
56+
end
57+
58+
def set_current
59+
show = Show.find(params[:id])
60+
Show.update_all(:current => false)
61+
show.toggle!(:current)
62+
redirect_to shows_url
63+
end
64+
65+
private
66+
67+
def show_params
68+
params.require(:show).permit(:name, :description, :short_description, :artists, :start_date, :end_date, :picture_1, :picture_2, :picture_1_caption, :picture_2_caption, :third_thursday_talk_title, :third_thursday_talk_date, :video_link, :video_link_title)
69+
end
70+
end
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
class Admin::UsersController < Admin::BaseController
2+
before_action :require_admin, except: [:show, :edit, :update]
3+
before_action :authorize_user, only: [:show, :edit, :update]
4+
5+
def new
6+
@user = User.new
7+
end
8+
9+
def index
10+
@users = User.all.order(:slug)
11+
end
12+
13+
def show
14+
@user = User.find(params[:id])
15+
@artworks = @user.artworks
16+
end
17+
18+
def destroy
19+
User.find(params[:id]).destroy
20+
flash[:success] = "User deleted."
21+
redirect_to admin_users_url
22+
end
23+
24+
def create
25+
@user = User.new(user_params)
26+
if @user.save
27+
redirect_to users_path
28+
else
29+
render 'admin_users_new'
30+
end
31+
end
32+
33+
def edit
34+
@user = User.find(params[:id])
35+
end
36+
37+
def update
38+
@user = User.find(params[:id])
39+
scrubbed_params = user_params
40+
scrubbed_params.delete(:password) if scrubbed_params[:password].blank?
41+
scrubbed_params.delete(:password_confirmation) if scrubbed_params[:password_confirmation].blank?
42+
43+
if @user.update_attributes(scrubbed_params)
44+
flash[:success] = "Profile updated"
45+
redirect_to [:admin, @user]
46+
else
47+
render 'edit'
48+
end
49+
end
50+
51+
def toggle_admin
52+
user = User.find(params[:id])
53+
user.toggle!(:admin)
54+
redirect_to admin_users_url
55+
end
56+
57+
def profile
58+
redirect_to admin_user_url(current_user)
59+
end
60+
61+
private
62+
63+
def user_params
64+
params.require(:user).permit(:name, :email, :biography, :password, :password_confirmation, :pic, :website)
65+
end
66+
end

0 commit comments

Comments
 (0)