Class: Decidim::Maintenance::ImportModels::Area
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- Decidim::Maintenance::ImportModels::Area
- Defined in:
- decidim-core/lib/decidim/maintenance/import_models/area.rb
Class Method Summary collapse
- .all_filters ⇒ Object
- .all_taxonomies ⇒ Object
- .areas_with_type ⇒ Object
- .filter_item_for_space_manifest(participatory_space_manifests) ⇒ Object
- .plain_areas ⇒ Object
- .root_taxonomy_name ⇒ Object
Instance Method Summary collapse
Class Method Details
.all_filters ⇒ Object
73 74 75 76 77 78 |
# File 'decidim-core/lib/decidim/maintenance/import_models/area.rb', line 73 def self.all_filters manifests = Area.participatory_space_classes.map do |space_class| space_class.to_s.split("::").last.underscore.pluralize end [filter_item_for_space_manifest(manifests)] end |
.all_taxonomies ⇒ Object
69 70 71 |
# File 'decidim-core/lib/decidim/maintenance/import_models/area.rb', line 69 def self.all_taxonomies plain_areas.merge(areas_with_type) end |
.areas_with_type ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'decidim-core/lib/decidim/maintenance/import_models/area.rb', line 55 def self.areas_with_type AreaType.with(organization).all_in_org.to_h do |type| [ type.plural[I18n.locale.to_s], { name: type.plural, origin: type.to_global_id.to_s, children: type.areas.to_h { |area| [area.name[I18n.locale.to_s], area.taxonomies] }, resources: {} } ] end end |
.filter_item_for_space_manifest(participatory_space_manifests) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'decidim-core/lib/decidim/maintenance/import_models/area.rb', line 31 def self.filter_item_for_space_manifest(participatory_space_manifests) items = all_in_org.map do |area| if area.area_type [ area.area_type.name[I18n.locale.to_s], area.name[I18n.locale.to_s] ] else [area.name[I18n.locale.to_s]] end end { participatory_space_manifests:, name: root_taxonomy_name, items:, components: [] } end |
.plain_areas ⇒ Object
51 52 53 |
# File 'decidim-core/lib/decidim/maintenance/import_models/area.rb', line 51 def self.plain_areas all_in_org.where(area_type_id: nil).to_h { |area| [area.name[I18n.locale.to_s], area.taxonomies] } end |
.root_taxonomy_name ⇒ Object
13 |
# File 'decidim-core/lib/decidim/maintenance/import_models/area.rb', line 13 def self.root_taxonomy_name = "~ #{I18n.t("decidim.admin.titles.areas")}" |
Instance Method Details
#resources ⇒ Object
15 16 17 18 19 20 |
# File 'decidim-core/lib/decidim/maintenance/import_models/area.rb', line 15 def resources Area.resource_classes.each_with_object({}) do |klass, hash| items = klass.where(decidim_area_id: id) hash.merge!(items.to_h { |resource| [resource.to_global_id.to_s, resource_name(resource)] }) end end |
#taxonomies ⇒ Object
22 23 24 25 26 27 28 29 |
# File 'decidim-core/lib/decidim/maintenance/import_models/area.rb', line 22 def taxonomies { name:, origin: to_global_id.to_s, children: {}, resources: } end |