sufia 4.2.0 → 4.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/History.md +21 -0
- data/README.md +7 -19
- data/SUFIA_VERSION +1 -1
- data/app/assets/images/orcid.png +0 -0
- data/app/assets/javascripts/sufia.js +6 -1
- data/app/assets/javascripts/sufia/permissions.js +2 -26
- data/app/assets/stylesheets/sufia.css.scss +6 -0
- data/app/assets/stylesheets/sufia/_buttons.scss +6 -1
- data/app/assets/stylesheets/sufia/_dashboard.scss +10 -0
- data/app/assets/stylesheets/sufia/_file-listing.scss +8 -0
- data/app/assets/stylesheets/sufia/_settings.scss +1 -0
- data/app/helpers/batch_edits_helper.rb +1 -1
- data/app/helpers/sufia/sufia_helper_behavior.rb +11 -0
- data/app/models/featured_work_list.rb +4 -1
- data/app/views/batch/edit.html.erb +2 -2
- data/app/views/batch_edits/_check_all.html.erb +8 -6
- data/app/views/collections/_edit_descriptions.html.erb +1 -1
- data/app/views/dashboard/_index_partials/_stats.html.erb +10 -1
- data/app/views/generic_files/_descriptions.html.erb +1 -1
- data/app/views/generic_files/_permission.html.erb +2 -2
- data/app/views/generic_files/_permission_form.html.erb +4 -6
- data/app/views/generic_files/_versioning.html.erb +2 -2
- data/app/views/records/show_fields/_contributor.html.erb +1 -1
- data/app/views/records/show_fields/_creator.html.erb +1 -1
- data/app/views/users/_profile.html.erb +1 -2
- data/app/views/users/_user_info.html.erb +20 -3
- data/app/views/users/edit.html.erb +11 -2
- data/app/views/users/show.html.erb +1 -1
- data/config/locales/sufia.en.yml +5 -0
- data/lib/generators/sufia/install_generator.rb +4 -0
- data/lib/generators/sufia/templates/catalog_controller.rb +4 -0
- data/lib/sufia/version.rb +1 -1
- data/spec/controllers/users_controller_spec.rb +18 -10
- data/spec/features/browse_files_spec.rb +17 -3
- data/spec/features/users_spec.rb +1 -1
- data/spec/helpers/batch_edits_helper_spec.rb +7 -1
- data/spec/lib/sufia/user_stat_importer_spec.rb +206 -0
- data/spec/models/featured_work_list_spec.rb +12 -0
- data/spec/models/file_view_stat_spec.rb +6 -2
- data/spec/models/user_spec.rb +25 -2
- data/spec/models/user_usage_stats_spec.rb +39 -0
- data/spec/views/dashboard/index_spec.rb +4 -0
- data/spec/views/generic_file/_permission_form.html.erb_spec.rb +19 -0
- data/spec/views/generic_file/show.html.erb_spec.rb +2 -2
- data/sufia-models/app/models/concerns/sufia/file_stat_utils.rb +3 -3
- data/sufia-models/app/models/concerns/sufia/user.rb +27 -10
- data/sufia-models/app/models/concerns/sufia/user_usage_stats.rb +15 -0
- data/sufia-models/app/models/file_download_stat.rb +2 -2
- data/sufia-models/app/models/file_usage.rb +7 -3
- data/sufia-models/app/models/file_view_stat.rb +2 -2
- data/sufia-models/app/models/sufia/orcid_validator.rb +8 -0
- data/sufia-models/app/models/user_stat.rb +2 -0
- data/sufia-models/lib/generators/sufia/models/abstract_migration_generator.rb +30 -0
- data/sufia-models/lib/generators/sufia/models/cached_stats_generator.rb +2 -31
- data/sufia-models/lib/generators/sufia/models/install_generator.rb +11 -31
- data/sufia-models/lib/generators/sufia/models/orcid_field_generator.rb +19 -0
- data/sufia-models/lib/generators/sufia/models/proxies_generator.rb +2 -31
- data/sufia-models/lib/generators/sufia/models/templates/config/sufia.rb +3 -5
- data/sufia-models/lib/generators/sufia/models/templates/migrations/add_orcid_to_users.rb +5 -0
- data/sufia-models/lib/generators/sufia/models/templates/migrations/create_user_stats.rb +19 -0
- data/sufia-models/lib/generators/sufia/models/upgrade400_generator.rb +2 -33
- data/sufia-models/lib/generators/sufia/models/user_stats_generator.rb +31 -0
- data/sufia-models/lib/sufia/models/stats/user_stat_importer.rb +85 -0
- data/sufia-models/lib/sufia/models/version.rb +1 -1
- data/sufia-models/lib/tasks/stats_tasks.rake +12 -0
- data/sufia.gemspec +0 -1
- metadata +21 -19
- data/app/views/users/_social_media_info.html.erb +0 -20
@@ -1,12 +1,7 @@
|
|
1
|
-
|
2
|
-
require 'rails/generators'
|
3
|
-
require 'rails/generators/migration'
|
4
|
-
|
5
|
-
class Sufia::Models::InstallGenerator < Rails::Generators::Base
|
6
|
-
include Rails::Generators::Migration
|
1
|
+
require_relative 'abstract_migration_generator'
|
7
2
|
|
3
|
+
class Sufia::Models::InstallGenerator < Sufia::Models::AbstractMigrationGenerator
|
8
4
|
source_root File.expand_path('../templates', __FILE__)
|
9
|
-
|
10
5
|
argument :model_name, type: :string , default: "user"
|
11
6
|
desc """
|
12
7
|
This generator makes the following changes to your application:
|
@@ -19,30 +14,15 @@ This generator makes the following changes to your application:
|
|
19
14
|
7. Runs full-text generator
|
20
15
|
8. Runs proxies generator
|
21
16
|
9. Runs cached stats generator
|
17
|
+
10. Runs ORCID field generator
|
18
|
+
11. Runs user stats generator
|
22
19
|
"""
|
23
|
-
|
24
|
-
# Implement the required interface for Rails::Generators::Migration.
|
25
|
-
# taken from http://github.com/rails/rails/blob/master/activerecord/lib/generators/active_record.rb
|
26
|
-
def self.next_migration_number(path)
|
27
|
-
if @prev_migration_nr
|
28
|
-
@prev_migration_nr += 1
|
29
|
-
else
|
30
|
-
if last_migration = Dir[File.join(path, '*.rb')].sort.last
|
31
|
-
@prev_migration_nr = last_migration.sub(File.join(path, '/'), '').to_i + 1
|
32
|
-
else
|
33
|
-
@prev_migration_nr = Time.now.utc.strftime("%Y%m%d%H%M%S").to_i
|
34
|
-
end
|
35
|
-
end
|
36
|
-
@prev_migration_nr.to_s
|
37
|
-
end
|
38
|
-
|
39
20
|
def banner
|
40
21
|
say_status("warning", "GENERATING SUFIA MODELS", :yellow)
|
41
22
|
end
|
42
23
|
|
43
24
|
# Setup the database migrations
|
44
25
|
def copy_migrations
|
45
|
-
# Can't get this any more DRY, because we need this order.
|
46
26
|
[
|
47
27
|
"acts_as_follower_migration.rb",
|
48
28
|
"add_social_to_users.rb",
|
@@ -114,13 +94,13 @@ This generator makes the following changes to your application:
|
|
114
94
|
generate 'sufia:models:cached_stats'
|
115
95
|
end
|
116
96
|
|
117
|
-
|
97
|
+
# Adds orcid field to user model
|
98
|
+
def orcid_field
|
99
|
+
generate 'sufia:models:orcid_field'
|
100
|
+
end
|
118
101
|
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
rescue Rails::Generators::Error => e
|
123
|
-
say_status("warning", e.message, :yellow)
|
124
|
-
end
|
102
|
+
# Adds user stats-related migration & methods
|
103
|
+
def user_stats
|
104
|
+
generate 'sufia:models:user_stats'
|
125
105
|
end
|
126
106
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require_relative 'abstract_migration_generator'
|
2
|
+
|
3
|
+
class Sufia::Models::OrcidFieldGenerator < Sufia::Models::AbstractMigrationGenerator
|
4
|
+
source_root File.expand_path('../templates', __FILE__)
|
5
|
+
|
6
|
+
desc """
|
7
|
+
This generator adds a field to hold users' ORCIDs to your application:
|
8
|
+
1. Creates a database migration if they do not exist in /db/migrate
|
9
|
+
"""
|
10
|
+
|
11
|
+
def banner
|
12
|
+
say_status("warning", "ADDING ORCID FIELD TO USER MODEL", :yellow)
|
13
|
+
end
|
14
|
+
|
15
|
+
# Setup the database migration
|
16
|
+
def copy_migrations
|
17
|
+
better_migration_template 'add_orcid_to_users.rb'
|
18
|
+
end
|
19
|
+
end
|
@@ -1,30 +1,12 @@
|
|
1
|
-
|
2
|
-
require 'rails/generators'
|
3
|
-
require 'rails/generators/migration'
|
4
|
-
|
5
|
-
class Sufia::Models::ProxiesGenerator < Rails::Generators::Base
|
6
|
-
include Rails::Generators::Migration
|
1
|
+
require_relative 'abstract_migration_generator'
|
7
2
|
|
3
|
+
class Sufia::Models::ProxiesGenerator < Sufia::Models::AbstractMigrationGenerator
|
8
4
|
source_root File.expand_path('../templates', __FILE__)
|
9
5
|
|
10
6
|
desc """
|
11
7
|
This generator adds proxies and transfers to your application:
|
12
8
|
1. Creates several database migrations if they do not exist in /db/migrate
|
13
9
|
"""
|
14
|
-
# Implement the required interface for Rails::Generators::Migration.
|
15
|
-
# taken from http://github.com/rails/rails/blob/master/activerecord/lib/generators/active_record.rb
|
16
|
-
def self.next_migration_number(path)
|
17
|
-
if @prev_migration_nr
|
18
|
-
@prev_migration_nr += 1
|
19
|
-
else
|
20
|
-
if last_migration = Dir[File.join(path, '*.rb')].sort.last
|
21
|
-
@prev_migration_nr = last_migration.sub(File.join(path, '/'), '').to_i + 1
|
22
|
-
else
|
23
|
-
@prev_migration_nr = Time.now.utc.strftime("%Y%m%d%H%M%S").to_i
|
24
|
-
end
|
25
|
-
end
|
26
|
-
@prev_migration_nr.to_s
|
27
|
-
end
|
28
10
|
|
29
11
|
def banner
|
30
12
|
say_status("warning", "ADDING PROXY/TRANSFER-RELATED SUFIA MODELS", :yellow)
|
@@ -32,7 +14,6 @@ This generator adds proxies and transfers to your application:
|
|
32
14
|
|
33
15
|
# Setup the database migrations
|
34
16
|
def copy_migrations
|
35
|
-
# Can't get this any more DRY, because we need this order.
|
36
17
|
[
|
37
18
|
'create_proxy_deposit_rights.rb',
|
38
19
|
'create_proxy_deposit_requests.rb'
|
@@ -40,14 +21,4 @@ This generator adds proxies and transfers to your application:
|
|
40
21
|
better_migration_template file
|
41
22
|
end
|
42
23
|
end
|
43
|
-
|
44
|
-
private
|
45
|
-
|
46
|
-
def better_migration_template(file)
|
47
|
-
begin
|
48
|
-
migration_template "migrations/#{file}", "db/migrate/#{file}"
|
49
|
-
rescue Rails::Generators::Error => e
|
50
|
-
say_status("warning", e.message, :yellow)
|
51
|
-
end
|
52
|
-
end
|
53
24
|
end
|
@@ -93,6 +93,9 @@ Sufia.config do |config|
|
|
93
93
|
# Specify a Google Analytics tracking ID to gather usage statistics
|
94
94
|
# config.google_analytics_id = 'UA-99999999-1'
|
95
95
|
|
96
|
+
# Specify a date you wish to start collecting Google Analytic statistics for.
|
97
|
+
# config.analytic_start_date = DateTime.new(2014,9,10)
|
98
|
+
|
96
99
|
# Where to store tempfiles, leave blank for the system temp directory (e.g. /tmp)
|
97
100
|
# config.temp_file_base = '/home/developer1'
|
98
101
|
|
@@ -108,11 +111,6 @@ Sufia.config do |config|
|
|
108
111
|
# Specify how many seconds back from the current time that we should show by default of the user's activity on the user's dashboard
|
109
112
|
# config.activity_to_show_default_seconds_since_now = 24*60*60
|
110
113
|
|
111
|
-
# Specify a date you wish to start collecting Google Analytic statistics for.
|
112
|
-
# Leaving it blank will set the start date to when ever the file was uploaded by
|
113
|
-
# NOTE: if you have always sent analytics to GA for downloads and page views leave this commented out
|
114
|
-
# config.analytic_start_date = DateTime.new(2014,9,10)
|
115
|
-
|
116
114
|
# If browse-everything has been configured, load the configs. Otherwise, set to nil.
|
117
115
|
begin
|
118
116
|
if defined? BrowseEverything
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class CreateUserStats < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
create_table :user_stats do |t|
|
4
|
+
t.integer :user_id
|
5
|
+
t.datetime :date
|
6
|
+
t.integer :file_views
|
7
|
+
t.integer :file_downloads
|
8
|
+
|
9
|
+
t.timestamps
|
10
|
+
end
|
11
|
+
|
12
|
+
add_column :file_view_stats, :user_id, :integer
|
13
|
+
add_column :file_download_stats, :user_id, :integer
|
14
|
+
|
15
|
+
add_index :user_stats, :user_id
|
16
|
+
add_index :file_view_stats, :user_id
|
17
|
+
add_index :file_download_stats, :user_id
|
18
|
+
end
|
19
|
+
end
|
@@ -1,13 +1,8 @@
|
|
1
|
-
|
2
|
-
require 'rails/generators'
|
3
|
-
require 'rails/generators/migration'
|
4
|
-
|
5
|
-
class Sufia::Models::Upgrade400Generator < Rails::Generators::Base
|
6
|
-
include Rails::Generators::Migration
|
1
|
+
require_relative 'abstract_migration_generator'
|
7
2
|
|
3
|
+
class Sufia::Models::Upgrade400Generator < Sufia::Models::AbstractMigrationGenerator
|
8
4
|
source_root File.expand_path('../templates', __FILE__)
|
9
5
|
|
10
|
-
argument :model_name, type: :string , default: "user"
|
11
6
|
desc """
|
12
7
|
This generator for upgrading sufia-models from 3.7.2 to 4.0 makes the following changes to your application:
|
13
8
|
1. Creates several database migrations if they do not exist in /db/migrate
|
@@ -16,28 +11,12 @@ This generator for upgrading sufia-models from 3.7.2 to 4.0 makes the following
|
|
16
11
|
4. Runs full-text generator
|
17
12
|
"""
|
18
13
|
|
19
|
-
# Implement the required interface for Rails::Generators::Migration.
|
20
|
-
# taken from http://github.com/rails/rails/blob/master/activerecord/lib/generators/active_record.rb
|
21
|
-
def self.next_migration_number(path)
|
22
|
-
if @prev_migration_nr
|
23
|
-
@prev_migration_nr += 1
|
24
|
-
else
|
25
|
-
if last_migration = Dir[File.join(path, '*.rb')].sort.last
|
26
|
-
@prev_migration_nr = last_migration.sub(File.join(path, '/'), '').to_i + 1
|
27
|
-
else
|
28
|
-
@prev_migration_nr = Time.now.utc.strftime("%Y%m%d%H%M%S").to_i
|
29
|
-
end
|
30
|
-
end
|
31
|
-
@prev_migration_nr.to_s
|
32
|
-
end
|
33
|
-
|
34
14
|
def banner
|
35
15
|
say_status("warning", "UPGRADING SUFIA MODELS", :yellow)
|
36
16
|
end
|
37
17
|
|
38
18
|
# Setup the database migrations
|
39
19
|
def copy_migrations
|
40
|
-
# Can't get this any more DRY, because we need this order.
|
41
20
|
[
|
42
21
|
'create_tinymce_assets.rb',
|
43
22
|
'create_content_blocks.rb',
|
@@ -72,14 +51,4 @@ This generator for upgrading sufia-models from 3.7.2 to 4.0 makes the following
|
|
72
51
|
def full_text_indexing
|
73
52
|
generate "sufia:models:fulltext"
|
74
53
|
end
|
75
|
-
|
76
|
-
private
|
77
|
-
|
78
|
-
def better_migration_template(file)
|
79
|
-
begin
|
80
|
-
migration_template "migrations/#{file}", "db/migrate/#{file}"
|
81
|
-
rescue Rails::Generators::Error => e
|
82
|
-
say_status("warning", e.message, :yellow)
|
83
|
-
end
|
84
|
-
end
|
85
54
|
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require_relative 'abstract_migration_generator'
|
2
|
+
|
3
|
+
class Sufia::Models::UserStatsGenerator < Sufia::Models::AbstractMigrationGenerator
|
4
|
+
source_root File.expand_path('../templates', __FILE__)
|
5
|
+
argument :model_name, type: :string , default: "user"
|
6
|
+
|
7
|
+
desc """
|
8
|
+
This generator adds usage stats methods to the user model in your application:
|
9
|
+
"""
|
10
|
+
|
11
|
+
def banner
|
12
|
+
say_status("warning", "ADDING USER STATS-RELATED ABILITIES TO SUFIA MODELS", :yellow)
|
13
|
+
end
|
14
|
+
|
15
|
+
# Setup the database migrations
|
16
|
+
def copy_migrations
|
17
|
+
better_migration_template 'create_user_stats.rb'
|
18
|
+
end
|
19
|
+
|
20
|
+
def add_stats_mixin_to_user_model
|
21
|
+
file_path = "app/models/#{model_name.underscore}.rb"
|
22
|
+
|
23
|
+
if File.exists?(file_path)
|
24
|
+
inject_into_file file_path, after: /include Sufia\:\:User.*$/ do
|
25
|
+
"\n include Sufia::UserUsageStats"
|
26
|
+
end
|
27
|
+
else
|
28
|
+
puts " \e[31mFailure\e[0m Sufia requires a user object. This generator assumes that the model is defined in the file #{file_path}, which does not exist. If you used a different name, please re-run the generator and provide that name as an argument. Such as \b rails g sufia:models:user_stats client"
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
module Sufia
|
2
|
+
class UserStatImporter
|
3
|
+
|
4
|
+
def initialize(options={})
|
5
|
+
@verbose = options[:verbose]
|
6
|
+
@logging = options[:logging]
|
7
|
+
end
|
8
|
+
|
9
|
+
def import
|
10
|
+
log_message('Begin import of User stats.')
|
11
|
+
::User.find_each do |user|
|
12
|
+
start_date = date_since_last_cache(user)
|
13
|
+
|
14
|
+
stats = {}
|
15
|
+
files_for_user(user).each do |file|
|
16
|
+
view_stats = FileViewStat.statistics(file.id, start_date, user.id)
|
17
|
+
stats = tally_results(view_stats, :views, stats)
|
18
|
+
|
19
|
+
dl_stats = FileDownloadStat.statistics(file.id, start_date, user.id)
|
20
|
+
stats = tally_results(dl_stats, :downloads, stats)
|
21
|
+
end
|
22
|
+
|
23
|
+
create_or_update_user_stats(stats, user)
|
24
|
+
end
|
25
|
+
log_message('User stats import complete.')
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def date_since_last_cache(user)
|
32
|
+
last_cached_stat = UserStat.where(user_id: user.id).order(date: :asc).last
|
33
|
+
|
34
|
+
if last_cached_stat
|
35
|
+
last_cached_stat.date + 1.day
|
36
|
+
else
|
37
|
+
Sufia.config.analytic_start_date
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def files_for_user(user)
|
42
|
+
::GenericFile.where(Solrizer.solr_name('depositor', :symbol) => user.user_key)
|
43
|
+
end
|
44
|
+
|
45
|
+
# For each date, add the view and download counts for this
|
46
|
+
# file to the view & download sub-totals for that day.
|
47
|
+
# The resulting hash will look something like this:
|
48
|
+
# {"2014-11-30 00:00:00 UTC" => {:views=>2, :downloads=>5},
|
49
|
+
# "2014-12-01 00:00:00 UTC" => {:views=>4, :downloads=>4}}
|
50
|
+
def tally_results(file_stats, stat_name, total_stats)
|
51
|
+
file_stats.each do |stats|
|
52
|
+
# Exclude the stats from today since it will only be a partial day's worth of data
|
53
|
+
break if stats.date == Date.today
|
54
|
+
|
55
|
+
date_key = stats.date.to_s
|
56
|
+
old_count = total_stats[date_key] ? total_stats[date_key].fetch(stat_name) { 0 } : 0
|
57
|
+
new_count = old_count + stats.method(stat_name).call
|
58
|
+
|
59
|
+
old_values = total_stats[date_key] || {}
|
60
|
+
total_stats.store(date_key, old_values)
|
61
|
+
total_stats[date_key].store(stat_name, new_count)
|
62
|
+
end
|
63
|
+
total_stats
|
64
|
+
end
|
65
|
+
|
66
|
+
def create_or_update_user_stats(stats, user)
|
67
|
+
stats.each do |date_string, data|
|
68
|
+
date = Time.zone.parse(date_string)
|
69
|
+
|
70
|
+
user_stat = UserStat.where(user_id: user.id).where(date: date).first
|
71
|
+
user_stat ||= UserStat.new(user_id: user.id, date: date)
|
72
|
+
|
73
|
+
user_stat.file_views = data[:views] || 0
|
74
|
+
user_stat.file_downloads = data[:downloads] || 0
|
75
|
+
user_stat.save!
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
def log_message(message)
|
80
|
+
puts message if @verbose
|
81
|
+
Rails.logger.info "#{self.class}: #{message}" if @logging
|
82
|
+
end
|
83
|
+
|
84
|
+
end
|
85
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
namespace :sufia do
|
2
|
+
namespace :stats do
|
3
|
+
|
4
|
+
desc "Cache file view & download stats for all users"
|
5
|
+
task :user_stats => :environment do
|
6
|
+
require 'sufia/models/stats/user_stat_importer'
|
7
|
+
importer = Sufia::UserStatImporter.new(verbose: true, logging: true)
|
8
|
+
importer.import
|
9
|
+
end
|
10
|
+
|
11
|
+
end
|
12
|
+
end
|
data/sufia.gemspec
CHANGED
@@ -39,7 +39,6 @@ Gem::Specification.new do |gem|
|
|
39
39
|
gem.add_dependency 'hydra-editor', '~> 0.3'
|
40
40
|
gem.add_dependency 'hydra-collections', '~> 2.0'
|
41
41
|
gem.add_dependency 'bootstrap_form', '~> 2.1'
|
42
|
-
gem.add_dependency 'bootstrap-sass', '< 3.2'
|
43
42
|
gem.add_dependency 'blacklight-gallery'
|
44
43
|
gem.add_dependency 'breadcrumbs_on_rails', '~>2.3.0'
|
45
44
|
gem.add_dependency 'select2-rails'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sufia
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin Coyne
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-12-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sufia-models
|
@@ -17,14 +17,14 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - '='
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: 4.
|
20
|
+
version: 4.3.1
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - '='
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: 4.
|
27
|
+
version: 4.3.1
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: blacklight_advanced_search
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -241,20 +241,6 @@ dependencies:
|
|
241
241
|
- - "~>"
|
242
242
|
- !ruby/object:Gem::Version
|
243
243
|
version: '2.1'
|
244
|
-
- !ruby/object:Gem::Dependency
|
245
|
-
name: bootstrap-sass
|
246
|
-
requirement: !ruby/object:Gem::Requirement
|
247
|
-
requirements:
|
248
|
-
- - "<"
|
249
|
-
- !ruby/object:Gem::Version
|
250
|
-
version: '3.2'
|
251
|
-
type: :runtime
|
252
|
-
prerelease: false
|
253
|
-
version_requirements: !ruby/object:Gem::Requirement
|
254
|
-
requirements:
|
255
|
-
- - "<"
|
256
|
-
- !ruby/object:Gem::Version
|
257
|
-
version: '3.2'
|
258
244
|
- !ruby/object:Gem::Dependency
|
259
245
|
name: blacklight-gallery
|
260
246
|
requirement: !ruby/object:Gem::Requirement
|
@@ -462,6 +448,7 @@ files:
|
|
462
448
|
- app/assets/images/missing_original.png
|
463
449
|
- app/assets/images/missing_thumb.png
|
464
450
|
- app/assets/images/old_main_tulips.jpg
|
451
|
+
- app/assets/images/orcid.png
|
465
452
|
- app/assets/images/progressbar.gif
|
466
453
|
- app/assets/images/site_images/bg_body.png
|
467
454
|
- app/assets/images/site_images/bg_breadcrumbs.png
|
@@ -835,7 +822,6 @@ files:
|
|
835
822
|
- app/views/users/_profile_tabs.html.erb
|
836
823
|
- app/views/users/_proxies.html.erb
|
837
824
|
- app/views/users/_search_form.html.erb
|
838
|
-
- app/views/users/_social_media_info.html.erb
|
839
825
|
- app/views/users/_trophy_edit.html.erb
|
840
826
|
- app/views/users/_user_info.html.erb
|
841
827
|
- app/views/users/_user_util_links_extra.html.erb
|
@@ -968,6 +954,7 @@ files:
|
|
968
954
|
- spec/lib/sufia/messages_spec.rb
|
969
955
|
- spec/lib/sufia/readable_permissions_spec.rb
|
970
956
|
- spec/lib/sufia/upload_complete_behavior_spec.rb
|
957
|
+
- spec/lib/sufia/user_stat_importer_spec.rb
|
971
958
|
- spec/lib/sufia/writable_permissions_spec.rb
|
972
959
|
- spec/models/ability_spec.rb
|
973
960
|
- spec/models/batch_spec.rb
|
@@ -996,6 +983,7 @@ files:
|
|
996
983
|
- spec/models/solr_document_spec.rb
|
997
984
|
- spec/models/trophy_spec.rb
|
998
985
|
- spec/models/user_spec.rb
|
986
|
+
- spec/models/user_usage_stats_spec.rb
|
999
987
|
- spec/routing/featured_works_route_spec.rb
|
1000
988
|
- spec/routing/ownership_transfers_route_spec.rb
|
1001
989
|
- spec/routing/route_spec.rb
|
@@ -1020,6 +1008,7 @@ files:
|
|
1020
1008
|
- spec/views/collections/_form.html.erb_spec.rb
|
1021
1009
|
- spec/views/collections/_show_descriptions.html.erb_spec.rb
|
1022
1010
|
- spec/views/dashboard/index_spec.rb
|
1011
|
+
- spec/views/generic_file/_permission_form.html.erb_spec.rb
|
1023
1012
|
- spec/views/generic_file/edit.html.erb_spec.rb
|
1024
1013
|
- spec/views/generic_file/show.html.erb_spec.rb
|
1025
1014
|
- spec/views/generic_file/stats.html.erb_spec.rb
|
@@ -1069,6 +1058,7 @@ files:
|
|
1069
1058
|
- sufia-models/app/models/concerns/sufia/model_methods.rb
|
1070
1059
|
- sufia-models/app/models/concerns/sufia/properties_datastream_behavior.rb
|
1071
1060
|
- sufia-models/app/models/concerns/sufia/user.rb
|
1061
|
+
- sufia-models/app/models/concerns/sufia/user_usage_stats.rb
|
1072
1062
|
- sufia-models/app/models/datastreams/batch_rdf_datastream.rb
|
1073
1063
|
- sufia-models/app/models/datastreams/file_content_datastream.rb
|
1074
1064
|
- sufia-models/app/models/datastreams/fits_datastream.rb
|
@@ -1093,16 +1083,20 @@ files:
|
|
1093
1083
|
- sufia-models/app/models/sufia/avatar_uploader.rb
|
1094
1084
|
- sufia-models/app/models/sufia/avatar_validator.rb
|
1095
1085
|
- sufia-models/app/models/sufia/download.rb
|
1086
|
+
- sufia-models/app/models/sufia/orcid_validator.rb
|
1096
1087
|
- sufia-models/app/models/sufia/pageview.rb
|
1097
1088
|
- sufia-models/app/models/trophy.rb
|
1089
|
+
- sufia-models/app/models/user_stat.rb
|
1098
1090
|
- sufia-models/app/models/version_committer.rb
|
1099
1091
|
- sufia-models/app/services/sufia/analytics.rb
|
1100
1092
|
- sufia-models/app/services/sufia/id_service.rb
|
1101
1093
|
- sufia-models/app/services/sufia/noid.rb
|
1102
1094
|
- sufia-models/config/locales/sufia.en.yml
|
1095
|
+
- sufia-models/lib/generators/sufia/models/abstract_migration_generator.rb
|
1103
1096
|
- sufia-models/lib/generators/sufia/models/cached_stats_generator.rb
|
1104
1097
|
- sufia-models/lib/generators/sufia/models/fulltext_generator.rb
|
1105
1098
|
- sufia-models/lib/generators/sufia/models/install_generator.rb
|
1099
|
+
- sufia-models/lib/generators/sufia/models/orcid_field_generator.rb
|
1106
1100
|
- sufia-models/lib/generators/sufia/models/proxies_generator.rb
|
1107
1101
|
- sufia-models/lib/generators/sufia/models/templates/config/analytics.yml
|
1108
1102
|
- sufia-models/lib/generators/sufia/models/templates/config/clamav.rb
|
@@ -1121,6 +1115,7 @@ files:
|
|
1121
1115
|
- sufia-models/lib/generators/sufia/models/templates/migrations/add_groups_to_users.rb
|
1122
1116
|
- sufia-models/lib/generators/sufia/models/templates/migrations/add_ldap_attrs_to_user.rb
|
1123
1117
|
- sufia-models/lib/generators/sufia/models/templates/migrations/add_linkedin_to_users.rb
|
1118
|
+
- sufia-models/lib/generators/sufia/models/templates/migrations/add_orcid_to_users.rb
|
1124
1119
|
- sufia-models/lib/generators/sufia/models/templates/migrations/add_social_to_users.rb
|
1125
1120
|
- sufia-models/lib/generators/sufia/models/templates/migrations/create_checksum_audit_logs.rb
|
1126
1121
|
- sufia-models/lib/generators/sufia/models/templates/migrations/create_content_blocks.rb
|
@@ -1133,9 +1128,11 @@ files:
|
|
1133
1128
|
- sufia-models/lib/generators/sufia/models/templates/migrations/create_single_use_links.rb
|
1134
1129
|
- sufia-models/lib/generators/sufia/models/templates/migrations/create_tinymce_assets.rb
|
1135
1130
|
- sufia-models/lib/generators/sufia/models/templates/migrations/create_trophies.rb
|
1131
|
+
- sufia-models/lib/generators/sufia/models/templates/migrations/create_user_stats.rb
|
1136
1132
|
- sufia-models/lib/generators/sufia/models/templates/migrations/create_version_committers.rb
|
1137
1133
|
- sufia-models/lib/generators/sufia/models/upgrade400_generator.rb
|
1138
1134
|
- sufia-models/lib/generators/sufia/models/usagestats_generator.rb
|
1135
|
+
- sufia-models/lib/generators/sufia/models/user_stats_generator.rb
|
1139
1136
|
- sufia-models/lib/sufia/messages.rb
|
1140
1137
|
- sufia-models/lib/sufia/models.rb
|
1141
1138
|
- sufia-models/lib/sufia/models/active_fedora/redis.rb
|
@@ -1144,6 +1141,7 @@ files:
|
|
1144
1141
|
- sufia-models/lib/sufia/models/file_content.rb
|
1145
1142
|
- sufia-models/lib/sufia/models/file_content/versions.rb
|
1146
1143
|
- sufia-models/lib/sufia/models/resque.rb
|
1144
|
+
- sufia-models/lib/sufia/models/stats/user_stat_importer.rb
|
1147
1145
|
- sufia-models/lib/sufia/models/user_local_directory_behavior.rb
|
1148
1146
|
- sufia-models/lib/sufia/models/utils.rb
|
1149
1147
|
- sufia-models/lib/sufia/models/version.rb
|
@@ -1152,6 +1150,7 @@ files:
|
|
1152
1150
|
- sufia-models/lib/sufia/permissions/readable.rb
|
1153
1151
|
- sufia-models/lib/sufia/permissions/writable.rb
|
1154
1152
|
- sufia-models/lib/tasks/resque.rake
|
1153
|
+
- sufia-models/lib/tasks/stats_tasks.rake
|
1155
1154
|
- sufia-models/lib/tasks/sufia-models_tasks.rake
|
1156
1155
|
- sufia-models/sufia-models.gemspec
|
1157
1156
|
- sufia.gemspec
|
@@ -1321,6 +1320,7 @@ test_files:
|
|
1321
1320
|
- spec/lib/sufia/messages_spec.rb
|
1322
1321
|
- spec/lib/sufia/readable_permissions_spec.rb
|
1323
1322
|
- spec/lib/sufia/upload_complete_behavior_spec.rb
|
1323
|
+
- spec/lib/sufia/user_stat_importer_spec.rb
|
1324
1324
|
- spec/lib/sufia/writable_permissions_spec.rb
|
1325
1325
|
- spec/models/ability_spec.rb
|
1326
1326
|
- spec/models/batch_spec.rb
|
@@ -1349,6 +1349,7 @@ test_files:
|
|
1349
1349
|
- spec/models/solr_document_spec.rb
|
1350
1350
|
- spec/models/trophy_spec.rb
|
1351
1351
|
- spec/models/user_spec.rb
|
1352
|
+
- spec/models/user_usage_stats_spec.rb
|
1352
1353
|
- spec/routing/featured_works_route_spec.rb
|
1353
1354
|
- spec/routing/ownership_transfers_route_spec.rb
|
1354
1355
|
- spec/routing/route_spec.rb
|
@@ -1373,6 +1374,7 @@ test_files:
|
|
1373
1374
|
- spec/views/collections/_form.html.erb_spec.rb
|
1374
1375
|
- spec/views/collections/_show_descriptions.html.erb_spec.rb
|
1375
1376
|
- spec/views/dashboard/index_spec.rb
|
1377
|
+
- spec/views/generic_file/_permission_form.html.erb_spec.rb
|
1376
1378
|
- spec/views/generic_file/edit.html.erb_spec.rb
|
1377
1379
|
- spec/views/generic_file/show.html.erb_spec.rb
|
1378
1380
|
- spec/views/generic_file/stats.html.erb_spec.rb
|