diff --git a/app/controllers/cor1440_gen/actividad_proyectosfinancieros_controller.rb b/app/controllers/cor1440_gen/actividad_proyectosfinancieros_controller.rb
new file mode 100644
index 00000000..66c006e9
--- /dev/null
+++ b/app/controllers/cor1440_gen/actividad_proyectosfinancieros_controller.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+require "cor1440_gen/concerns/controllers/actividad_proyectosfinancieros_controller"
+
+module Cor1440Gen
+ class ActividadProyectosfinancierosController < ApplicationController
+ load_and_authorize_resource class: ActividadProyectofinanciero
+
+ include Cor1440Gen::Concerns::Controllers::ActividadProyectosfinancierosController
+ end
+end
diff --git a/app/models/cor1440_gen/ability.rb b/app/models/cor1440_gen/ability.rb
index 3e2bda3d..c0a8dc41 100644
--- a/app/models/cor1440_gen/ability.rb
+++ b/app/models/cor1440_gen/ability.rb
@@ -202,6 +202,7 @@ def self.initialize_cor1440_gen(habilidad, usuario = nil)
end
habilidad.can([:nuevo, :new], Cor1440Gen::Actividad)
+ habilidad.can(:manage, Cor1440Gen::ActividadProyectofinanciero)
habilidad.can([:nuevo, :new], Cor1440Gen::Actividadpf)
habilidad.can(:read, Cor1440Gen::Rangoedadac)
@@ -222,6 +223,7 @@ def self.initialize_cor1440_gen(habilidad, usuario = nil)
habilidad.can(:manage, [
Cor1440Gen::Actividadpf,
+ Cor1440Gen::ActividadpfProoyectofinanciero,
Cor1440Gen::AnexoProyectofinanciero,
Cor1440Gen::Asistencia,
Cor1440Gen::Desembolso,
@@ -283,7 +285,10 @@ def self.initialize_cor1440_gen(habilidad, usuario = nil)
Cor1440Gen::Actividad,
actividad_proyectofinanciero: { proyectofinanciero_id: penequipo },
)
- habilidad.can :manage, Cor1440Gen::Asistencia
+ habilidad.can :manage, [
+ Cor1440Gen::ActividadProyectofinanciero,
+ Cor1440Gen::Asistencia,
+ ]
# Responsable de un proyecto puede eliminar y editar actividades
# del mismo
@@ -292,6 +297,7 @@ def self.initialize_cor1440_gen(habilidad, usuario = nil)
Cor1440Gen::Actividad,
actividad_proyectofinanciero: { proyectofinanciero_id: presponsable },
)
+ habilidad.can(:manage, Cor1440Gen::ActividadProyectofinanciero)
habilidad.can(:read, Cor1440Gen::Efecto)
habilidad.can(:read, Cor1440Gen::FormularioTipoindicador)
@@ -307,6 +313,7 @@ def self.initialize_cor1440_gen(habilidad, usuario = nil)
habilidad.can(:manage, [
Cor1440Gen::Pmindicadorpf,
Cor1440Gen::Actividad,
+ Cor1440Gen::ActividadProyectofinanciero,
Cor1440Gen::AnexoProyectofinanciero,
Cor1440Gen::Asistencia,
Cor1440Gen::Actividadpf,
diff --git a/app/views/cor1440_gen/actividad_proyectosfinancieros/create.turbo_stream.erb b/app/views/cor1440_gen/actividad_proyectosfinancieros/create.turbo_stream.erb
new file mode 100644
index 00000000..5e803b46
--- /dev/null
+++ b/app/views/cor1440_gen/actividad_proyectosfinancieros/create.turbo_stream.erb
@@ -0,0 +1,25 @@
+<%= simple_form_for @actividad do |f| %>
+ <%= f.simple_fields_for :actividad_proyectofinanciero,
+ child_index: params[:index] do |subf| %>
+ <%= turbo_stream.replace "agregar-actividad-proyectofinanciero" do %>
+ <%= f.submit "#{t('Agregar')} " +
+ "#{@actividad.class.human_attribute_name(:proyectofinanciero)}",
+ class: 'btn btn-sm btn-primary',
+ data: {
+ disable_with: false
+ },
+ formaction: cor1440_gen.crear_actividad_proyectofinanciero_path(
+ index: subf.index.to_i + 1
+ ),
+ formmethod: :post,
+ formnovalidate: true,
+ id: "agregar-actividad-proyectofinanciero"
+ %>
+ <% end %>
+
+ <%= turbo_stream.append "actividad_proyectosfinancieros_marco" do %>
+ <%= render "/cor1440_gen/actividades/actividad_proyectofinanciero_campos",
+ f: subf, ac: f %>
+ <% end %>
+ <% end %>
+<% end %>
diff --git a/app/views/cor1440_gen/actividad_proyectosfinancieros/destroy.html.erb b/app/views/cor1440_gen/actividad_proyectosfinancieros/destroy.html.erb
new file mode 100644
index 00000000..162d00c7
--- /dev/null
+++ b/app/views/cor1440_gen/actividad_proyectosfinancieros/destroy.html.erb
@@ -0,0 +1,9 @@
+<%= fields model: @actividad do |f| %>
+ <%= f.simple_fields_for :actividad_proyectofinanciero,
+ child_index: params[:index] do |subf| %>
+ <%= turbo_frame_tag "actividad_proyectofinanciero_#{subf.index}" do %>
+ <%= subf.hidden_field :id, value: params[:id] %>
+ <%= subf.hidden_field :_destroy, value: true %>
+ <% end %>
+ <% end %>
+<% end %>
diff --git a/app/views/cor1440_gen/actividades/_actividad_proyectofinanciero_campos.html.erb b/app/views/cor1440_gen/actividades/_actividad_proyectofinanciero_campos.html.erb
index fadd6404..7c6949d7 100644
--- a/app/views/cor1440_gen/actividades/_actividad_proyectofinanciero_campos.html.erb
+++ b/app/views/cor1440_gen/actividades/_actividad_proyectofinanciero_campos.html.erb
@@ -1,19 +1,29 @@
-
- <% if ac.object.fecha %>
- <% fr = ac.object.fecha %>
+<%= turbo_frame_tag "actividad_proyectofinanciero_#{f.index}",
+ class: 'div-tabla-fila nested-fields' do %>
+ <% if f.object.proyectofinanciero.nil? %>
+ <% f.object.proyectofinanciero = Cor1440Gen::Proyectofinanciero.new %>
+ <% end %>
+ <% if params && params[:actividad] && params[:actividad][:fecha] %>
+ <% fr = params[:actividad][:fecha] %>
<% else %>
<% fr = Time.now.strftime('%Y-%m-%d') %>
<% end %>
<% lp1 = Cor1440Gen::ProyectosfinancierosController::disponibles(
{fecha: fr}, current_ability) %>
<% ids1 = lp1.pluck(:id) %>
- <% ids2 = ac.object.proyectofinanciero.pluck(:id) %>
+ <% ids2 = [] %>
+ <% if params && params[:actividad] %>
+ <% params[:actividad][:actividad_proyectofinanciero_attributes].each do |l, v| %>
+ <% ids2 << v[:id] %>
+ <% end %>
+ <% else %>
+ <% ids2 = ac.object.proyectofinanciero.pluck(:id) %>
+ <% end %>
<% # Si es uno nuevo excluimos los ya elegidos %>
<% ids = ids1 | ids2 %>
<% col = Cor1440Gen::Proyectofinanciero.where(id: ids).
reorder('lower(nombre)') %>
-
- <% # Inexcplicable que no opere coccoon:after-insert si se agrega: f.input :actividad_id, as: :hidden %>
+
<%= f.input :id, as: :hidden %>
<% vdis = false %>
<% if f.object.proyectofinanciero_id %>
@@ -21,32 +31,38 @@
<% end %>
<%= f.input :proyectofinanciero_id,
collection: col,
- label: false,
- label_method: :nombre,
disabled: vdis,
- value_method: :id,
- selected: f.object.proyectofinanciero_id,
input_html: {
- title: t("Los proyectos presentados son los vigentes en la fecha "\
- "de la actividad (cambie la fecha para actualizar estas opciones)"),
+ title: t(
+ "Los proyectos presentados son los vigentes en la fecha "\
+ "de la actividad (cambie la fecha para actualizar estas opciones)"
+ ),
class: 'tom-select'
- }
- %>
- |
-
- <%= render partial: 'campo_actividad_proyectofinanciero_actividadpf',
+ },
+ label: false,
+ label_method: :nombre,
+ selected: f.object.proyectofinanciero_id,
+ value_method: :id %>
+
+
+ <%= render partial: '/cor1440_gen/actividades/campo_actividad_proyectofinanciero_actividadpf',
locals: {f: f} %>
- |
- <% if Cor1440Gen::Proyectofinanciero::en_toda_actividad_id &&
- f.object.proyectofinanciero_id ==
- Cor1440Gen::Proyectofinanciero::en_toda_actividad_id %>
- <% elestilo = "display: none" %>
- <% else%>
- <% elestilo = "display: block" %>
- <% end%>
-
- <%= link_to_remove_association t("Eliminar"), f,
- :class => 'btn btn-sm btn-danger'
- %>
- |
-
+
+
+ <% if !Cor1440Gen::Proyectofinanciero::en_toda_actividad_id ||
+ f.object.proyectofinanciero_id !=
+ Cor1440Gen::Proyectofinanciero::en_toda_actividad_id %>
+ <%= f.submit "Eliminar",
+ class: 'btn btn-sm btn-danger',
+ data: {
+ turbo_frame: "actividad_proyectofinanciero_#{f.index}",
+ disable_with: false
+ },
+ formaction: cor1440_gen.eliminar_actividad_proyectofinanciero_path(
+ id: f.object.id, index: f.index
+ ),
+ formmethod: :delete,
+ formnovalidate: true %>
+ <% end%>
+
+<% end %>
diff --git a/app/views/cor1440_gen/actividades/_campo_proyectofinanciero.html.erb b/app/views/cor1440_gen/actividades/_campo_proyectofinanciero.html.erb
index 2e76c819..970825bb 100644
--- a/app/views/cor1440_gen/actividades/_campo_proyectofinanciero.html.erb
+++ b/app/views/cor1440_gen/actividades/_campo_proyectofinanciero.html.erb
@@ -1,35 +1,37 @@
-
-
-
-
-
- <%= @actividad.class.human_attribute_name(:proyectofinanciero) %>
- |
-
+<%= f.input :id, type: :hidden %>
+
+
+
+
+ <%= @actividad.class.human_attribute_name(:proyectofinanciero) %>
+
+
<%= @actividad.class.human_attribute_name(:actividadespf) %>
- |
-
-
-
- <%= f.simple_fields_for(
- :actividad_proyectofinanciero,
- f.object.actividad_proyectofinanciero.order(:id)) do |ap| %>
- <%= render partial: 'actividad_proyectofinanciero_campos',
- locals: {f: ap, ac: f} %>
- <% end %>
- <%= render partial: 'complemento_filas_proyectofinanciero',
- locals: {f: f} %>
-
-
-
- <%= link_to_add_association(
- "#{t('Añadir')} #{@actividad.class.human_attribute_name(:proyectofinanciero)}",
- f, :actividad_proyectofinanciero,
- render_options: {locals: { ac: f }},
- "data-association-insertion-node": "tbody#actividad_proyectofinanciero",
- "data-association-insertion-method": "append",
- partial: "actividad_proyectofinanciero_campos",
- class: "btn btn-sm btn-primary"
- ) %>
+
+
+ <%= f.simple_fields_for(
+ :actividad_proyectofinanciero,
+ f.object.actividad_proyectofinanciero.order(:id)) do |ap| %>
+ <%= render partial:
+ '/cor1440_gen/actividades/actividad_proyectofinanciero_campos',
+ locals: {f: ap, ac: f} %>
+ <% end %>
+ <%= render partial: '/cor1440_gen/actividades/complemento_filas_proyectofinanciero',
+ locals: {f: f} %>
+
+ <%= f.submit "#{t('Agregar')} " +
+ "#{@actividad.class.human_attribute_name(:proyectofinanciero)}",
+ class: 'btn btn-sm btn-primary',
+ data: {
+ disable_with: false
+ },
+ formaction: cor1440_gen.crear_actividad_proyectofinanciero_path(
+ index: @actividad.actividad_proyectofinanciero.size
+ ),
+ formmethod: :post,
+ formnovalidate: true,
+ id: "agregar-actividad-proyectofinanciero"
+ %>
+
diff --git a/config/locales/es.yml b/config/locales/es.yml
index 5afb86b8..c7c318c6 100644
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -5,6 +5,7 @@ es:
"Actividad del marco lógico": Actividad del marco lógico
"Actividades de marco lógico": Actividades de marco lógico
"Actividades del marco lógico": Actividades del marco lógico
+ Agregar: Agregar
Añadir: Añadir
"Añadir actividad": Añadir actividad
"Añadir anexo": Añadir anexo
diff --git a/config/routes.rb b/config/routes.rb
index cf84560f..c3955336 100755
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -85,6 +85,14 @@
end
end
+ resources :actividad_proyectofinanciero, only: [], param: :index do
+ member do
+ delete '(:id)', to: "actividad_proyectosfinancieros#destroy",
+ as: "eliminar"
+ post '/' => "actividad_proyectosfinancieros#create", as: "crear"
+ end
+ end
+
resources :anexo_proyectofinanciero, only: [], param: :index do
member do
delete '(:id)', to: "anexos_proyectofinanciero#destroy",
diff --git a/lib/cor1440_gen/concerns/controllers/actividad_proyectosfinancieros_controller.rb b/lib/cor1440_gen/concerns/controllers/actividad_proyectosfinancieros_controller.rb
new file mode 100644
index 00000000..4ff8baed
--- /dev/null
+++ b/lib/cor1440_gen/concerns/controllers/actividad_proyectosfinancieros_controller.rb
@@ -0,0 +1,35 @@
+module Cor1440Gen
+ module Concerns
+ module Controllers
+ module ActividadProyectosfinancierosController
+ extend ActiveSupport::Concern
+
+ included do
+ before_action :prepara_actividad
+
+ def destroy
+ end
+
+ def create
+ end
+
+ private
+
+ def prepara_actividad
+ @actividad = Cor1440Gen::Actividad.where(
+ id: params[:actividad][:id].to_i
+ ).take
+ if @actividad.actividad_proyectofinanciero.length == 0
+ @actividad.actividad_proyectofinanciero = [
+ Cor1440Gen::ActividadProyectofinanciero.new
+ ]
+ end
+ end
+
+ end # included
+
+ end
+ end
+ end
+end
+
diff --git a/lib/cor1440_gen/concerns/controllers/actividades_controller.rb b/lib/cor1440_gen/concerns/controllers/actividades_controller.rb
index 28737d6e..1b028d69 100644
--- a/lib/cor1440_gen/concerns/controllers/actividades_controller.rb
+++ b/lib/cor1440_gen/concerns/controllers/actividades_controller.rb
@@ -34,7 +34,8 @@ def atributos_index
end
def atributos_form
- a = atributos_show - [:id, :actividadpf, :poblacion]
+ a = atributos_show - [:id, :actividadpf, :poblacion] -
+ [:anexos]
a.map do |e|
e == :fecha_localizada ? :fecha : e
end