From 0e068ded10d4027814377efce898c2ff7886575c Mon Sep 17 00:00:00 2001
From: alexisben <alexiben7@gmail.com>
Date: Thu, 10 Mar 2022 18:46:27 +0100
Subject: [PATCH] Add organization button on partner block

---
 .../blocks/templates/partners/_edit.html.erb  | 24 +++++++++++++++----
 .../templates/partners/_static.html.erb       | 17 +++++++++++++
 2 files changed, 37 insertions(+), 4 deletions(-)

diff --git a/app/views/admin/communication/blocks/templates/partners/_edit.html.erb b/app/views/admin/communication/blocks/templates/partners/_edit.html.erb
index 0f6137b2c..6181ea767 100644
--- a/app/views/admin/communication/blocks/templates/partners/_edit.html.erb
+++ b/app/views/admin/communication/blocks/templates/partners/_edit.html.erb
@@ -1,8 +1,11 @@
-<a  class="<%= button_classes('mb-4') %>"
-    v-on:click="data.elements.push({name: '', url: '', logo: {}})">
+<a  class="<%= button_classes('mb-4 me-1') %>"
+    v-on:click="data.elements.push({name: '', url: '', logo: {}, type:'custom'})">
     <%= t '.add_partner' %>
 </a>
-
+<a  class="<%= button_classes('mb-4') %>"
+    v-on:click="data.elements.push({id:'', type:'organization'})">
+    <%= t '.add_organization' %>
+</a>
 <draggable :list="data.elements" class="list-group" handle=".partnerHandle">
   <div v-for="(partner, index) in data.elements" class="list-group-item">
     <div class="d-flex">
@@ -12,10 +15,23 @@
         </a>
       </div>
       <div class="flex-fill">
-        <div class="row">
+        <div class="row"  v-if="partner.type === 'organization'">
+         <div class="col-lg-4">
+            <select :id="'organization-' + index + '-id'"
+                    class="form-select select"
+                    v-model="partner.id">
+              <option value="" disabled><%= t '.organization_placeholder' %></option>
+              <% current_university.organizations.ordered.each_with_index do |organization, index| %>
+                <option value="<%= organization.id %>"><%= organization.name %></option>
+              <% end %>
+            </select>
+          </div>
+        </div>
+        <div class="row"  v-if="partner.type === 'custom'">
           <div class="col-lg-4">
             <label  class="form-label"
                     :for="'partner-' + index + '-name'"><%= t '.partner_name_label' %></label>
+
             <input class="form-control mb-2"
                   type="text"
                   v-model="partner.name"
diff --git a/app/views/admin/communication/blocks/templates/partners/_static.html.erb b/app/views/admin/communication/blocks/templates/partners/_static.html.erb
index a16a625dd..38daaa3fb 100644
--- a/app/views/admin/communication/blocks/templates/partners/_static.html.erb
+++ b/app/views/admin/communication/blocks/templates/partners/_static.html.erb
@@ -1,9 +1,26 @@
 <% if block.data.has_key?('elements') %>
 <% block.data['elements'].each do |partner| %>
+      <% if partner['type'] == 'organization' %>
+      <% organization = block.university.organizations.find partner['id'] %>
+      <% if organization %>
+      - is_organization: true
+        id: <%= partner['id'] %>
+        name: >
+          <%= prepare_text_for_static organization.name %>
+        <% if organization.url %>
+        url: >-
+          <%= prepare_text_for_static organization.url %>
+        <% end %>
+        <% if organization.logo.attached? %>
+        logo: "<%= organization.logo.blob.id %>"
+        <% end %>
+      <% end %>
+      <% else %>
       - name: >
           <%= prepare_text_for_static partner['name'] %>
         url: >-
           <%= prepare_text_for_static partner['url'] %>
         logo: "<%= prepare_media_for_static partner, 'logo' %>"
+      <% end %>
 <% end %>
 <% end %>
-- 
GitLab