alchemy_cms 6.1.6 → 6.1.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 82d0b26e8224a3bb1da650ec70e232be87c79369b0245fde310c3cd753740aaa
4
- data.tar.gz: b5c4037e32b190ae4516991098c91540c93beab4c246906dbc6d19fa826b768c
3
+ metadata.gz: c206131e66f00492aae9a12eb8529e2eea17003d80ce3e5180d11c582ba792be
4
+ data.tar.gz: 92758271855a8dc77a9a280c19f7f68a15379642e96224508b0b47f977ebc0eb
5
5
  SHA512:
6
- metadata.gz: f89042c022abe8827138c41571b8dfdf83654c0c7159899fc57c622f3a08ad3c5c9b8d17398a6980e0844f2d88de38cd7bb62923b43512674bc5e5cd57caa349
7
- data.tar.gz: 5109000000bdcaadcb08b7173814ff4a5d90aede3bb5787612f6a3604b9c95df089322ac6a761c6bcdbef71c25ad1e077657efbbc79c9e05fd49be68800e9c94
6
+ metadata.gz: 5276f7cd7996f2df21360bc33fe37daa1b3752d45379c784a0713f76406eea4a4de439a26468eec3f5f57462ba6af07b3fbf380021c53dc3bf29e9991bb1f531
7
+ data.tar.gz: f4c3965d47c54c7035531de68c7ae05ac69bb11cb5f402ba00b1716cb59d90cb03bbb29d22efc926b01968e71aeaaf5e802de4f444ca378baed11464f9538c42
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 6.1.7 (2023-07-07)
4
+
5
+ - [6.1] Add task(s) to visualize element and page usage [#2514](https://github.com/AlchemyCMS/alchemy_cms/pull/2514) ([tvdeyen](https://github.com/tvdeyen))
6
+
3
7
  ## 6.1.6 (2023-06-30)
4
8
 
5
9
  - [6.1] Allow to create element with warning in definition [#2508](https://github.com/AlchemyCMS/alchemy_cms/pull/2508) ([tvdeyen](https://github.com/tvdeyen))
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Alchemy
4
+ module Tasks
5
+ module Usage
6
+ extend self
7
+
8
+ def elements_count_by_name
9
+ res = Alchemy::Element.all
10
+ .select("name, COUNT(*) AS count")
11
+ .group(:name)
12
+ .order("count DESC, name ASC")
13
+ .map { |e| {"name" => e.name, "count" => e.count} }
14
+ Alchemy::Element.definitions.reject { |definition| res.map { |e| e["name"] }.include? definition["name"] }.sort_by { |d| d["name"] }.each do |definition|
15
+ res << {"name" => definition["name"], "count" => 0}
16
+ end
17
+ res
18
+ end
19
+
20
+ def pages_count_by_type
21
+ res = Alchemy::Page.all
22
+ .select("page_layout, COUNT(*) AS count")
23
+ .group(:page_layout)
24
+ .order("count DESC, page_layout ASC")
25
+ .map { |p| {"page_layout" => p.page_layout, "count" => p.count} }
26
+ Alchemy::PageLayout.all.reject { |page_layout| res.map { |p| p["page_layout"] }.include? page_layout["name"] }.sort_by { |d| d["name"] }.each do |page_layout|
27
+ res << {"page_layout" => page_layout["name"], "count" => 0}
28
+ end
29
+ res
30
+ end
31
+ end
32
+ end
33
+ end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Alchemy
4
- VERSION = "6.1.6"
4
+ VERSION = "6.1.7"
5
5
 
6
6
  def self.version
7
7
  VERSION
@@ -0,0 +1,40 @@
1
+ require "alchemy/tasks/usage"
2
+
3
+ namespace :alchemy do
4
+ desc "List Alchemy elements and pages usage"
5
+ task usage: [:page_usage, :element_usage]
6
+
7
+ desc "List Alchemy elements usage"
8
+ task page_usage: :environment do
9
+ include ActionView::Helpers::NumberHelper
10
+ puts "\n Alchemy pages usage"
11
+ results = Alchemy::Tasks::Usage.pages_count_by_type
12
+ if results.any?
13
+ puts " ----------------------"
14
+ puts "\n"
15
+ results.each do |row|
16
+ puts " #{number_with_delimiter(row["count"])} 𝗑 #{row["page_layout"]}"
17
+ end
18
+ puts "\n = #{number_with_delimiter(Alchemy::Page.count)} pages in total."
19
+ else
20
+ puts " > No pages found!"
21
+ end
22
+ end
23
+
24
+ desc "List Alchemy elements usage"
25
+ task element_usage: :environment do
26
+ include ActionView::Helpers::NumberHelper
27
+ puts "\n Alchemy elements usage"
28
+ results = Alchemy::Tasks::Usage.elements_count_by_name
29
+ if results.any?
30
+ puts " ----------------------"
31
+ puts "\n"
32
+ results.each do |row|
33
+ puts " #{number_with_delimiter(row["count"])} 𝗑 #{row["name"]}"
34
+ end
35
+ puts "\n = #{number_with_delimiter(Alchemy::Element.count)} elements in total."
36
+ else
37
+ puts " > No elements found!"
38
+ end
39
+ end
40
+ end
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alchemy_cms/admin",
3
- "version": "6.1.6",
3
+ "version": "6.1.7",
4
4
  "description": "AlchemyCMS",
5
5
  "browser": "package/admin.js",
6
6
  "files": [
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alchemy_cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.1.6
4
+ version: 6.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas von Deyen
@@ -13,7 +13,7 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2023-06-30 00:00:00.000000000 Z
16
+ date: 2023-07-07 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: actionmailer
@@ -1333,6 +1333,7 @@ files:
1333
1333
  - lib/alchemy/shell.rb
1334
1334
  - lib/alchemy/taggable.rb
1335
1335
  - lib/alchemy/tasks/tidy.rb
1336
+ - lib/alchemy/tasks/usage.rb
1336
1337
  - lib/alchemy/test_support.rb
1337
1338
  - lib/alchemy/test_support/config_stubbing.rb
1338
1339
  - lib/alchemy/test_support/essence_shared_examples.rb
@@ -1425,6 +1426,7 @@ files:
1425
1426
  - lib/tasks/alchemy/thumbnails.rake
1426
1427
  - lib/tasks/alchemy/tidy.rake
1427
1428
  - lib/tasks/alchemy/upgrade.rake
1429
+ - lib/tasks/alchemy/usage.rake
1428
1430
  - package.json
1429
1431
  - package/admin.js
1430
1432
  - package/src/__tests__/i18n.spec.js
@@ -1526,7 +1528,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1526
1528
  version: '0'
1527
1529
  requirements:
1528
1530
  - ImageMagick (libmagick), v6.6 or greater.
1529
- rubygems_version: 3.4.12
1531
+ rubygems_version: 3.4.15
1530
1532
  signing_key:
1531
1533
  specification_version: 4
1532
1534
  summary: A powerful, userfriendly and flexible CMS for Rails