base_editing_bootstrap 2.0.1 → 2.0.2
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/CHANGELOG.md +7 -0
- data/README.md +6 -0
- data/base_editing_bootstrap.gemspec +1 -1
- data/lib/base_editing_bootstrap/VERSION +1 -1
- data/lib/base_editing_bootstrap/searches/base.rb +31 -3
- metadata +2 -8
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6f004a238acce2ed0c9ffa8d95e4d6bb264c700ec80a215d1b6f549580300cc1
|
|
4
|
+
data.tar.gz: 5425f4a870b9d52b5f06364fdb97c4f2992561a4a3165b1959d0cdd60165259b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f105eb6fa77aa2ef3298449106ab2d2c13777f4889db008381755ceb3a8bb99cd5a7d70647988571288db3b23d00db38a35ffdcea21581b393e81fa6bbd0f3b1
|
|
7
|
+
data.tar.gz: 422b293959d2e6f60e8ae57d3dce6e5961c784fe505101c61e770b9c455d9be2f2f6e1209e436e464de75c557b4d19864cf5284fc978430828cdd104a45aee70
|
data/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
All notable changes to this project will be documented in this file. See [conventional commits](https://www.conventionalcommits.org/) for commit guidelines.
|
|
3
3
|
|
|
4
4
|
- - -
|
|
5
|
+
## 2.0.2 - 2026-10-15
|
|
6
|
+
#### Bug Fixes
|
|
7
|
+
- Aggiorna la dipendenza di ransack per supportare versioni maggiori (#31) - (014d9bd) - Marino Bonetti
|
|
8
|
+
- Order by when distinct==true in ransack (#30) - (d86854a) - Marino Bonetti
|
|
9
|
+
|
|
10
|
+
- - -
|
|
11
|
+
|
|
5
12
|
## 2.0.1 - 2026-09-17
|
|
6
13
|
#### Bug Fixes
|
|
7
14
|
- Correzione limitazione numero sub_elements in nested - (7cc9889) - Marino Bonetti
|
data/README.md
CHANGED
|
@@ -431,6 +431,12 @@ docker compose up
|
|
|
431
431
|
./bin/local_ci_matrix.sh
|
|
432
432
|
```
|
|
433
433
|
|
|
434
|
+
### Testare diverse versioni Rails e Ruby
|
|
435
|
+
|
|
436
|
+
```bash
|
|
437
|
+
./bin/local_ci_matrix.sh --rails 8.1 --ruby 4.0 --keep-docker-cache
|
|
438
|
+
```
|
|
439
|
+
|
|
434
440
|
## License
|
|
435
441
|
|
|
436
442
|
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
|
@@ -33,7 +33,7 @@ Gem::Specification.new do |spec|
|
|
|
33
33
|
# Policy
|
|
34
34
|
spec.add_dependency "pundit", ["~> 2.3", ">= 2.3.1"]
|
|
35
35
|
# Search
|
|
36
|
-
spec.add_dependency 'ransack', ['
|
|
36
|
+
spec.add_dependency 'ransack', ['>= 4.0.0']
|
|
37
37
|
# Pagination
|
|
38
38
|
spec.add_dependency 'kaminari', ['~> 1.2', '>= 1.2.2']
|
|
39
39
|
spec.add_dependency 'kaminari-i18n', '~> 0.5'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
2.0.
|
|
1
|
+
2.0.2
|
|
@@ -27,13 +27,41 @@ module BaseEditingBootstrap::Searches
|
|
|
27
27
|
# Risultato della ricerca, fa da pipeline verso ransack
|
|
28
28
|
# Impostando il sort nel caso in cui non sia già stato impostato da ransack
|
|
29
29
|
def results
|
|
30
|
-
ransack_query
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
query = ransack_query
|
|
31
|
+
query.sorts = @sorts if query.sorts.empty?
|
|
32
|
+
|
|
33
|
+
relation = query.result(distinct: @distinct)
|
|
34
|
+
relation = distinct_order_columns(relation, query.sorts) if @distinct && query.sorts.any?
|
|
35
|
+
|
|
36
|
+
relation
|
|
33
37
|
.tap { |q| Rails.logger.debug { "[Ransack] params:#{params} - sql: #{q.to_sql}" } }
|
|
34
38
|
.page(params[:page])
|
|
35
39
|
end
|
|
36
40
|
|
|
41
|
+
# PostgreSQL richiede che le colonne usate nell'ORDER BY siano nel SELECT quando DISTINCT è attivo.
|
|
42
|
+
# Aggiungiamo solo le colonne provenienti dalle join, perché la tabella base è già coperta da `table.*`.
|
|
43
|
+
def distinct_order_columns(relation, sorts)
|
|
44
|
+
order_columns = sorts.filter_map do |sort|
|
|
45
|
+
next unless sort.valid?
|
|
46
|
+
|
|
47
|
+
attribute = sort.attr
|
|
48
|
+
next unless attribute.respond_to?(:relation) && attribute.respond_to?(:name)
|
|
49
|
+
|
|
50
|
+
table_name = attribute.relation.name
|
|
51
|
+
next if table_name.nil? || table_name == model_klass.table_name
|
|
52
|
+
|
|
53
|
+
"#{relation.connection.quote_table_name(table_name)}.#{relation.connection.quote_column_name(attribute.name)}"
|
|
54
|
+
end.uniq
|
|
55
|
+
|
|
56
|
+
return relation if order_columns.empty?
|
|
57
|
+
|
|
58
|
+
relation
|
|
59
|
+
.unscope(:select)
|
|
60
|
+
.select("#{relation.connection.quote_table_name(relation.klass.table_name)}.*", *order_columns)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
private :distinct_order_columns
|
|
64
|
+
|
|
37
65
|
def ransack_query
|
|
38
66
|
scope
|
|
39
67
|
.ransack(params[:q], auth_object: user)
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: base_editing_bootstrap
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.0.
|
|
4
|
+
version: 2.0.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Marino Bonetti
|
|
@@ -53,9 +53,6 @@ dependencies:
|
|
|
53
53
|
name: ransack
|
|
54
54
|
requirement: !ruby/object:Gem::Requirement
|
|
55
55
|
requirements:
|
|
56
|
-
- - "~>"
|
|
57
|
-
- !ruby/object:Gem::Version
|
|
58
|
-
version: '4.0'
|
|
59
56
|
- - ">="
|
|
60
57
|
- !ruby/object:Gem::Version
|
|
61
58
|
version: 4.0.0
|
|
@@ -63,9 +60,6 @@ dependencies:
|
|
|
63
60
|
prerelease: false
|
|
64
61
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
62
|
requirements:
|
|
66
|
-
- - "~>"
|
|
67
|
-
- !ruby/object:Gem::Version
|
|
68
|
-
version: '4.0'
|
|
69
63
|
- - ">="
|
|
70
64
|
- !ruby/object:Gem::Version
|
|
71
65
|
version: 4.0.0
|
|
@@ -457,7 +451,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
457
451
|
- !ruby/object:Gem::Version
|
|
458
452
|
version: '0'
|
|
459
453
|
requirements: []
|
|
460
|
-
rubygems_version:
|
|
454
|
+
rubygems_version: 4.0.20
|
|
461
455
|
specification_version: 4
|
|
462
456
|
summary: 'BaseEditing: funzionalità di base per cms rails'
|
|
463
457
|
test_files: []
|