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",
|
||||
package: @screenshot.package
|
||||
@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."
|
||||
redirect_back(fallback_location: package_path(name: @screenshot.package.name))
|
||||
else
|
||||
|
|
@ -234,6 +242,11 @@ class PackagesController < ApplicationController
|
|||
@screenshot.approve!
|
||||
auditlog "Screenshot approved",
|
||||
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."
|
||||
redirect_back(fallback_location: package_path(name: @screenshot.package.name))
|
||||
else
|
||||
|
|
|
|||
|
|
@ -79,10 +79,6 @@ class User < ApplicationRecord
|
|||
end
|
||||
end
|
||||
|
||||
def approved_screenshots
|
||||
self.screenshots.where(approved: true)
|
||||
end
|
||||
|
||||
# Seamlessly create a user account for the current visitor.
|
||||
# It helps track uploads because uploaded screenshots get assigned
|
||||
# to this user record.
|
||||
|
|
|
|||
|
|
@ -54,28 +54,39 @@ h1 Your data
|
|||
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
|
||||
h3 Statistics
|
||||
p
|
||||
= pluralize(current_user.approved_screenshots, 'approved screenshot')
|
||||
p
|
||||
= pluralize(current_user.rejected_screenshots, 'rejected screenshot')
|
||||
|
||||
- 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
|
||||
|
|
|
|||
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.
|
||||
|
||||
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
|
||||
enable_extension "plpgsql"
|
||||
|
|
@ -120,6 +120,8 @@ ActiveRecord::Schema.define(version: 2021_03_09_233239) do
|
|||
t.boolean "admin_role", default: false
|
||||
t.boolean "moderator_role", 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
|
||||
end
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue