Skip to content

Commit

Permalink
Desembolsos pasa de query+cocoon a turbo. Closes https://gitlab.com/p…
Browse files Browse the repository at this point in the history
  • Loading branch information
vtamara committed Jan 10, 2025
1 parent d30e589 commit 9a31c38
Show file tree
Hide file tree
Showing 9 changed files with 141 additions and 47 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# frozen_string_literal: true

require "cor1440_gen/concerns/controllers/desembolsos_proyectofinanciero_controller"

module Cor1440Gen
class DesembolsosProyectofinancieroController < ApplicationController
load_and_authorize_resource class: Desembolso
before_action :prepara_desembolso_proyectofinanciero

include Cor1440Gen::Concerns::Controllers::DesembolsosProyectofinancieroController
end
end
15 changes: 11 additions & 4 deletions app/models/cor1440_gen/ability.rb
Original file line number Diff line number Diff line change
Expand Up @@ -220,9 +220,12 @@ def self.initialize_cor1440_gen(habilidad, usuario = nil)
case usuario.rol
when ROLOPERADOR

habilidad.can(:manage, Cor1440Gen::Actividadpf)
habilidad.can :manage, Cor1440Gen::Asistencia
habilidad.can(:manage, Cor1440Gen::ProyectofinancieroUsuario)
habilidad.can(:manage, [
Cor1440Gen::Actividadpf,
Cor1440Gen::Asistencia,
Cor1440Gen::DesembolosProyectofinanciero,
Cor1440Gen::ProyectofinancieroUsuario
])
presponsable = Cor1440Gen::Proyectofinanciero.where(
responsable_id: usuario.id,
).map(&:id)
Expand Down Expand Up @@ -259,7 +262,10 @@ def self.initialize_cor1440_gen(habilidad, usuario = nil)
id: penequipo,
)

habilidad.can(:read, Cor1440Gen::ProyectofinancieroUsuario)
habilidad.can(:read, [
Cor1440Gen::Desembolso,
Cor1440Gen::ProyectofinancieroUsuario,
])
habilidad.can(
:manage,
Cor1440Gen::Actividad,
Expand Down Expand Up @@ -296,6 +302,7 @@ def self.initialize_cor1440_gen(habilidad, usuario = nil)
Cor1440Gen::Actividad,
Cor1440Gen::Asistencia,
Cor1440Gen::Actividadpf,
Cor1440Gen::Desembolso,
Cor1440Gen::Efecto,
Cor1440Gen::Financiador,
Cor1440Gen::FormularioTipoindicador,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<%= simple_form_for @proyectofinanciero do |f| %>
<%= f.simple_fields_for :desembolso,
child_index: params[:index] do |subf| %>
<%= turbo_stream.replace "agregar-desembolso-proyectofinanciero" do %>
<%= f.submit "Agregar Desembolso",
class: "btn btn-sm btn-primary",
data: {
disable_with: false
},
formaction: cor1440_gen.crear_desembolso_proyectofinanciero_path(
subf.index.to_i + 1
),
formmethod: :post,
formnovalidate: true,
id: "agregar-desembolso-proyectofinanciero",
name: "agregar-desembolso-proyectofinanciero" %>
<% end %>
<%= turbo_stream.append "desembolsos_proyectofinanciero_marco" do %>
<%= render "/cor1440_gen/proyectosfinancieros/desembolso_campos", f: subf %>
<% end %>
<% end %>
<% end %>
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<%= fields model: @proyectofinanciero do |f| %>
<%= f.simple_fields_for :desembolso,
child_index: params[:index] do |subf| %>
<%= turbo_frame_tag "desembolso_proyectofinanciero_#{subf.index}" do %>
<%= subf.hidden_field :id, value: params[:id] %>
<%= subf.hidden_field :_destroy, value: true %>
<% end %>
<% end %>
<% end %>
Original file line number Diff line number Diff line change
@@ -1,21 +1,27 @@
<tr class='nested-fields'>
<td>
<%= f.input :detalle, label: false, as: :text, input_html: { rows: 2 } %>
</td>
<td>
<%= turbo_frame_tag "desembolso_proyectofinanciero_#{f.index}", class: 'div-tabla-fila nested-fields' do %>
<div class="div-tabla-celda">
<%= f.input :detalle, label: false, as: :text, input_html: { rows: 2 } %>
</div>
<div class="div-tabla-celda">
<%= f.input :fecha, label: false,
input_html: { type: "date" },
as: :string
%>
</td>
<td>
as: :string %>
</div>
<div class="div-tabla-celda">
<%= f.input :valorpesos_localizado, label: false %>
</td>
<td>
<%= f.input :id, as: :hidden %>
<%= link_to_remove_association "Eliminar", f,
class: 'btn btn-sm btn-danger'
%>
<div><%= f.error_notification %></div>
</td>
</tr>
</div>
<div class="div-tabla-celda">
<%= f.input :id, as: :hidden %>
<%= f.submit "Eliminar",
class: 'btn btn-sm btn-danger',
data: {
turbo_frame: "desembolso_proyectofinanciero_#{f.index}",
disable_with: false
},
formaction: eliminar_desembolso_proyectofinanciero_path(
id: f.object.id, index: f.index
),
formmethod: :delete,
formnovalidate: true %>
</div>
<% end %>
Original file line number Diff line number Diff line change
Expand Up @@ -144,29 +144,29 @@
</div>
</div>


<table border=1 width="100%">
<thead>
<tr>
<th><%= t('Detalle') %></th>
<th><%= t('Fecha') %></th>
<th><%= t('Valor en pesos') %></th>
<th></th>
</tr>
</thead>
<tbody id="desembolso">
<div class="div-tabla">
<div id="desembolsos_proyectofinanciero_marco" class="div-tabla-cuerpo">
<div class="div-tabla-fila">
<div class="div-tabla-celda-encabezado"><%= t('Detalle') %></div>
<div class="div-tabla-celda-encabezado"><%= t('Fecha') %></div>
<div class="div-tabla-celda-encabezado"><%= t('Valor en pesos') %></div>
</div>
<%= f.simple_fields_for :desembolso do |d| %>
<%= render 'desembolso_campos', :f => d %>
<%= render partial: 'desembolso_campos', locals: {f: d} %>
<% end %>
</tbody>
</table>
<div class="links">
<%= link_to_add_association t('Añadir desembolso'), f,
:desembolso,
:"data-association-insertion-node" => "tbody#desembolso",
:"data-association-insertion-method" => "append",
partial: 'desembolso_campos',
:class => 'btn btn-sm btn-primary'
%>
</div>
</div>

<div class="enlace-agregar-desembolso">
<%= f.submit "Agregar Desembolso",
class: 'btn btn-sm btn-primary',
data: {
disable_with: false
},
formaction: cor1440_gen.crear_desembolso_proyectofinanciero_path(
index: @registro.desembolso.size
),
formmethod: :post,
formnovalidate: true,
id: "agregar-desembolso-proyectofinanciero",
name: "agregar-desembolso-proyectofinanciero" %>
</div>
11 changes: 10 additions & 1 deletion config/routes.rb
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -103,12 +103,21 @@

resources :objetivopf_proyectofinanciero, only: [], param: :index do
member do
delete '(:id)', to: "objetivospf_proyectofinanciero#destroy",
delete '(:id)', to: "objetivospf_proyectofinanciero#destroy",
as: "eliminar"
post '/' => "objetivospf_proyectofinanciero#create", as: "crear"
end
end

resources :desembolso_proyectofinanciero, only: [], param: :index do
member do
delete '(:id)', to: "desembolsos_proyectofinanciero#destroy",
as: "eliminar"
post '/' => "desembolsos_proyectofinanciero#create", as: "crear"
end
end


resources :proyectofinanciero_usuario, only: [], param: :index do
member do
delete '(:id)', to: "proyectofinanciero_usuarios#destroy",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
module Cor1440Gen
module Concerns
module Controllers
module DesembolsosProyectofinancieroController
extend ActiveSupport::Concern

included do
def destroy
end

def create
end

private

def prepara_desembolso_proyectofinanciero
@proyectofinanciero = Cor1440Gen::Proyectofinanciero.new(
desembolso: [
Cor1440Gen::Desembolso.new
]
)
end

end # included

end
end
end
end

Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,6 @@ class ActividadesControllerTest < ActionDispatch::IntegrationTest
get edit_actividad_url(@actividad)
assert_response :success

np = Msip::Persona.count
post cor1440_gen.crear_asistencia_path(0, format: :turbo_stream)
assert_response :success
#assert_equal (np+1), Msip::Persona.count
Expand Down

0 comments on commit 9a31c38

Please sign in to comment.