Skip to content

Commit

Permalink
Cambia a turbo y mejora validaciones. Closes https://gitlab.com/pasos…
Browse files Browse the repository at this point in the history
  • Loading branch information
vtamara committed Jan 8, 2025
1 parent 981925e commit 6d8ddd5
Show file tree
Hide file tree
Showing 13 changed files with 347 additions and 223 deletions.
8 changes: 4 additions & 4 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ GIT

GIT
remote: https://gitlab.com/pasosdeJesus/heb412_gen.git
revision: 748946825441b99c9fe934f6131fd1f381fcd813
revision: bbfaad4d70adeb6eeb3eb02cf482701974bf4ac9
branch: main
specs:
heb412_gen (2.3.0.alfa3)
Expand All @@ -29,7 +29,7 @@ GIT

GIT
remote: https://gitlab.com/pasosdeJesus/mr519_gen.git
revision: 32883e2d347e37b5496422353ee78fa6de13803f
revision: 154f532bf7a932dc492f9a99465fbad1079d303b
branch: main
specs:
mr519_gen (2.3.0.alfa3)
Expand All @@ -38,7 +38,7 @@ GIT

GIT
remote: https://gitlab.com/pasosdeJesus/msip.git
revision: 0136dd131717e22a6c5e9d027e38e8ffcea55e5e
revision: 08d275ebea019da674b2b4e049bd4890784de702
branch: main
specs:
msip (2.3.0.alfa3)
Expand Down Expand Up @@ -415,7 +415,7 @@ GEM
ruby-graphviz (1.2.5)
rexml
ruby-progressbar (1.13.0)
rubyzip (2.3.2)
rubyzip (2.4)
sassc (2.4.0)
ffi (~> 1.9)
sassc-rails (2.1.2)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# frozen_string_literal: true

require "cor1440_gen/concerns/controllers/proyectofinanciero_usuarios_controller"

module Cor1440Gen
class ProyectofinancieroUsuariosController < ApplicationController
load_and_authorize_resource class: ProyectofinancieroUsuario
before_action :prepara_proyectofinanciero_usuario

include Cor1440Gen::Concerns::Controllers::ProyectofinancieroUsuariosController
end
end
3 changes: 3 additions & 0 deletions app/models/cor1440_gen/ability.rb
Original file line number Diff line number Diff line change
Expand Up @@ -222,6 +222,7 @@ def self.initialize_cor1440_gen(habilidad, usuario = nil)

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

habilidad.can(:read, Cor1440Gen::ProyectofinancieroUsuario)
habilidad.can(
:manage,
Cor1440Gen::Actividad,
Expand Down Expand Up @@ -302,6 +304,7 @@ def self.initialize_cor1440_gen(habilidad, usuario = nil)
Cor1440Gen::Mindicadorpf,
Cor1440Gen::Objetivopf,
Cor1440Gen::Proyectofinanciero,
Cor1440Gen::ProyectofinancieroUsuario,
Cor1440Gen::Resultadopf,
Cor1440Gen::Tipoindicador,

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<%= simple_form_for @proyectofinanciero do |f| %>
<%= f.simple_fields_for :proyectofinanciero_usuario,
child_index: params[:index] do |subf| %>
<%= turbo_stream.replace "agregar-proyectofinanciero-usuario" do %>
<%= f.submit "Agregar funcionario",
class: 'btn btn-sm btn-primary',
data: {
disable_with: false
},
formaction: cor1440_gen.crear_proyectofinanciero_usuario_path(
index: subf.index.to_i + 1
),
formmethod: :post,
formnovalidate: true,
id: "agregar-proyectofinanciero-usuario",
name: "agregar-proyectofinanciero-usuario"
%>
<% end %>

<%= turbo_stream.append "proyectofinanciero_usuarios_marco" do %>
<%= render "/cor1440_gen/proyectosfinancieros/proyectofinanciero_usuario_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 :proyectofinanciero_usuario,
child_index: params[:index] do |subf| %>
<%= turbo_frame_tag "proyectofinanciero_usuario_#{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,24 +1,27 @@
<p>
<%= t('Equipo de trabajo') %>:
<table class='table table-bordered' border=1 width="100%">
<thead>
<tr>
<th><%= t('Persona') %></th>
<th><%= t('Acciones') %></th>
</tr>
</thead>
<tbody id="proyectofinanciero_usuario">
<div class="div-tabla">
<div id="proyectofinanciero_usuarios_marco" class="div-tabla-cuerpo">
<div class="div-tabla-fila">
<div class="div-tabla-celda-encabezado"><%= t('Persona') %></div>
<div class="div-tabla-celda-encabezado"><%= t('Acciones') %></div>
</div>
<%= f.simple_fields_for :proyectofinanciero_usuario do |pu| %>
<%= render 'proyectofinanciero_usuario_campos', :f => pu%>
<%= render 'proyectofinanciero_usuario_campos', :f => pu %>
<% end %>
</tbody>
</table>
<div class="links">
<%= link_to_add_association t('Añadir funcionario'), f,
:proyectofinanciero_usuario,
:"data-association-insertion-node" => "tbody#proyectofinanciero_usuario",
:"data-association-insertion-method" => "append",
partial: 'proyectofinanciero_usuario_campos',
:class => 'btn btn-sm btn-primary'
%>
</div>
</div>
<div class="enlace-agregar-usuarios">
<%= f.submit "Agregar funcionario",
class: 'btn btn-sm btn-primary',
data: {
disable_with: false
},
formaction: cor1440_gen.crear_proyectofinanciero_usuario_path(
index: @registro.proyectofinanciero_usuario.size
),
formmethod: :post,
formnovalidate: true,
id: "agregar-proyectofinanciero-usuario",
name: "agregar-proyectofinanciero-usuario" %>
</div>
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<tr class='nested-fields'>
<td>
<%= turbo_frame_tag "proyectofinanciero_usuario_#{f.index}",
class: 'div-tabla-fila nested-fields' do %>
<div class="div-tabla-celda">
<% col = Msip::ModeloHelper.opciones_tabla_basica(::Usuario, f, :usuario) %>
<%= f.association :usuario,
collection: col,
Expand All @@ -8,12 +9,20 @@
value_method: :id,
include_blank: "POR CONTRATAR",
input_html: { class: 'tom-select' } %>
</td>
<td>
</div>
<div class="div-tabla-celda">
<%= f.input :id, as: :hidden %>
<%= link_to_remove_association "Eliminar", f,
:class => 'btn btn-sm btn-danger'
%>
<%= f.submit "Eliminar",
class: 'btn btn-sm btn-danger',
data: {
turbo_frame: "proyectofinanciero_usuario_#{f.index}",
disable_with: false
},
formaction: cor1440_gen.eliminar_proyectofinanciero_usuario_path(
id: f.object.id, index: f.index
),
formmethod: :delete,
formnovalidate: true %>
<div><%= f.error_notification %></div>
</td>
</tr>
</div>
<% end %>
9 changes: 8 additions & 1 deletion config/routes.rb
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,6 @@
end
end


resources :objetivopf_proyectofinanciero, only: [], param: :index do
member do
delete '(:id)', to: "objetivospf_proyectofinanciero#destroy",
Expand All @@ -110,6 +109,14 @@
end
end

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

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

included do
def destroy
end

def create
end

private

def prepara_proyectofinanciero_usuario
@proyectofinanciero = Cor1440Gen::Proyectofinanciero.new(
proyectofinanciero_usuario: [
Cor1440Gen::ProyectofinancieroUsuario.new
]
)
end

end # included

end
end
end
end

Original file line number Diff line number Diff line change
Expand Up @@ -369,12 +369,13 @@ def copia
# (cuando había un usuario del equipo de trabajo 2 veces
# y se eliminaba el segundo, seguía presentando error de validación).
def validaciones(registro)
@validaciones_error = ""
return true
@validaciones_error = "".dup
fus = []
if params && params[:proyectofinanciero] && params[:proyectofinanciero][:proyectofinanciero_usuario_attributes]
params[:proyectofinanciero][:proyectofinanciero_usuario_attributes].each do |_l, v|
if v[:_destroy] != "true" && v[:_destroy] != "1"
if fus.include?(v[:usuario_id].to_i)
if v[:usuario_id] != "" && fus.include?(v[:usuario_id].to_i)
@validaciones_error << "El usuario "\
"#{::Usuario.find(v[:usuario_id].to_i).nusuario} "\
"está repetido en el equipo de trabajo"
Expand All @@ -384,6 +385,9 @@ def validaciones(registro)
end
end
end
if @validaciones_error != ""
flash[:error] = @validaciones_error
end
@validaciones_error == ""
end

Expand Down
Loading

0 comments on commit 6d8ddd5

Please sign in to comment.