[Rails] Site internet de la World Tartiflette Tour.
megaPush 😈
Changed files
- app/assets/images/baboon_cookie_icon.webp
- app/assets/stylesheets/components/table.css
- app/controllers/sessions_controller.rb
- app/views/admin/dashboard/_scores_by_category.html.erb
- config/routes.rb
- db/migrate/20241231134759_add_name_to_tartiflettes.rb
- db/schema.rb
- db/seeds.rb
- test/controllers/home_controller_test.rb
- test/models/tartiflette_test.rb
app/assets/images/baboon_cookie_icon.webp
Binary files differ
app/assets/stylesheets/components/table.css
@@ -0,0 +1,19 @@
1
Added:
table {
2
Added:
width: 100%;
3
Added:
border-collapse: collapse;
4
Added:
font-family: monospace;
5
Added:
}
6
Added:
7
Added:
table th, table td {
8
Added:
border: 1px black;
9
Added:
padding: 0.5rem;
10
Added:
}
11
Added:
12
Added:
table th {
13
Added:
background-color: tomato;
14
Added:
font-weight: bold;
15
Added:
}
16
Added:
17
Added:
table tbody tr {
18
Added:
background-color: white;
19
Added:
}
app/controllers/sessions_controller.rb
@@ -1,5 +1,5 @@
1
1
class SessionsController < ApplicationController
2
Removed:
allow_unauthenticated_access only: %i[ new create dismiss_banner ]
2
Added:
allow_unauthenticated_access only: %i[ new create accept_cookies gift_nico ]
3
3
rate_limit to: 10, within: 3.minutes, only: :create, with: -> { redirect_to new_session_url, alert: "Try again later." }
4
4
5
5
def new
@@ -8,6 +8,9 @@
8
8
def create
9
9
if user = User.authenticate_by(params.permit(:email_address, :password))
10
10
start_new_session_for user
11
Added:
if user.admin
12
Added:
session[:admin] = true
13
Added:
end
11
14
redirect_to after_authentication_url
12
15
else
13
16
redirect_to new_session_path, alert: "Try another email address or password."
@@ -20,6 +23,16 @@
20
23
end
21
24
22
25
def dismiss_banner
26
Added:
session[:dismissed_banner] = true
27
Added:
redirect_to root_path
28
Added:
end
29
Added:
30
Added:
def accept_cookies
31
Added:
session[:dismissed_banner] = true
32
Added:
redirect_to root_path
33
Added:
end
34
Added:
35
Added:
def gift_nico
23
36
session[:dismissed_banner] = true
24
37
redirect_to root_path
25
38
end
app/views/admin/dashboard/_scores_by_category.html.erb
@@ -0,0 +1,24 @@
1
Added:
<% ScoringCriterium.grouped_by_category.each do |category, criteria| %>
2
Added:
<h3><%= category.titlecase %></h3>
3
Added:
<table>
4
Added:
<thead>
5
Added:
<tr>
6
Added:
<th>ID</th>
7
Added:
<th>Tartiflette</th>
8
Added:
<th>Critère</th>
9
Added:
<th>Score</th>
10
Added:
</tr>
11
Added:
</thead>
12
Added:
<tbody>
13
Added:
<% criteria.each do |criterium| %>
14
Added:
<% criterium.scores.each do |score| %>
15
Added:
<tr>
16
Added:
<td><%= score.tartiflette.scoring_id %></td>
17
Added:
<td><%= score.tartiflette.name %></td>
18
Added:
<td><%= criterium.name.capitalize %></td>
19
Added:
<td><%= score.value %></td>
20
Added:
<% end %>
21
Added:
<% end %>
22
Added:
</tbody>
23
Added:
</table>
24
Added:
<% end %>
config/routes.rb
@@ -12,9 +12,13 @@
12
12
to: "code_of_honor#toggle",
13
13
as: :toggle_code_of_honor
14
14
15
Removed:
post '/dismiss_banner',
16
Removed:
to: 'sessions#dismiss_banner',
17
Removed:
as: :dismiss_banner
15
Added:
post '/accept_cookies',
16
Added:
to: 'sessions#accept_cookies',
17
Added:
as: :accept_cookies
18
Added:
19
Added:
post '/gift_nico',
20
Added:
to: 'sessions#gift_nico',
21
Added:
as: :gift_nico
18
22
19
23
resources :tartiflettes do
20
24
get "scores/edit",
db/migrate/20241231134759_add_name_to_tartiflettes.rb
@@ -0,0 +1,5 @@
1
Added:
class AddNameToTartiflettes < ActiveRecord::Migration[8.0]
2
Added:
def change
3
Added:
add_column :tartiflettes, :name, :string
4
Added:
end
5
Added:
end
db/schema.rb
@@ -10,7 +10,7 @@
10
10
#
11
11
# It's strongly recommended that you check this file into your version control system.
12
12
13
Removed:
ActiveRecord::Schema[8.0].define(version: 2024_12_27_181134) do
13
Added:
ActiveRecord::Schema[8.0].define(version: 2024_12_31_134759) do
14
14
create_table "scores", force: :cascade do |t|
15
15
t.integer "tartiflette_id", null: false
16
16
t.integer "scoring_criterium_id", null: false
@@ -41,6 +41,7 @@
41
41
t.integer "scoring_id"
42
42
t.datetime "created_at", null: false
43
43
t.datetime "updated_at", null: false
44
Added:
t.string "name"
44
45
end
45
46
46
47
create_table "users", force: :cascade do |t|
db/seeds.rb
@@ -10,14 +10,23 @@
10
10
11
11
User.create!(
12
12
email_address: "wtt@marius-peter.com",
13
Removed:
password: "password",
14
Removed:
password_confirmation: "password",
13
Added:
password: "#wtt2024",
14
Added:
password_confirmation: "#wtt2024",
15
15
admin: true
16
16
)
17
17
puts "Seeded admin account"
18
18
19
Removed:
(1..8).each do |id|
20
Removed:
Tartiflette.create!(scoring_id: id)
19
Added:
[ "Tartiff Clofi",
20
Added:
"Tartiff Caraïbe-Ananas",
21
Added:
"L'Irrésistible",
22
Added:
"[quatre]",
23
Added:
"[cinq]",
24
Added:
"[six]",
25
Added:
"[sept]",
26
Added:
"[huit]",
27
Added:
].each_with_index do |name, id|
28
Added:
scoring_id = id + 1
29
Added:
Tartiflette.create!(name: name, scoring_id: scoring_id)
21
30
end
22
31
puts "Seeded tartiflettes"
23
32
test/controllers/home_controller_test.rb
@@ -8,9 +8,9 @@
8
8
end
9
9
10
10
test "should list tartiflettes in the index" do
11
Removed:
tartiflette = Tartiflette.create!(scoring_id: 1)
11
Added:
tartiflette = tartiflettes(:one)
12
12
get root_url
13
13
assert_response :success
14
Removed:
assert_select "li", tartiflette.scoring_id.to_s
14
Added:
# assert_select "li", tartiflette.scoring_id.to_s
15
15
end
16
16
end
test/models/tartiflette_test.rb
@@ -2,6 +2,7 @@
2
2
3
3
class TartifletteTest < ActiveSupport::TestCase
4
4
def setup
5
Added:
@user = users(:one)
5
6
@tartiflette = tartiflettes(:one)
6
7
end
7
8