sufia 7.0.0.beta1 → 7.0.0.beta2
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/app/assets/javascripts/sufia.js +3 -4
- data/app/assets/stylesheets/sufia/_styles.scss +2 -1
- data/app/controllers/concerns/sufia/transfers_controller_behavior.rb +1 -0
- data/app/controllers/errors_controller.rb +1 -1
- data/app/indexers/sufia/work_indexer.rb +1 -0
- data/app/presenters/sufia/admin_stats_presenter.rb +17 -11
- data/app/search_builders/sufia/catalog_search_builder.rb +29 -0
- data/app/search_builders/sufia/my_collections_search_builder.rb +7 -0
- data/app/search_builders/sufia/my_highlights_search_builder.rb +9 -3
- data/app/search_builders/sufia/my_shares_search_builder.rb +8 -1
- data/app/search_builders/sufia/search_builder.rb +0 -59
- data/app/services/sufia/analytics.rb +25 -8
- data/app/services/sufia/query_service.rb +1 -1
- data/app/services/sufia/statistics/collections/over_time.rb +13 -0
- data/app/services/sufia/statistics/depositors/summary.rb +54 -0
- data/app/services/sufia/statistics/file_sets/by_format.rb +14 -0
- data/app/services/sufia/statistics/over_time.rb +11 -3
- data/app/services/sufia/statistics/system_stats.rb +61 -0
- data/app/services/sufia/statistics/term_query.rb +65 -0
- data/app/services/sufia/statistics/works/by_depositor.rb +13 -0
- data/app/services/sufia/statistics/works/by_resource_type.rb +13 -0
- data/app/services/sufia/statistics/works/count.rb +49 -0
- data/app/services/sufia/statistics/works/over_time.rb +13 -0
- data/app/views/admin/stats/_stats_by_date.html.erb +1 -1
- data/app/views/admin/stats/_top_data.html.erb +4 -4
- data/app/views/admin/stats/_works.html.erb +8 -0
- data/app/views/collections/_form.html.erb +1 -1
- data/app/views/curation_concerns/base/_attribute_rows.html.erb +10 -10
- data/app/views/curation_concerns/base/_metadata.html.erb +1 -1
- data/app/views/curation_concerns/base/_relationships.html.erb +1 -1
- data/app/views/curation_concerns/file_sets/_descriptions.html.erb +1 -1
- data/app/views/error/404.html.erb +8 -19
- data/app/views/layouts/error.html.erb +3 -3
- data/app/views/layouts/homepage.html.erb +1 -1
- data/app/views/layouts/sufia-dashboard.html.erb +1 -1
- data/app/views/layouts/sufia-one-column.html.erb +1 -1
- data/app/views/{_footer.html.erb → shared/_footer.html.erb} +1 -1
- data/app/views/stats/file.html.erb +0 -1
- data/app/views/stats/work.html.erb +0 -2
- data/lib/generators/sufia/install_generator.rb +6 -0
- data/lib/sufia/engine.rb +1 -0
- data/lib/sufia/version.rb +1 -1
- data/spec/controllers/my/shares_controller_spec.rb +6 -7
- data/spec/controllers/transfers_controller_spec.rb +10 -0
- data/spec/features/batch_edit_spec.rb +1 -1
- data/spec/lib/sufia/analytics_spec.rb +18 -10
- data/spec/presenters/sufia/admin_stats_presenter_spec.rb +21 -14
- data/spec/search_builder/{sufia_search_builder_spec.rb → sufia/catalog_search_builder_spec.rb} +1 -1
- data/spec/search_builder/sufia/my_shares_search_builder_spec.rb +18 -0
- data/spec/services/statistics/{collections_spec.rb → collections/over_time_spec.rb} +1 -1
- data/spec/services/{sufia/admin/depositor_stats_spec.rb → statistics/depositors/summary_spec.rb} +5 -7
- data/spec/services/statistics/file_sets/by_format_spec.rb +30 -0
- data/spec/services/statistics/system_stats_spec.rb +54 -0
- data/spec/services/statistics/works/by_depositor_spec.rb +25 -0
- data/spec/services/statistics/works/by_resource_type_spec.rb +21 -0
- data/spec/services/statistics/works/count_spec.rb +42 -0
- data/spec/services/statistics/{works_spec.rb → works/over_time_spec.rb} +1 -1
- data/spec/views/admin/stats/index.html.erb_spec.rb +3 -6
- data/spec/views/curation_concerns/base/_relationships.html.erb_spec.rb +4 -1
- data/sufia.gemspec +2 -1
- metadata +49 -25
- data/app/services/sufia/admin/depositor_stats.rb +0 -48
- data/app/services/sufia/statistics/collections.rb +0 -12
- data/app/services/sufia/statistics/works.rb +0 -12
- data/app/services/sufia/system_stats.rb +0 -120
- data/app/views/admin/stats/_files.html.erb +0 -8
- data/lib/generators/sufia/fulltext_generator.rb +0 -26
- data/spec/services/sufia/system_stats_spec.rb +0 -224
- data/vendor/assets/javascripts/flot/excanvas.js +0 -1428
- data/vendor/assets/javascripts/flot/jquery.flot.js +0 -3168
- data/vendor/assets/javascripts/flot/jquery.flot.selection.js +0 -360
- data/vendor/assets/javascripts/flot/jquery.flot.time.js +0 -432
@@ -15,7 +15,7 @@ describe 'curation_concerns/base/relationships' do
|
|
15
15
|
end
|
16
16
|
|
17
17
|
context "when collections are present" do
|
18
|
-
let(:collection_presenters) { [double(id: '456', title: 'Containing collection')] }
|
18
|
+
let(:collection_presenters) { [double(id: '456', title: ['Containing collection', 'foobar'], to_s: 'Containing collection')] }
|
19
19
|
let(:page) { Capybara::Node::Simple.new(rendered) }
|
20
20
|
before do
|
21
21
|
allow(presenter).to receive(:collection_presenters).and_return(collection_presenters)
|
@@ -24,5 +24,8 @@ describe 'curation_concerns/base/relationships' do
|
|
24
24
|
it "links to collections" do
|
25
25
|
expect(page).to have_link 'Containing collection'
|
26
26
|
end
|
27
|
+
it "labels the link using the presenter's #to_s method" do
|
28
|
+
expect(page).not_to have_content 'foobar'
|
29
|
+
end
|
27
30
|
end
|
28
31
|
end
|
data/sufia.gemspec
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.version = Sufia::VERSION
|
19
19
|
spec.license = 'Apache2'
|
20
20
|
|
21
|
-
spec.add_dependency 'curation_concerns', '>= 1.0.0.
|
21
|
+
spec.add_dependency 'curation_concerns', '>= 1.0.0.beta8', '< 2'
|
22
22
|
spec.add_dependency 'hydra-batch-edit', '~> 2.0'
|
23
23
|
spec.add_dependency 'browse-everything', '~> 0.10'
|
24
24
|
spec.add_dependency 'blacklight-gallery', '~> 0.1'
|
@@ -43,6 +43,7 @@ Gem::Specification.new do |spec|
|
|
43
43
|
spec.add_dependency 'jquery-ui-rails', '~> 5.0'
|
44
44
|
spec.add_dependency 'zeroclipboard-rails', '~> 0.0.13'
|
45
45
|
spec.add_dependency 'redis-namespace', '~> 1.5.2'
|
46
|
+
spec.add_dependency 'flot-rails', '~> 0.0.6'
|
46
47
|
|
47
48
|
spec.add_development_dependency 'engine_cart', '~> 0.8'
|
48
49
|
spec.add_development_dependency 'mida', '~> 0.3'
|
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: 7.0.0.
|
4
|
+
version: 7.0.0.beta2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin Coyne
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2016-06-
|
15
|
+
date: 2016-06-08 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: curation_concerns
|
@@ -20,7 +20,7 @@ dependencies:
|
|
20
20
|
requirements:
|
21
21
|
- - ">="
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: 1.0.0.
|
23
|
+
version: 1.0.0.beta8
|
24
24
|
- - "<"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '2'
|
@@ -30,7 +30,7 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 1.0.0.
|
33
|
+
version: 1.0.0.beta8
|
34
34
|
- - "<"
|
35
35
|
- !ruby/object:Gem::Version
|
36
36
|
version: '2'
|
@@ -382,6 +382,20 @@ dependencies:
|
|
382
382
|
- - "~>"
|
383
383
|
- !ruby/object:Gem::Version
|
384
384
|
version: 1.5.2
|
385
|
+
- !ruby/object:Gem::Dependency
|
386
|
+
name: flot-rails
|
387
|
+
requirement: !ruby/object:Gem::Requirement
|
388
|
+
requirements:
|
389
|
+
- - "~>"
|
390
|
+
- !ruby/object:Gem::Version
|
391
|
+
version: 0.0.6
|
392
|
+
type: :runtime
|
393
|
+
prerelease: false
|
394
|
+
version_requirements: !ruby/object:Gem::Requirement
|
395
|
+
requirements:
|
396
|
+
- - "~>"
|
397
|
+
- !ruby/object:Gem::Version
|
398
|
+
version: 0.0.6
|
385
399
|
- !ruby/object:Gem::Dependency
|
386
400
|
name: engine_cart
|
387
401
|
requirement: !ruby/object:Gem::Requirement
|
@@ -858,7 +872,6 @@ files:
|
|
858
872
|
- app/search_builders/sufia/my_works_search_builder.rb
|
859
873
|
- app/search_builders/sufia/search_builder.rb
|
860
874
|
- app/services/sufia/actor_factory.rb
|
861
|
-
- app/services/sufia/admin/depositor_stats.rb
|
862
875
|
- app/services/sufia/analytics.rb
|
863
876
|
- app/services/sufia/audit_failure_service.rb
|
864
877
|
- app/services/sufia/batch_create_failure_service.rb
|
@@ -872,10 +885,16 @@ files:
|
|
872
885
|
- app/services/sufia/message_user_service.rb
|
873
886
|
- app/services/sufia/query_service.rb
|
874
887
|
- app/services/sufia/repository_audit_service.rb
|
875
|
-
- app/services/sufia/statistics/collections.rb
|
888
|
+
- app/services/sufia/statistics/collections/over_time.rb
|
889
|
+
- app/services/sufia/statistics/depositors/summary.rb
|
890
|
+
- app/services/sufia/statistics/file_sets/by_format.rb
|
876
891
|
- app/services/sufia/statistics/over_time.rb
|
877
|
-
- app/services/sufia/statistics/
|
878
|
-
- app/services/sufia/
|
892
|
+
- app/services/sufia/statistics/system_stats.rb
|
893
|
+
- app/services/sufia/statistics/term_query.rb
|
894
|
+
- app/services/sufia/statistics/works/by_depositor.rb
|
895
|
+
- app/services/sufia/statistics/works/by_resource_type.rb
|
896
|
+
- app/services/sufia/statistics/works/count.rb
|
897
|
+
- app/services/sufia/statistics/works/over_time.rb
|
879
898
|
- app/services/sufia/user_stat_importer.rb
|
880
899
|
- app/services/sufia/work_thumbnail_path_service.rb
|
881
900
|
- app/uploaders/sufia/avatar_uploader.rb
|
@@ -883,7 +902,6 @@ files:
|
|
883
902
|
- app/uploaders/tinymce_asset_uploader.rb
|
884
903
|
- app/views/_controls.html.erb
|
885
904
|
- app/views/_flash_msg.html.erb
|
886
|
-
- app/views/_footer.html.erb
|
887
905
|
- app/views/_ga.html.erb
|
888
906
|
- app/views/_head_tag_extras.html.erb
|
889
907
|
- app/views/_logo.html.erb
|
@@ -892,10 +910,10 @@ files:
|
|
892
910
|
- app/views/_user_util_links.html.erb
|
893
911
|
- app/views/admin/stats/_date_form.html.erb
|
894
912
|
- app/views/admin/stats/_deposits.html.erb
|
895
|
-
- app/views/admin/stats/_files.html.erb
|
896
913
|
- app/views/admin/stats/_new_users.html.erb
|
897
914
|
- app/views/admin/stats/_stats_by_date.html.erb
|
898
915
|
- app/views/admin/stats/_top_data.html.erb
|
916
|
+
- app/views/admin/stats/_works.html.erb
|
899
917
|
- app/views/admin/stats/index.html.erb
|
900
918
|
- app/views/advanced/_advanced_search_facets.html.erb
|
901
919
|
- app/views/advanced/_advanced_search_fields.html.erb
|
@@ -1064,6 +1082,7 @@ files:
|
|
1064
1082
|
- app/views/records/show_fields/_subject.html.erb
|
1065
1083
|
- app/views/records/show_fields/_title.html.erb
|
1066
1084
|
- app/views/shared/_citations.html.erb
|
1085
|
+
- app/views/shared/_footer.html.erb
|
1067
1086
|
- app/views/static/agreement.html.erb
|
1068
1087
|
- app/views/static/help.html.erb
|
1069
1088
|
- app/views/static/mendeley.html.erb
|
@@ -1126,7 +1145,6 @@ files:
|
|
1126
1145
|
- lib/generators/sufia/cached_work_stats_generator.rb
|
1127
1146
|
- lib/generators/sufia/citation_config_generator.rb
|
1128
1147
|
- lib/generators/sufia/config_generator.rb
|
1129
|
-
- lib/generators/sufia/fulltext_generator.rb
|
1130
1148
|
- lib/generators/sufia/geonames_username_config_generator.rb
|
1131
1149
|
- lib/generators/sufia/install_generator.rb
|
1132
1150
|
- lib/generators/sufia/minimagick_config_generator.rb
|
@@ -1374,15 +1392,21 @@ files:
|
|
1374
1392
|
- spec/routing/ownership_transfers_route_spec.rb
|
1375
1393
|
- spec/routing/route_spec.rb
|
1376
1394
|
- spec/routing/stats_route_spec.rb
|
1377
|
-
- spec/search_builder/
|
1395
|
+
- spec/search_builder/sufia/catalog_search_builder_spec.rb
|
1396
|
+
- spec/search_builder/sufia/my_shares_search_builder_spec.rb
|
1378
1397
|
- spec/services/collection_member_service_spec.rb
|
1379
1398
|
- spec/services/collection_size_service_spec.rb
|
1380
1399
|
- spec/services/file_set_csv_service_spec.rb
|
1381
1400
|
- spec/services/repository_audit_service_spec.rb
|
1382
|
-
- spec/services/statistics/
|
1383
|
-
- spec/services/statistics/
|
1401
|
+
- spec/services/statistics/collections/over_time_spec.rb
|
1402
|
+
- spec/services/statistics/depositors/summary_spec.rb
|
1403
|
+
- spec/services/statistics/file_sets/by_format_spec.rb
|
1404
|
+
- spec/services/statistics/system_stats_spec.rb
|
1405
|
+
- spec/services/statistics/works/by_depositor_spec.rb
|
1406
|
+
- spec/services/statistics/works/by_resource_type_spec.rb
|
1407
|
+
- spec/services/statistics/works/count_spec.rb
|
1408
|
+
- spec/services/statistics/works/over_time_spec.rb
|
1384
1409
|
- spec/services/sufia/actor_factory_spec.rb
|
1385
|
-
- spec/services/sufia/admin/depositor_stats_spec.rb
|
1386
1410
|
- spec/services/sufia/audit_failure_service_spec.rb
|
1387
1411
|
- spec/services/sufia/batch_create_failure_service_spec.rb
|
1388
1412
|
- spec/services/sufia/batch_create_success_service_spec.rb
|
@@ -1390,7 +1414,6 @@ files:
|
|
1390
1414
|
- spec/services/sufia/import_url_failure_service_spec.rb
|
1391
1415
|
- spec/services/sufia/import_url_success_service_spec.rb
|
1392
1416
|
- spec/services/sufia/query_service_spec.rb
|
1393
|
-
- spec/services/sufia/system_stats_spec.rb
|
1394
1417
|
- spec/spec_helper.rb
|
1395
1418
|
- spec/support/features.rb
|
1396
1419
|
- spec/support/features/session_helpers.rb
|
@@ -1463,10 +1486,6 @@ files:
|
|
1463
1486
|
- vendor/assets/javascripts/fileupload/jquery.iframe-transport.js
|
1464
1487
|
- vendor/assets/javascripts/fileupload/tmpl.js
|
1465
1488
|
- vendor/assets/javascripts/fixedsticky.js
|
1466
|
-
- vendor/assets/javascripts/flot/excanvas.js
|
1467
|
-
- vendor/assets/javascripts/flot/jquery.flot.js
|
1468
|
-
- vendor/assets/javascripts/flot/jquery.flot.selection.js
|
1469
|
-
- vendor/assets/javascripts/flot/jquery.flot.time.js
|
1470
1489
|
- vendor/assets/javascripts/jquery.validate.js
|
1471
1490
|
- vendor/assets/javascripts/nestable.js
|
1472
1491
|
homepage: http://sufia.io/
|
@@ -1666,15 +1685,21 @@ test_files:
|
|
1666
1685
|
- spec/routing/ownership_transfers_route_spec.rb
|
1667
1686
|
- spec/routing/route_spec.rb
|
1668
1687
|
- spec/routing/stats_route_spec.rb
|
1669
|
-
- spec/search_builder/
|
1688
|
+
- spec/search_builder/sufia/catalog_search_builder_spec.rb
|
1689
|
+
- spec/search_builder/sufia/my_shares_search_builder_spec.rb
|
1670
1690
|
- spec/services/collection_member_service_spec.rb
|
1671
1691
|
- spec/services/collection_size_service_spec.rb
|
1672
1692
|
- spec/services/file_set_csv_service_spec.rb
|
1673
1693
|
- spec/services/repository_audit_service_spec.rb
|
1674
|
-
- spec/services/statistics/
|
1675
|
-
- spec/services/statistics/
|
1694
|
+
- spec/services/statistics/collections/over_time_spec.rb
|
1695
|
+
- spec/services/statistics/depositors/summary_spec.rb
|
1696
|
+
- spec/services/statistics/file_sets/by_format_spec.rb
|
1697
|
+
- spec/services/statistics/system_stats_spec.rb
|
1698
|
+
- spec/services/statistics/works/by_depositor_spec.rb
|
1699
|
+
- spec/services/statistics/works/by_resource_type_spec.rb
|
1700
|
+
- spec/services/statistics/works/count_spec.rb
|
1701
|
+
- spec/services/statistics/works/over_time_spec.rb
|
1676
1702
|
- spec/services/sufia/actor_factory_spec.rb
|
1677
|
-
- spec/services/sufia/admin/depositor_stats_spec.rb
|
1678
1703
|
- spec/services/sufia/audit_failure_service_spec.rb
|
1679
1704
|
- spec/services/sufia/batch_create_failure_service_spec.rb
|
1680
1705
|
- spec/services/sufia/batch_create_success_service_spec.rb
|
@@ -1682,7 +1707,6 @@ test_files:
|
|
1682
1707
|
- spec/services/sufia/import_url_failure_service_spec.rb
|
1683
1708
|
- spec/services/sufia/import_url_success_service_spec.rb
|
1684
1709
|
- spec/services/sufia/query_service_spec.rb
|
1685
|
-
- spec/services/sufia/system_stats_spec.rb
|
1686
1710
|
- spec/spec_helper.rb
|
1687
1711
|
- spec/support/features.rb
|
1688
1712
|
- spec/support/features/session_helpers.rb
|
@@ -1,48 +0,0 @@
|
|
1
|
-
# Gather information about the depositors who have contributed to the repository
|
2
|
-
class Sufia::Admin::DepositorStats
|
3
|
-
include Blacklight::SearchHelper
|
4
|
-
|
5
|
-
# @param [String] start_date optionally specify the start date to gather the stats from
|
6
|
-
# @param [String] end_date optionally specify the end date to gather the stats from
|
7
|
-
def initialize(start_date, end_date)
|
8
|
-
@start_dt = Time.zone.parse(start_date) unless start_date.blank?
|
9
|
-
@end_dt = Time.zone.parse(end_date).end_of_day unless end_date.blank?
|
10
|
-
end
|
11
|
-
|
12
|
-
attr_accessor :start_dt, :end_dt
|
13
|
-
|
14
|
-
def depositors
|
15
|
-
# step through the array by twos to get each pair
|
16
|
-
results.map do |key, deposits|
|
17
|
-
user = User.find_by_user_key(key)
|
18
|
-
{ key: key, deposits: deposits, user: user }
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
private
|
23
|
-
|
24
|
-
delegate :blacklight_config, to: CatalogController
|
25
|
-
delegate :depositor_field, to: DepositSearchBuilder
|
26
|
-
|
27
|
-
# results come from Solr in an array where the first item is the user and
|
28
|
-
# the second item is the count
|
29
|
-
# [ abc123, 55, ccczzz, 205 ]
|
30
|
-
# @return [#each] an enumerable object of tuples (user and count)
|
31
|
-
def results
|
32
|
-
facet_results = repository.search(query)
|
33
|
-
facet_results.facet_fields[depositor_field].each_slice(2)
|
34
|
-
end
|
35
|
-
|
36
|
-
def search_builder
|
37
|
-
DepositSearchBuilder.new([:include_depositor_facet], self)
|
38
|
-
end
|
39
|
-
|
40
|
-
# TODO: This can probably be pushed into the DepositSearchBuilder
|
41
|
-
def query
|
42
|
-
search_builder.merge(q: date_query).query
|
43
|
-
end
|
44
|
-
|
45
|
-
def date_query
|
46
|
-
Sufia::QueryService.new.build_date_query(start_dt, end_dt) unless start_dt.blank?
|
47
|
-
end
|
48
|
-
end
|
@@ -1,120 +0,0 @@
|
|
1
|
-
# A class that retrieves system level statistics about the system
|
2
|
-
#
|
3
|
-
# @attr_reader int limit limits the results returned from top_depositors and top_formats
|
4
|
-
# Default is 5, maximum is 20, minimum is 5
|
5
|
-
# @attr_reader int start_date Filters the statistics returned by the class to after the start date
|
6
|
-
# blank means no filter
|
7
|
-
# @attr_reader int end_date Filters the statistics returned by the class to before end date (end of day)
|
8
|
-
# blank means today
|
9
|
-
class Sufia::SystemStats
|
10
|
-
attr_reader :limit, :start_date, :end_date
|
11
|
-
|
12
|
-
# initialize the stats class setting the limitations
|
13
|
-
#
|
14
|
-
# @attr_reader int limit limits the results returned from top_depositors and top_formats
|
15
|
-
# Default is 5, maximum is 20, minimum is 5
|
16
|
-
# @attr_reader int start_date Filters the statistics returned by the class to after the start date
|
17
|
-
# blank means no filter
|
18
|
-
# @attr_reader int end_date Filters the statistics returned by the class to before end date (end of day)
|
19
|
-
# blank means today
|
20
|
-
def initialize(limit_records = 5, start_date_str = nil, end_date_str = nil)
|
21
|
-
@limit = validate_limit(limit_records)
|
22
|
-
@start_date = Time.zone.parse(start_date_str).beginning_of_day unless start_date_str.blank?
|
23
|
-
@end_date = Time.zone.parse(end_date_str).end_of_day unless end_date_str.blank?
|
24
|
-
end
|
25
|
-
|
26
|
-
# returns the total files in the system filtered by the start_date and end_date if present
|
27
|
-
#
|
28
|
-
# @return [Hash] A hash with the total files by permission for the system
|
29
|
-
# @option [Number] :total Total number of files without regard to permissions
|
30
|
-
# @option [Number] :public Total number of files that have public permissions
|
31
|
-
# @option [Number] :registered Total number of files that have registered (logged in) permissions
|
32
|
-
# @option [Number] :private Total number of files that have private permissions
|
33
|
-
def document_by_permission
|
34
|
-
return document_by_date_by_permission if start_date
|
35
|
-
|
36
|
-
files_count = {}
|
37
|
-
files_count[:total] = query_service.count
|
38
|
-
files_count[:public] = query_service.where_public.count
|
39
|
-
files_count[:registered] = query_service.where_registered.count
|
40
|
-
files_count[:private] = files_count[:total] - (files_count[:registered] + files_count[:public])
|
41
|
-
files_count
|
42
|
-
end
|
43
|
-
|
44
|
-
# returns a list (of size limit) of system users (depositors) that have the most deposits in the system
|
45
|
-
# @return [Hash] a hash with the user name as the key and the number of deposits as the value
|
46
|
-
# { 'cam156' => 25, 'hjc14' => 24 ... }
|
47
|
-
def top_depositors
|
48
|
-
top_data(depositor_field, limit)
|
49
|
-
end
|
50
|
-
|
51
|
-
delegate :depositor_field, to: DepositSearchBuilder
|
52
|
-
|
53
|
-
# returns a list (of size limit) of file formats (mime_types) that have the most files in the system
|
54
|
-
# @return [Hash] a hash with the file format as the key and the number of files as the value
|
55
|
-
# { 'png' => 25, 'pdf' => 24 ... }
|
56
|
-
def top_formats
|
57
|
-
format_key = Solrizer.solr_name('file_format', Solrizer::Descriptor.new(:string, :indexed, :multivalued))
|
58
|
-
top_data(format_key, limit)
|
59
|
-
end
|
60
|
-
|
61
|
-
# returns [Array<user>] a list (of size limit) of users most recently registered with the system
|
62
|
-
#
|
63
|
-
def recent_users
|
64
|
-
# no dates return the top few based on limit
|
65
|
-
return ::User.order('created_at DESC').limit(limit) if start_date.blank?
|
66
|
-
|
67
|
-
::User.recent_users start_date, end_date
|
68
|
-
end
|
69
|
-
|
70
|
-
# returns [Number] the number of currently registered users
|
71
|
-
#
|
72
|
-
def users_count
|
73
|
-
::User.count
|
74
|
-
end
|
75
|
-
|
76
|
-
private
|
77
|
-
|
78
|
-
def validate_limit(count)
|
79
|
-
if count.blank? || count < 5
|
80
|
-
5
|
81
|
-
elsif count > 20
|
82
|
-
20
|
83
|
-
else
|
84
|
-
count
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
def document_by_date_by_permission
|
89
|
-
files_count = {}
|
90
|
-
files_count[:total] = query_service.find_by_date_created(start_date, end_date).count
|
91
|
-
files_count[:public] = query_service.find_public_in_date_range(start_date, end_date).count
|
92
|
-
files_count[:registered] = query_service.find_registered_in_date_range(start_date, end_date).count
|
93
|
-
files_count[:private] = files_count[:total] - (files_count[:registered] + files_count[:public])
|
94
|
-
files_count
|
95
|
-
end
|
96
|
-
|
97
|
-
def query_service
|
98
|
-
@query_service ||= Sufia::QueryService.new
|
99
|
-
end
|
100
|
-
|
101
|
-
def solr_connection
|
102
|
-
ActiveFedora::SolrService.instance.conn
|
103
|
-
end
|
104
|
-
|
105
|
-
def top_data(key, limit)
|
106
|
-
# Grab JSON response (looks like {"terms": {"depositor_tesim": {"mjg36": 3}}} for depositor)
|
107
|
-
json = solr_connection.get 'terms', params: { 'terms.fl' => key,
|
108
|
-
'terms.sort' => 'count',
|
109
|
-
'terms.limit' => limit,
|
110
|
-
wt: 'json',
|
111
|
-
'json.nl' => 'map',
|
112
|
-
omitHeader: 'true' }
|
113
|
-
unless json
|
114
|
-
Rails.logger.error "Unable to reach TermsComponent via Solr connection. Is it enabled in your solr config?"
|
115
|
-
return []
|
116
|
-
end
|
117
|
-
|
118
|
-
json['terms'][key]
|
119
|
-
end
|
120
|
-
end
|
@@ -1,8 +0,0 @@
|
|
1
|
-
<h3>File Statistics (<%= @presenter.date_filter_string %>)</h3>
|
2
|
-
<h4>Total Files: <%= @presenter.files_count[:total] %> </h4>
|
3
|
-
<h4>Totals by Visibility</h4>
|
4
|
-
<ul>
|
5
|
-
<li>Open Access <span class="count">(<%= @presenter.files_count[:public] %>)</span></li>
|
6
|
-
<li><%= t("sufia.admin.stats.registered") %> <span class="count">(<%= @presenter.files_count[:registered] %>)</span></li>
|
7
|
-
<li>Private <span class="count">(<%= @presenter.files_count[:private] %>)</span></li>
|
8
|
-
</ul>
|
@@ -1,26 +0,0 @@
|
|
1
|
-
require 'rails/generators'
|
2
|
-
|
3
|
-
class Sufia::FulltextGenerator < Rails::Generators::Base
|
4
|
-
source_root File.expand_path('../templates', __FILE__)
|
5
|
-
|
6
|
-
desc """
|
7
|
-
This generator makes the following changes to your application:
|
8
|
-
1. Copies solrconfig.xml into solr_conf/conf/
|
9
|
-
2. Reconfigures jetty
|
10
|
-
"""
|
11
|
-
|
12
|
-
def banner
|
13
|
-
say_status("info", "GENERATING SUFIA FULL-TEXT", :blue)
|
14
|
-
end
|
15
|
-
|
16
|
-
# Copy Sufia's solrconfig into the dir from which the jetty:config task pulls
|
17
|
-
# Sufia's solrconfig includes full-text extraction
|
18
|
-
def copy_solr_config
|
19
|
-
copy_file 'config/solrconfig.xml', 'solr_conf/conf/solrconfig.xml', force: true
|
20
|
-
end
|
21
|
-
|
22
|
-
# Copy config, schema, and jars into jetty dir if it exists
|
23
|
-
def reconfigure_jetty
|
24
|
-
rake "curation_concerns:jetty:config" if File.directory?('jetty')
|
25
|
-
end
|
26
|
-
end
|