summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Peter <marius.peter@tutanota.com>2024-12-31 19:31:37 +0100
committerMarius Peter <marius.peter@tutanota.com>2024-12-31 19:31:37 +0100
commitbcd73c5548666bae7fef57e7e22cb61126308259 (patch)
tree4a4e54709775344d1b9ffc49ae0689c8f1884d70
parente03e7b2c3fd8d5bc97d9ca46594ec6dc689bce64 (diff)
megaPush 😈
-rw-r--r--app/assets/images/baboon_cookie_icon.webpbin0 -> 489794 bytes
-rw-r--r--app/assets/stylesheets/components/table.css19
-rw-r--r--app/controllers/sessions_controller.rb15
-rw-r--r--app/views/admin/dashboard/_scores_by_category.html.erb24
-rw-r--r--config/routes.rb10
-rw-r--r--db/migrate/20241231134759_add_name_to_tartiflettes.rb5
-rw-r--r--db/schema.rb3
-rw-r--r--db/seeds.rb17
-rw-r--r--test/controllers/home_controller_test.rb4
-rw-r--r--test/models/tartiflette_test.rb1
10 files changed, 87 insertions, 11 deletions
diff --git a/app/assets/images/baboon_cookie_icon.webp b/app/assets/images/baboon_cookie_icon.webp
new file mode 100644
index 0000000..e822b9c
--- /dev/null
+++ b/app/assets/images/baboon_cookie_icon.webp
Binary files differ
diff --git a/app/assets/stylesheets/components/table.css b/app/assets/stylesheets/components/table.css
new file mode 100644
index 0000000..4d09839
--- /dev/null
+++ b/app/assets/stylesheets/components/table.css
@@ -0,0 +1,19 @@
+table {
+ width: 100%;
+ border-collapse: collapse;
+ font-family: monospace;
+}
+
+table th, table td {
+ border: 1px black;
+ padding: 0.5rem;
+}
+
+table th {
+ background-color: tomato;
+ font-weight: bold;
+}
+
+table tbody tr {
+ background-color: white;
+}
diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb
index fad2c4b..3dc076b 100644
--- a/app/controllers/sessions_controller.rb
+++ b/app/controllers/sessions_controller.rb
@@ -1,5 +1,5 @@
class SessionsController < ApplicationController
- allow_unauthenticated_access only: %i[ new create dismiss_banner ]
+ allow_unauthenticated_access only: %i[ new create accept_cookies gift_nico ]
rate_limit to: 10, within: 3.minutes, only: :create, with: -> { redirect_to new_session_url, alert: "Try again later." }
def new
@@ -8,6 +8,9 @@ class SessionsController < ApplicationController
def create
if user = User.authenticate_by(params.permit(:email_address, :password))
start_new_session_for user
+ if user.admin
+ session[:admin] = true
+ end
redirect_to after_authentication_url
else
redirect_to new_session_path, alert: "Try another email address or password."
@@ -23,4 +26,14 @@ class SessionsController < ApplicationController
session[:dismissed_banner] = true
redirect_to root_path
end
+
+ def accept_cookies
+ session[:dismissed_banner] = true
+ redirect_to root_path
+ end
+
+ def gift_nico
+ session[:dismissed_banner] = true
+ redirect_to root_path
+ end
end
diff --git a/app/views/admin/dashboard/_scores_by_category.html.erb b/app/views/admin/dashboard/_scores_by_category.html.erb
new file mode 100644
index 0000000..065a549
--- /dev/null
+++ b/app/views/admin/dashboard/_scores_by_category.html.erb
@@ -0,0 +1,24 @@
+<% ScoringCriterium.grouped_by_category.each do |category, criteria| %>
+ <h3><%= category.titlecase %></h3>
+ <table>
+ <thead>
+ <tr>
+ <th>ID</th>
+ <th>Tartiflette</th>
+ <th>Critère</th>
+ <th>Score</th>
+ </tr>
+ </thead>
+ <tbody>
+ <% criteria.each do |criterium| %>
+ <% criterium.scores.each do |score| %>
+ <tr>
+ <td><%= score.tartiflette.scoring_id %></td>
+ <td><%= score.tartiflette.name %></td>
+ <td><%= criterium.name.capitalize %></td>
+ <td><%= score.value %></td>
+ <% end %>
+ <% end %>
+ </tbody>
+ </table>
+<% end %>
diff --git a/config/routes.rb b/config/routes.rb
index 2f18da0..645f807 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -12,9 +12,13 @@ Rails.application.routes.draw do
to: "code_of_honor#toggle",
as: :toggle_code_of_honor
- post '/dismiss_banner',
- to: 'sessions#dismiss_banner',
- as: :dismiss_banner
+ post '/accept_cookies',
+ to: 'sessions#accept_cookies',
+ as: :accept_cookies
+
+ post '/gift_nico',
+ to: 'sessions#gift_nico',
+ as: :gift_nico
resources :tartiflettes do
get "scores/edit",
diff --git a/db/migrate/20241231134759_add_name_to_tartiflettes.rb b/db/migrate/20241231134759_add_name_to_tartiflettes.rb
new file mode 100644
index 0000000..cc74a0a
--- /dev/null
+++ b/db/migrate/20241231134759_add_name_to_tartiflettes.rb
@@ -0,0 +1,5 @@
+class AddNameToTartiflettes < ActiveRecord::Migration[8.0]
+ def change
+ add_column :tartiflettes, :name, :string
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index eb5b7e8..4be092f 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema[8.0].define(version: 2024_12_27_181134) do
+ActiveRecord::Schema[8.0].define(version: 2024_12_31_134759) do
create_table "scores", force: :cascade do |t|
t.integer "tartiflette_id", null: false
t.integer "scoring_criterium_id", null: false
@@ -41,6 +41,7 @@ ActiveRecord::Schema[8.0].define(version: 2024_12_27_181134) do
t.integer "scoring_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
+ t.string "name"
end
create_table "users", force: :cascade do |t|
diff --git a/db/seeds.rb b/db/seeds.rb
index 7fb3253..c70512c 100644
--- a/db/seeds.rb
+++ b/db/seeds.rb
@@ -10,14 +10,23 @@
User.create!(
email_address: "wtt@marius-peter.com",
- password: "password",
- password_confirmation: "password",
+ password: "#wtt2024",
+ password_confirmation: "#wtt2024",
admin: true
)
puts "Seeded admin account"
-(1..8).each do |id|
- Tartiflette.create!(scoring_id: id)
+[ "Tartiff Clofi",
+ "Tartiff Caraïbe-Ananas",
+ "L'Irrésistible",
+ "[quatre]",
+ "[cinq]",
+ "[six]",
+ "[sept]",
+ "[huit]",
+].each_with_index do |name, id|
+ scoring_id = id + 1
+ Tartiflette.create!(name: name, scoring_id: scoring_id)
end
puts "Seeded tartiflettes"
diff --git a/test/controllers/home_controller_test.rb b/test/controllers/home_controller_test.rb
index aab02bb..7f5f94c 100644
--- a/test/controllers/home_controller_test.rb
+++ b/test/controllers/home_controller_test.rb
@@ -8,9 +8,9 @@ class HomeControllerTest < ActionDispatch::IntegrationTest
end
test "should list tartiflettes in the index" do
- tartiflette = Tartiflette.create!(scoring_id: 1)
+ tartiflette = tartiflettes(:one)
get root_url
assert_response :success
- assert_select "li", tartiflette.scoring_id.to_s
+ # assert_select "li", tartiflette.scoring_id.to_s
end
end
diff --git a/test/models/tartiflette_test.rb b/test/models/tartiflette_test.rb
index 63a4150..0c0aed0 100644
--- a/test/models/tartiflette_test.rb
+++ b/test/models/tartiflette_test.rb
@@ -2,6 +2,7 @@ require "test_helper"
class TartifletteTest < ActiveSupport::TestCase
def setup
+ @user = users(:one)
@tartiflette = tartiflettes(:one)
end
Copyright 2019--2025 Marius PETER