diff options
author | Star Rauchenberger <fefferburbia@gmail.com> | 2024-03-20 11:00:31 -0400 |
---|---|---|
committer | Star Rauchenberger <fefferburbia@gmail.com> | 2024-03-20 11:00:31 -0400 |
commit | 5462a1e56abf70486dc59593dde6ecb95a072026 (patch) | |
tree | 3e956e0ca3bfbf773af3a9dd303cb4743615fe67 | |
parent | 2e1365d37bddf787c7089126c1a5ff1c623ab0e2 (diff) | |
download | thoughts-5462a1e56abf70486dc59593dde6ecb95a072026.tar.gz thoughts-5462a1e56abf70486dc59593dde6ecb95a072026.tar.bz2 thoughts-5462a1e56abf70486dc59593dde6ecb95a072026.zip |
Added some admin dashboard stats
-rw-r--r-- | app/controllers/comments_controller.rb | 2 | ||||
-rw-r--r-- | app/models/global.rb | 20 | ||||
-rw-r--r-- | app/views/admin/dashboard/index.html.haml | 20 | ||||
-rw-r--r-- | db/migrate/20240320145033_create_globals.rb | 11 | ||||
-rw-r--r-- | db/schema.rb | 10 | ||||
-rw-r--r-- | test/fixtures/globals.yml | 11 | ||||
-rw-r--r-- | test/models/global_test.rb | 7 |
7 files changed, 79 insertions, 2 deletions
diff --git a/app/controllers/comments_controller.rb b/app/controllers/comments_controller.rb index 368f587..b305d0a 100644 --- a/app/controllers/comments_controller.rb +++ b/app/controllers/comments_controller.rb | |||
@@ -35,6 +35,8 @@ class CommentsController < ApplicationController | |||
35 | if is_blatant | 35 | if is_blatant |
36 | # I am lying. | 36 | # I am lying. |
37 | flash.notice = "Comment submitted successfully! It will need to be moderated before it shows up on the blog." | 37 | flash.notice = "Comment submitted successfully! It will need to be moderated before it shows up on the blog." |
38 | |||
39 | Global.increment_filtered_comments | ||
38 | else | 40 | else |
39 | if is_spam | 41 | if is_spam |
40 | @comment.status = :pending | 42 | @comment.status = :pending |
diff --git a/app/models/global.rb b/app/models/global.rb new file mode 100644 index 0000000..7c7d6d4 --- /dev/null +++ b/app/models/global.rb | |||
@@ -0,0 +1,20 @@ | |||
1 | class Global < ApplicationRecord | ||
2 | def self.get_filtered_comments | ||
3 | row = find_by_key("filtered_comments") | ||
4 | if row | ||
5 | row[:int_value] | ||
6 | else | ||
7 | 0 | ||
8 | end | ||
9 | end | ||
10 | |||
11 | def self.increment_filtered_comments | ||
12 | row = find_by_key("filtered_comments") | ||
13 | if row | ||
14 | row.int_value += 1 | ||
15 | row.save | ||
16 | else | ||
17 | create(key: "filtered_comments", int_value: 1) | ||
18 | end | ||
19 | end | ||
20 | end | ||
diff --git a/app/views/admin/dashboard/index.html.haml b/app/views/admin/dashboard/index.html.haml index eaac627..254107c 100644 --- a/app/views/admin/dashboard/index.html.haml +++ b/app/views/admin/dashboard/index.html.haml | |||
@@ -1 +1,19 @@ | |||
1 | Welcome to the the ubiquitous administration panel! | 1 | %p Welcome to the the ubiquitous administration panel! |
2 | %p Stats: | ||
3 | %ul | ||
4 | %li | ||
5 | %strong Blog posts: | ||
6 | = Blog.count | ||
7 | %li | ||
8 | %strong Approved comments: | ||
9 | = Comment.where(status: :published).count | ||
10 | %li | ||
11 | %strong Filtered comments: | ||
12 | = Global.get_filtered_comments | ||
13 | %li | ||
14 | %strong Quotes: | ||
15 | = Quote.count | ||
16 | %li | ||
17 | %strong Votes: | ||
18 | = Vote.count | ||
19 | (+#{Vote.where(upvote: true).count} / -#{Vote.where(upvote: false).count}) | ||
diff --git a/db/migrate/20240320145033_create_globals.rb b/db/migrate/20240320145033_create_globals.rb new file mode 100644 index 0000000..6ac9a29 --- /dev/null +++ b/db/migrate/20240320145033_create_globals.rb | |||
@@ -0,0 +1,11 @@ | |||
1 | class CreateGlobals < ActiveRecord::Migration[7.1] | ||
2 | def change | ||
3 | create_table :globals do |t| | ||
4 | t.string :key | ||
5 | t.string :string_value | ||
6 | t.integer :int_value | ||
7 | |||
8 | t.timestamps | ||
9 | end | ||
10 | end | ||
11 | end | ||
diff --git a/db/schema.rb b/db/schema.rb index b036d7f..9cfdf57 100644 --- a/db/schema.rb +++ b/db/schema.rb | |||
@@ -10,7 +10,7 @@ | |||
10 | # | 10 | # |
11 | # It's strongly recommended that you check this file into your version control system. | 11 | # It's strongly recommended that you check this file into your version control system. |
12 | 12 | ||
13 | ActiveRecord::Schema[7.1].define(version: 2023_10_30_181440) do | 13 | ActiveRecord::Schema[7.1].define(version: 2024_03_20_145033) do |
14 | create_table "active_storage_attachments", force: :cascade do |t| | 14 | create_table "active_storage_attachments", force: :cascade do |t| |
15 | t.string "name", null: false | 15 | t.string "name", null: false |
16 | t.string "record_type", null: false | 16 | t.string "record_type", null: false |
@@ -118,6 +118,14 @@ ActiveRecord::Schema[7.1].define(version: 2023_10_30_181440) do | |||
118 | t.date "finished_on" | 118 | t.date "finished_on" |
119 | end | 119 | end |
120 | 120 | ||
121 | create_table "globals", force: :cascade do |t| | ||
122 | t.string "key" | ||
123 | t.string "string_value" | ||
124 | t.integer "int_value" | ||
125 | t.datetime "created_at", null: false | ||
126 | t.datetime "updated_at", null: false | ||
127 | end | ||
128 | |||
121 | create_table "lingo_scores", force: :cascade do |t| | 129 | create_table "lingo_scores", force: :cascade do |t| |
122 | t.integer "user_id", limit: 8 | 130 | t.integer "user_id", limit: 8 |
123 | t.string "username" | 131 | t.string "username" |
diff --git a/test/fixtures/globals.yml b/test/fixtures/globals.yml new file mode 100644 index 0000000..bb636b7 --- /dev/null +++ b/test/fixtures/globals.yml | |||
@@ -0,0 +1,11 @@ | |||
1 | # Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html | ||
2 | |||
3 | one: | ||
4 | key: MyString | ||
5 | string_value: MyString | ||
6 | int_value: 1 | ||
7 | |||
8 | two: | ||
9 | key: MyString | ||
10 | string_value: MyString | ||
11 | int_value: 1 | ||
diff --git a/test/models/global_test.rb b/test/models/global_test.rb new file mode 100644 index 0000000..2e42136 --- /dev/null +++ b/test/models/global_test.rb | |||
@@ -0,0 +1,7 @@ | |||
1 | require "test_helper" | ||
2 | |||
3 | class GlobalTest < ActiveSupport::TestCase | ||
4 | # test "the truth" do | ||
5 | # assert true | ||
6 | # end | ||
7 | end | ||