Added per-user counter of approved/rejected screenshots
This commit is contained in:
parent
c97a711e6b
commit
9635b3968c
5 changed files with 55 additions and 27 deletions
|
|
@ -220,6 +220,14 @@ class PackagesController < ApplicationController
|
||||||
auditlog "Screenshot #{@screenshot.id} deleted",
|
auditlog "Screenshot #{@screenshot.id} deleted",
|
||||||
package: @screenshot.package
|
package: @screenshot.package
|
||||||
@screenshot.destroy
|
@screenshot.destroy
|
||||||
|
|
||||||
|
# Increase the rejection counter for the user (social scoring)
|
||||||
|
# if the screenshot is new and pending approval
|
||||||
|
if !@screenshot.approved
|
||||||
|
@screenshot.user.rejected_screenshots += 1
|
||||||
|
@screenshot.user.save!
|
||||||
|
end
|
||||||
|
|
||||||
flash['notice'] = "Screenshot deleted."
|
flash['notice'] = "Screenshot deleted."
|
||||||
redirect_back(fallback_location: package_path(name: @screenshot.package.name))
|
redirect_back(fallback_location: package_path(name: @screenshot.package.name))
|
||||||
else
|
else
|
||||||
|
|
@ -234,6 +242,11 @@ class PackagesController < ApplicationController
|
||||||
@screenshot.approve!
|
@screenshot.approve!
|
||||||
auditlog "Screenshot approved",
|
auditlog "Screenshot approved",
|
||||||
package: @screenshot.package, screenshot: @screenshot
|
package: @screenshot.package, screenshot: @screenshot
|
||||||
|
|
||||||
|
# Increase the approval counter for the user (social scoring)
|
||||||
|
@screenshot.user.approved_screenshots += 1
|
||||||
|
@screenshot.user.save!
|
||||||
|
|
||||||
flash['notice'] = "Screenshot approved."
|
flash['notice'] = "Screenshot approved."
|
||||||
redirect_back(fallback_location: package_path(name: @screenshot.package.name))
|
redirect_back(fallback_location: package_path(name: @screenshot.package.name))
|
||||||
else
|
else
|
||||||
|
|
|
||||||
|
|
@ -79,10 +79,6 @@ class User < ApplicationRecord
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def approved_screenshots
|
|
||||||
self.screenshots.where(approved: true)
|
|
||||||
end
|
|
||||||
|
|
||||||
# Seamlessly create a user account for the current visitor.
|
# Seamlessly create a user account for the current visitor.
|
||||||
# It helps track uploads because uploaded screenshots get assigned
|
# It helps track uploads because uploaded screenshots get assigned
|
||||||
# to this user record.
|
# to this user record.
|
||||||
|
|
|
||||||
|
|
@ -54,28 +54,39 @@ h1 Your data
|
||||||
hr
|
hr
|
||||||
|
|
||||||
.card-section
|
.card-section
|
||||||
h3 Your permissions
|
h3 Statistics
|
||||||
ul
|
p
|
||||||
- if can? :approve, Screenshot.new
|
= pluralize(current_user.approved_screenshots, 'approved screenshot')
|
||||||
li
|
p
|
||||||
=> fa_icon 'thumbs-up'
|
= pluralize(current_user.rejected_screenshots, 'rejected screenshot')
|
||||||
'approve uploaded screenshots
|
|
||||||
- if can? :destroy, Screenshot.new
|
|
||||||
li
|
|
||||||
=> fa_icon 'trash'
|
|
||||||
'delete screenshots
|
|
||||||
- if can? :hide, Screenshot.new
|
|
||||||
li
|
|
||||||
=> fa_icon 'eye-slash'
|
|
||||||
'hide screenshots from the public
|
|
||||||
- if can? :unhide, Screenshot.new
|
|
||||||
li
|
|
||||||
=> fa_icon 'eye'
|
|
||||||
'restore (unhide) screenshots for the public
|
|
||||||
- if can? :view, Log
|
|
||||||
li
|
|
||||||
=> fa_icon 'book'
|
|
||||||
'view logs
|
|
||||||
|
|
||||||
|
- unless current_user.pseudo
|
||||||
|
|
||||||
|
.cell
|
||||||
|
hr
|
||||||
|
|
||||||
|
.card-section
|
||||||
|
h3 Your permissions
|
||||||
|
ul
|
||||||
|
- if can? :approve, Screenshot.new
|
||||||
|
li
|
||||||
|
=> fa_icon 'thumbs-up'
|
||||||
|
'approve uploaded screenshots
|
||||||
|
- if can? :destroy, Screenshot.new
|
||||||
|
li
|
||||||
|
=> fa_icon 'trash'
|
||||||
|
'delete screenshots
|
||||||
|
- if can? :hide, Screenshot.new
|
||||||
|
li
|
||||||
|
=> fa_icon 'eye-slash'
|
||||||
|
'hide screenshots from the public
|
||||||
|
- if can? :unhide, Screenshot.new
|
||||||
|
li
|
||||||
|
=> fa_icon 'eye'
|
||||||
|
'restore (unhide) screenshots for the public
|
||||||
|
- if can? :view, Log
|
||||||
|
li
|
||||||
|
=> fa_icon 'book'
|
||||||
|
'view logs
|
||||||
|
|
||||||
.cell.auto
|
.cell.auto
|
||||||
|
|
|
||||||
6
db/migrate/20210321215433_add_upload_counter_to_users.rb
Normal file
6
db/migrate/20210321215433_add_upload_counter_to_users.rb
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
class AddUploadCounterToUsers < ActiveRecord::Migration[6.1]
|
||||||
|
def change
|
||||||
|
add_column :users, :approved_screenshots, :integer, default: 0
|
||||||
|
add_column :users, :rejected_screenshots, :integer, default: 0
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# It's strongly recommended that you check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema.define(version: 2021_03_09_233239) do
|
ActiveRecord::Schema.define(version: 2021_03_21_215433) do
|
||||||
|
|
||||||
# These are extensions that must be enabled in order to support this database
|
# These are extensions that must be enabled in order to support this database
|
||||||
enable_extension "plpgsql"
|
enable_extension "plpgsql"
|
||||||
|
|
@ -120,6 +120,8 @@ ActiveRecord::Schema.define(version: 2021_03_09_233239) do
|
||||||
t.boolean "admin_role", default: false
|
t.boolean "admin_role", default: false
|
||||||
t.boolean "moderator_role", default: false
|
t.boolean "moderator_role", default: false
|
||||||
t.boolean "pseudo", default: false
|
t.boolean "pseudo", default: false
|
||||||
|
t.integer "approved_screenshots", default: 0
|
||||||
|
t.integer "rejected_screenshots", default: 0
|
||||||
t.index ["email", "provider"], name: "index_users_on_email_and_provider", unique: true
|
t.index ["email", "provider"], name: "index_users_on_email_and_provider", unique: true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue