From 393715202b3b47c90e90c7e9344c2dd3b919661d Mon Sep 17 00:00:00 2001
From: alexisben <alexiben7@gmail.com>
Date: Wed, 20 Apr 2022 15:54:34 +0200
Subject: [PATCH] Add default data in block models

---
 app/models/communication/block/template.rb         | 8 ++++----
 app/models/communication/block/template/post.rb    | 4 ++++
 app/views/admin/communication/blocks/edit.html.erb | 6 ++----
 3 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/app/models/communication/block/template.rb b/app/models/communication/block/template.rb
index b759d8326..6dc4ebc60 100644
--- a/app/models/communication/block/template.rb
+++ b/app/models/communication/block/template.rb
@@ -18,6 +18,10 @@ class Communication::Block::Template
     []
   end
 
+  def data
+    block.data || {elements: []}
+  end
+
   protected
 
   def build_git_dependencies
@@ -37,10 +41,6 @@ class Communication::Block::Template
     university.active_storage_blobs.find id
   end
 
-  def data
-    block.data || {}
-  end
-
   def elements
     data.has_key?('elements') ? data['elements']
                               : []
diff --git a/app/models/communication/block/template/post.rb b/app/models/communication/block/template/post.rb
index 560150c7d..4e9713be5 100644
--- a/app/models/communication/block/template/post.rb
+++ b/app/models/communication/block/template/post.rb
@@ -11,6 +11,10 @@ class Communication::Block::Template::Post < Communication::Block::Template
     end
   end
 
+  def data
+    @data = block.data || { elements:[], category_id: "all", posts_quantity: 3 }
+  end
+
   def category
     @category ||= block.about&.website.categories.find_by(id: data['category_id'])
   end
diff --git a/app/views/admin/communication/blocks/edit.html.erb b/app/views/admin/communication/blocks/edit.html.erb
index ea57a1e44..1ebecbd8c 100644
--- a/app/views/admin/communication/blocks/edit.html.erb
+++ b/app/views/admin/communication/blocks/edit.html.erb
@@ -1,8 +1,6 @@
 <% content_for :title, @block %>
 <%
-@block.data = {} if @block.data.nil? || @block.data.blank?
-# Default elements array to move outside : it is only required when block type has an elements list
-@block.data['elements'] ||= []
+@block.template.data = {} if @block.template.data.nil? || @block.template.data.blank?
 %>
 <div id="app" v-cloak>
   <div class="spinner-border text-primary" role="status">
@@ -38,7 +36,7 @@
           url: "<%= rails_direct_uploads_url.html_safe %>",
           blobUrlTemplate: "<%= rails_service_blob_url(":signed_id", ":filename").html_safe %>"
         },
-        data: <%= @block.data.to_json.html_safe %>
+        data: <%= @block.template.data.to_json.html_safe %>
       }
     },
     methods: {
-- 
GitLab