decidim-decidim_awesome 0.8.1 → 0.8.2

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: a04e8fa0ca3025c7bdd3f21508e1bcf3046546483782fd0f9348f804e6f6b137
4
- data.tar.gz: 400190dfe91cf0bd6e06ec4c58594c11981191a7b8b63d83b6f9e0aee220d61c
3
+ metadata.gz: b4110437605bf9896fee1a5becc6c16f6b91ece51cb3721efe261b7db6c14c88
4
+ data.tar.gz: 7175bbc19bddc7a8fd674a19d340836a13e09afbd64f6256430695fe49460b91
5
5
  SHA512:
6
- metadata.gz: 0e06d6ae9a8698e51dfc11d16349e4c6906c9a8037d6bb53cbf700ed7b39c7550e6ad0c923f9675fd3f2bd28729e22e24dcdcb085a1f168511e41be0f88fee56
7
- data.tar.gz: 769c204652bf08908913b06f834e4eef814b08b07e7c7869f7ea2a2d4741a57a6e86fb8bbf355b2066ecbba32bb7dbda57e57ae614b58b56413ccff95bab778b
6
+ metadata.gz: 3a0aca02ca09a39d27444e9650c804817c47b7fbaf902dc7c0e546b28301705287da973ae72ed7a64a8dfa5d3a84baa039393e4b313e1394ace09cef61d28307
7
+ data.tar.gz: c2e343284fdc6e1062e465ecf88724b86bb6a8e68ab759abc4c23353473cb45ee9a855d3e52431b46ae97f916800eb083f73b2c7073d79c26b317dd6f03fc152
data/README.md CHANGED
@@ -183,7 +183,6 @@ Or check your migration status with:
183
183
  RAILS_ENV=production bin/rails decidim_awesome:active_storage_migrations:check_migration_from_carrierwave
184
184
  ```
185
185
 
186
-
187
186
  The correct version of Decidim Awesome should resolved automatically by the Bundler.
188
187
  However you can force some specific version using `gem "decidim-decidim_awesome", "~> 0.8.0"` in the Gemfile.
189
188
 
@@ -10,6 +10,7 @@ module Decidim
10
10
  include NeedsAwesomeConfig
11
11
  helper ConfigConstraintsHelpers
12
12
  helper SystemCheckerHelpers
13
+ helper CookiesHelper
13
14
 
14
15
  layout "decidim/admin/decidim_awesome"
15
16
 
@@ -24,11 +25,11 @@ module Decidim
24
25
  private
25
26
 
26
27
  def head
27
- @head ||= Nokogiri::HTML(render_to_string(partial: "layouts/decidim/head"))
28
+ @head ||= Nokogiri::HTML(render_template("layouts/decidim/head"))
28
29
  end
29
30
 
30
31
  def admin_head
31
- @admin_head = Nokogiri::HTML(render_to_string(partial: "layouts/decidim/admin/header"))
32
+ @admin_head = Nokogiri::HTML(render_template("layouts/decidim/admin/header"))
32
33
  end
33
34
 
34
35
  def head_addons(part)
@@ -52,6 +53,12 @@ module Decidim
52
53
  '<%= javascript_pack_tag "decidim_decidim_awesome_custom_fields" if awesome_proposal_custom_fields %>'].join("\n")
53
54
  end
54
55
  end
56
+
57
+ def render_template(partial)
58
+ render_to_string(partial: partial)
59
+ rescue ActionView::Template::Error => e
60
+ flash.now[:alert] = "Partial [#{partial}] has thrown an error: #{e.message}"
61
+ end
55
62
  end
56
63
  end
57
64
  end
@@ -8,6 +8,7 @@ export default class Fetcher {
8
8
  };
9
9
  this.onFinished = () => {};
10
10
  this.onNode = () => {};
11
+ this.onCollection = () => {};
11
12
  this.hashtags = [];
12
13
 
13
14
  this.collection = this.controller.component.type;
@@ -43,6 +44,8 @@ export default class Fetcher {
43
44
  }
44
45
  });
45
46
 
47
+ this.onCollection(collection);
48
+
46
49
  if (collection.pageInfo.hasNextPage) {
47
50
  this.fetch(collection.pageInfo.endCursor);
48
51
  } else {
@@ -80,7 +83,7 @@ export default class Fetcher {
80
83
  collectHashtags(text) {
81
84
  let tags = [];
82
85
  if (text) {
83
- const gids = text.match(/gid:\/\/[^\s<]+/g)
86
+ const gids = text.match(/gid:\/\/[^\s<&]+/g)
84
87
  if (gids) {
85
88
  tags = gids.filter((gid) => gid.indexOf("/Decidim::Hashtag/") != -1).map((gid) => {
86
89
  const parts = gid.split("/");
@@ -115,7 +118,7 @@ export default class Fetcher {
115
118
  }
116
119
 
117
120
  removeHashtags(text) {
118
- return text.replace(/gid:\/\/[^\s<]+/g, "");
121
+ return text.replace(/gid:\/\/[^\s<&]+/g, "");
119
122
  }
120
123
 
121
124
  appendHtmlHashtags(text, tags) {
@@ -40,7 +40,6 @@ export default class AwesomeMap {
40
40
  this.cluster = new L.MarkerClusterGroup();
41
41
  this.map.addLayer(this.cluster);
42
42
  this.controls = new ControlsUI(this);
43
- this.allMarkers = [];
44
43
  this.onFinished = () => {};
45
44
  this.controllers = {};
46
45
  this.loading = [];
@@ -10,8 +10,7 @@ export default class Controller {
10
10
  group: new L.FeatureGroup.SubGroup(this.awesomeMap.cluster)
11
11
  };
12
12
  this.onFinished = () => {};
13
- this.allMarkers = [];
14
-
13
+ this.allNodes = [];
15
14
  }
16
15
 
17
16
  getLabel() {
@@ -27,6 +26,21 @@ export default class Controller {
27
26
  // console.log(`all ${this.component.type} loaded`, this)
28
27
  this._onFinished();
29
28
  };
29
+ this.fetcher.onCollection = (collection) => {
30
+ if (collection && collection.edges) {
31
+ // Add markers to the main cluster group
32
+ try {
33
+ this.awesomeMap.cluster.addLayers(collection.edges.map((item) => item.node.marker));
34
+ } catch (e) {
35
+ console.error("Failed marker collection assignation", collection);
36
+ }
37
+ // subgroups don't have th addLayers utility
38
+ collection.edges.forEach((item) => {
39
+ this.addMarkerCategory(item.node.marker, item.node.category);
40
+ this.addMarkerHashtags(item.node.marker, item.node.hashtags);
41
+ });
42
+ }
43
+ };
30
44
  }
31
45
 
32
46
  addControls() {
@@ -40,16 +54,20 @@ export default class Controller {
40
54
 
41
55
  addMarker(marker, node) {
42
56
 
43
- /* theorically, this should be enough to create popups on markers but looks that there is som bug in leaflet that sometimes prevents this to work
44
- let node = document.createElement("div");
45
- // console.log("addMarker", marker, "node", node)
46
- node.innerHTML = $.templates(`#${this.templateId}`).render(node);
47
- marker.bindPopup(node, {
57
+ /*
58
+ theorically, this should be enough to create popups on markers but it looks that
59
+ there is some bug in leaflet that sometimes prevents this to work
60
+ */
61
+ /*
62
+ let dom = document.createElement("div");
63
+ // console.log("addMarker", marker, "dom", dom)
64
+ dom.innerHTML = $.templates(`#${this.templateId}`).render(node);
65
+ marker.bindPopup(dom, {
48
66
  maxwidth: 640,
49
67
  minWidth: 500,
50
68
  keepInView: true,
51
69
  className: "map-info"
52
- }); */
70
+ }); //*/
53
71
 
54
72
  marker.on("click", () => {
55
73
  let dom = document.createElement("div");
@@ -62,40 +80,40 @@ export default class Controller {
62
80
  className: "map-info"
63
81
 
64
82
  }).setLatLng(marker.getLatLng()).setContent(dom);
65
- this.awesomeMap.map.addlayer(pop);
66
- });
67
-
68
- this.controls.group.addLayer(marker);
69
-
70
- this.allMarkers.push({
71
- marker: marker,
72
- component: this.component,
73
- node: node
83
+ this.awesomeMap.map.addLayer(pop);
74
84
  });
75
-
76
- this.addMarkerCategory(marker, node.category);
77
- this.addMarkerHashtags(marker, node.hashtags);
85
+ node.marker = marker;
86
+ node.component = this.component;
87
+ this.allNodes.push(node);
78
88
  }
79
89
 
80
90
  addMarkerCategory(marker, category) {
81
91
  // Add to category layer
82
92
  const cat = this.awesomeMap.getCategory(category);
83
93
  if (this.awesomeMap.layers[cat.id]) {
84
- marker.addTo(this.awesomeMap.layers[cat.id].group);
85
- this.awesomeMap.controls.showCategory(cat);
94
+ try {
95
+ this.awesomeMap.layers[cat.id].group.addLayer(marker);
96
+ this.awesomeMap.controls.showCategory(cat);
97
+ } catch (e) {
98
+ console.error("Failed category marker assignation", marker, e.message);
99
+ }
86
100
  }
87
101
  }
88
102
 
89
103
  addMarkerHashtags(marker, hashtags) {
90
104
  // Add hashtag layer
91
105
  if (this.awesomeMap.config.menu.hashtags) {
92
- this.awesomeMap.controls.addHashtagsControls(hashtags, marker);
106
+ try {
107
+ this.awesomeMap.controls.addHashtagsControls(hashtags, marker);
108
+ } catch (e) {
109
+ console.error("Failed hashtags marker assignation", marker, e.message);
110
+ }
93
111
  }
94
112
  }
95
113
 
96
114
  // Override if needed (call this.onFinished() at the end!)
97
115
  _onFinished() {
98
- this.awesomeMap.controls.updateStats(`component_${this.component.id}`, this.allMarkers.length);
116
+ this.awesomeMap.controls.updateStats(`component_${this.component.id}`, this.allNodes.length);
99
117
  this.onFinished();
100
118
  }
101
119
 
@@ -57,12 +57,12 @@ export default class ProposalsController extends Controller {
57
57
 
58
58
  _onFinished() {
59
59
  const iterableAmendments = Object.entries(this.amendments);
60
- this.awesomeMap.controls.updateStats(`component_${this.component.id}`, this.allMarkers.length - iterableAmendments.length);
60
+ this.awesomeMap.controls.updateStats(`component_${this.component.id}`, this.allNodes.length - iterableAmendments.length);
61
61
  this.awesomeMap.controls.updateStats(`amendments_${this.component.id}`, iterableAmendments.length);
62
62
 
63
63
  // Process all amendments
64
64
  iterableAmendments.forEach((amendment) => {
65
- const marker = this.allMarkers.find((item) => item.node.id == amendment[0]);
65
+ const marker = this.allNodes.find((node) => node.id == amendment[0]);
66
66
  const parent = amendment[1];
67
67
  // console.log("marker", marker, "parent proposal", parent)
68
68
  // add marker to amendments layers and remove it from proposals
@@ -71,7 +71,7 @@ export default class ControlsUI {
71
71
  const label = `<i class="awesome_map-category_${category.id}"></i> ${category.name}`;
72
72
  this.awesomeMap.layers[category.id] = {
73
73
  label: label,
74
- group: L.featureGroup.subGroup(this.awesomeMap.cluster)
74
+ group: new L.FeatureGroup.SubGroup(this.awesomeMap.cluster)
75
75
  };
76
76
  this.awesomeMap.layers[category.id].group.addTo(this.awesomeMap.map);
77
77
  $("#awesome_map-categories-control .categories-container").append(`<label data-layer="${category.id}" class="awesome_map-category-${category.id}${category.parent
@@ -122,12 +122,12 @@ export default class ControlsUI {
122
122
  label: hashtag.name,
123
123
  group: new L.FeatureGroup.SubGroup(this.awesomeMap.cluster)
124
124
  };
125
- this.awesomeMap.layers[hashtag.tag].group.addTo(this.awesomeMap.map);
125
+ this.awesomeMap.map.addLayer(this.awesomeMap.layers[hashtag.tag].group);
126
126
  $("#awesome_map-hashtags-control .hashtags-container").append(`<label data-layer="${hashtag.tag}" class="awesome_map-hashtag-${hashtag.tag}"><input type="checkbox" class="awesome_map-hashtags-selector" checked><span>${hashtag.name}</span></label>`);
127
127
  // Call a trigger, might be in service for customizations
128
128
  this.onHashtag(hashtag, $("#awesome_map-hashtags-control .hashtags-container"));
129
129
  }
130
- marker.addTo(this.awesomeMap.layers[hashtag.tag].group);
130
+ this.awesomeMap.layers[hashtag.tag].group.addLayer(marker);
131
131
 
132
132
  const $label = $(`label.awesome_map-hashtag-${hashtag.tag}`);
133
133
  // update number of items
@@ -84,6 +84,7 @@ export function createQuillEditor(container) {
84
84
  }
85
85
  }
86
86
  };
87
+
87
88
  const $input = $(container).siblings('input[type="hidden"]');
88
89
  container.innerHTML = $input.val() || "";
89
90
  const token = $('meta[name="csrf-token"]').attr("content");
@@ -68,8 +68,9 @@ window.fbControls.push(function(controlClass, allControlClasses) {
68
68
  `,
69
69
  { type: "text/css" }
70
70
  );
71
- // console.log("build value", value, "userData", userData, "attrs", attrs, attrs.id);
72
- this.wrapper = this.markup("div", null, attrs);
71
+ const wrapper_attrs = {...attrs, "data-toolbar": "full" };
72
+ // console.log("build value", value, "userData", userData, "attrs", attrs, attrs.id, "wrapper_attrs", wrapper_attrs);
73
+ this.wrapper = this.markup("div", null, wrapper_attrs);
73
74
  return this.markup("div", [css, this.input, this.wrapper], attrs);
74
75
  }
75
76
 
@@ -56,7 +56,7 @@
56
56
  label {
57
57
  line-height: 1;
58
58
  font-size: .8rem;
59
- margin: 0 0 .5em;
59
+ margin: 0 .5em .5em;
60
60
 
61
61
  i {
62
62
  display: inline-block;
@@ -313,14 +313,16 @@ ca:
313
313
  success: Imatge pujada correctament
314
314
  map_component:
315
315
  map:
316
- api_not_ready: |
316
+ api_not_ready: |2
317
317
  <b>Avís:</b> aquesta instal·lació de Decidim té l'API configurada amb una complexitat màxima de <b>%{current_complexity}</b>.
318
318
  Aquest component probablement no funcionarà amb aquesta configuració. Us recomanem que la configureu en un inicialitzador
319
319
  (per exemple, al final de <code>config/initializers/decidim.rb</code>) hi poseu les línies següents:<br>
320
320
  <br>
321
321
  <pre># Configuració de l'API
322
- Decidim::Api::Schema.max_complexity = 5000
323
- Decidim::Api::Schema.max_depth = 50</pre>
322
+ Rails.application.config.to_prepare do
323
+ Decidim::Api::Schema.max_complexity = 5000
324
+ Decidim::Api::Schema.max_depth = 50
325
+ end</pre>
324
326
  error:
325
327
  unavailable: El mapa no està disponible. SI us plau, configureu la geolocalització en aquesta instal·lació per activar aquest component.
326
328
  show:
@@ -313,14 +313,16 @@ cs:
313
313
  success: Obrázek byl úspěšně nahrán
314
314
  map_component:
315
315
  map:
316
- api_not_ready: |
316
+ api_not_ready: |2
317
317
  <b>Upozornění:</b> Tato instalace Decidim má API nastaveno na maximální složitost <b>%{current_complexity}</b>.
318
318
  Tato komponenta pravděpodobně nebude fungovat v této konfiguraci. Doporučujeme nastavit v inicializátoru
319
319
  (například na konci <code>config/initializers/decidim.rb</code>) následující řádky:<br>
320
320
  <br>
321
321
  <pre># Konfigurace Api
322
- Decidim::Api::Schema.max_complexity = 5000
323
- Decidim::Api::Schema.max_depth = 50</pre>
322
+ Rails.application.config.to_prepare do
323
+ Decidim::Api::Schema.max_complexity = 5000
324
+ Decidim::Api::Schema.max_depth = 50
325
+ end</pre>
324
326
  error:
325
327
  unavailable: Mapa není dostupná. Pro povolení této komponenty nakonfigurujte geocoding.
326
328
  show:
@@ -378,8 +378,10 @@ en:
378
378
  (for instance at the end of the <code>config/initializers/decidim.rb</code>) the following lines:<br>
379
379
  <br>
380
380
  <pre># Api configuration
381
- Decidim::Api::Schema.max_complexity = 5000
382
- Decidim::Api::Schema.max_depth = 50</pre>
381
+ Rails.application.config.to_prepare do
382
+ Decidim::Api::Schema.max_complexity = 5000
383
+ Decidim::Api::Schema.max_depth = 50
384
+ end</pre>
383
385
  error:
384
386
  unavailable: The map is unavailable. Please configure geocoding to enable
385
387
  this component.
@@ -313,14 +313,16 @@ es:
313
313
  success: Imagen subida correctamente
314
314
  map_component:
315
315
  map:
316
- api_not_ready: |
316
+ api_not_ready: |2
317
317
  <b>Advertencia:</b> Esta instalación de Decidim tiene la API configurada a una complejidad máxima de <b>%{current_complexity}</b>.
318
318
  Este componente probablemente no funcione correctament bajo esta configuración. Es recomendado configurar en un inicializador
319
319
  (por ejemplo al final de <code>config/initializers/decidim. b</code>) añadir las siguientes líneas:<br>
320
320
  <br>
321
321
  <pre># Configuración de Api
322
- Decidim::Api::Schema. ax_complexity = 5000
323
- Decidim::Api::Schema.max_depth = 50</pre>
322
+ Rails.application.config.to_prepare do
323
+ Decidim::Api::Schema. ax_complexity = 5000
324
+ Decidim::Api::Schema.max_depth = 50
325
+ end</pre>
324
326
  error:
325
327
  unavailable: El mapa no está disponible. Por favor, configure la geocodificación para habilitar este componente.
326
328
  show:
@@ -313,14 +313,16 @@ fr:
313
313
  success: Image ajoutée avec succès
314
314
  map_component:
315
315
  map:
316
- api_not_ready: |
316
+ api_not_ready: |2
317
317
  <b>Attention :</b> Cette installation de Decidim a l'API configurée à une complexité maximale de <b>%{current_complexity}</b>.
318
318
  Ce composant ne fonctionnera probablement pas avec cette configuration. Nous vous recommandons de configurer dans un initialiseur
319
319
  (par exemple à la fin de <code>config/initializers/decidim.rb</code>) les lignes suivantes :<br>
320
320
  <br>
321
321
  <pre># Configuration Api
322
- Decidim::Api::Schema.max_complexity = 5000
323
- Decidim::Api::Schema.max_depth = 50</pre>
322
+ Rails.application.config.to_prepare do
323
+ Decidim::Api::Schema.max_complexity = 5000
324
+ Decidim::Api::Schema.max_depth = 50
325
+ end</pre>
324
326
  error:
325
327
  unavailable: La carte n'est pas disponible. Veuillez configurer le géocodage pour activer ce composant.
326
328
  show:
@@ -313,14 +313,16 @@ it:
313
313
  success: Immagine caricata correttamente
314
314
  map_component:
315
315
  map:
316
- api_not_ready: |
316
+ api_not_ready: |2
317
317
  <b>Attenzione:</b> Questa installazione di Decidim ha configurato l'API ad una complessità massima di <b>%{current_complexity}</b>.
318
318
  Questo componente probabilmente non funzionerà con questa configurazione, Si consiglia di impostare in un initializer
319
319
  (per esempio alla fine del <code>config/initializers/decidim.rb</code>) con il seguente contenuti:<br>
320
320
  <br>
321
321
  <pre># Configurazione API
322
- Decidim::Api::Schema.max_complexity = 5000
323
- Decidim::Api::Schema.max_depth = 50</pre>
322
+ Rails.application.config.to_prepare do
323
+ Decidim::Api::Schema.max_complexity = 5000
324
+ Decidim::Api::Schema.max_depth = 50
325
+ end</pre>
324
326
  error:
325
327
  unavailable: La mappa non è disponibile. Configura la geocodifica per abilitare questo componente.
326
328
  show:
@@ -314,12 +314,14 @@ ja:
314
314
  success: 画像は正常にアップロードされました
315
315
  map_component:
316
316
  map:
317
- api_not_ready: |
317
+ api_not_ready: |2
318
318
  <b>警告:</b> この Decidim のインストールでは、APIの最大複雑度が <b>%{current_complexity}</b> に設定されています。このコンポーネントは、この設定では動作しないかもしれません。初期化の設定を (例えば<code>config/initializers/decidim.rb</code>の末尾で) 以下のようにすることを推奨します:<br>
319
319
  <br>
320
320
  <pre># Api configuration
321
- Decidim::Api::Schema.max_complexity = 5000
322
- Decidim::Api::Schema.max_depth = 50</pre>
321
+ Rails.application.config.to_prepare do
322
+ Decidim::Api::Schema.max_complexity = 5000
323
+ Decidim::Api::Schema.max_depth = 50
324
+ end</pre>
323
325
  error:
324
326
  unavailable: マップは利用できません。このコンポーネントを有効にするにはジオコーディングを設定してください。
325
327
  show:
@@ -313,14 +313,16 @@ pt-BR:
313
313
  success: Imagem enviada com sucesso
314
314
  map_component:
315
315
  map:
316
- api_not_ready: |
316
+ api_not_ready: |2
317
317
  <b>Aviso:</b> Esta instalação Decidim tem a API configurada para uma complexidade máxima de <b>%{current_complexity}</b>.
318
318
  Este componente provavelmente não funcionará sob esta configuração. Recomendamos que você configure em um inicializador
319
319
  (por exemplo, no final do <code>config/initializers/decidim. b</code>) as seguintes linhas:<br>
320
320
  <br>
321
321
  <pre># Configuração de Api
322
- Decidim::Api::Schema. ax_complexidade = 5000
323
- Decidim::Api::Schema.max_depth = 50</pre>
322
+ Rails.application.config.to_prepare do
323
+ Decidim::Api::Schema. ax_complexidade = 5000
324
+ Decidim::Api::Schema.max_depth = 50
325
+ end</pre>
324
326
  error:
325
327
  unavailable: O mapa está indisponível. Por favor configure a geocodificação para habilitar este componente.
326
328
  show:
@@ -5,7 +5,7 @@ require "decidim/components/namer"
5
5
  Decidim::DecidimAwesome.register_component(:awesome_iframe) do |component|
6
6
  component.engine = Decidim::DecidimAwesome::IframeComponent::Engine
7
7
  component.admin_engine = Decidim::DecidimAwesome::IframeComponent::AdminEngine
8
- component.icon = "decidim/meetings/icon.svg" # TODO: create a Icon
8
+ component.icon = "media/images/decidim_meetings.svg" # TODO: create a Icon
9
9
  component.permissions_class_name = "Decidim::DecidimAwesome::Permissions"
10
10
 
11
11
  # These actions permissions can be configured in the admin panel
@@ -5,7 +5,7 @@ require "decidim/components/namer"
5
5
  Decidim::DecidimAwesome.register_component(:awesome_map) do |component|
6
6
  component.engine = Decidim::DecidimAwesome::MapComponent::Engine
7
7
  component.admin_engine = Decidim::DecidimAwesome::MapComponent::AdminEngine
8
- component.icon = "decidim/meetings/icon.svg" # TODO: create a Icon
8
+ component.icon = "media/images/decidim_meetings.svg" # TODO: create a Icon
9
9
  component.permissions_class_name = "Decidim::DecidimAwesome::Permissions"
10
10
 
11
11
  # These actions permissions can be configured in the admin panel
@@ -3,7 +3,7 @@
3
3
  module Decidim
4
4
  # This holds the decidim-decidim_awesome version.
5
5
  module DecidimAwesome
6
- VERSION = "0.8.1"
6
+ VERSION = "0.8.2"
7
7
  COMPAT_DECIDIM_VERSION = [">= 0.25.0", "< 0.27"].freeze
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decidim-decidim_awesome
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivan Vergés
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-02-22 00:00:00.000000000 Z
11
+ date: 2022-04-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: decidim-admin