Proyecto

General

Perfil

Acciones

Correccion - Mejora #4835

cerrada

[Acuerdos] Permitir enlazar documentos subidos en estados anteriores

Añadido por Santiago Ramos hace más de 2 años. Actualizado hace alrededor de 1 año.

Estado:
Resuelta
Prioridad:
Normal
Asignado a:
Categoría:
Desarrollo
Versión prevista:
Fecha de inicio:
2022-06-30
Fecha fin:
% Realizado:

0%

Tiempo estimado:
Versión:

Descripción

Especificación

En la subida de documentos, permitir "enlazar" documentos ya existentes en el acuerdo.

NOTA: algo similar está ya hecho en contratos.

Url ejemplo Acuerdos:
http://127.0.0.1:3000/agentes/7/configuracion_agente/acuerdo/listado

Url ejemplo Contratos:
http://127.0.0.1:3000/agentes/7/economico_agente/contrato/listado

Texto botón para enlazar documentos de estados anteriores:
"Vincular a un documento ya existente en el acuerdo actual"

Añadir soporte para modelo Acuerdo como en Contrato en la vista:
gor/app/views/documento/_formulario_asociar_o_nuevo.html.erb

Listado de documentos con opción de añadir nuevo o vínculo en:
gor/app/views/documento/listado.html.erb
gor/app/views/documento/_listado_asociados.html.erb

Enlace a documentos de un contrato:
<%= remote icono('documentos' + (@contrato.documento.empty? ? '' : '_r'), _('Ver documentos')), url: {update: update + '_sub', controller: :documento, action: :listado_asociados, objeto_id: @contrato.id, tipo: 'Contrato'}, html: {id: update + '_documentos'} %>

Enlace ACTUAL a documentos de un acuerdo:
<%= remote(icono('documentos', _('Listado de documentos asociados')),url: {action: 'documentos',id: @acuerdo, update: update + '_sub'} ) %>

Implementación

https://git.semillasl.com/gong/gor/-/merge_requests/24

Implantación

Script para la generación de permisos sobre el nuevo controlador 'documento_acuerdo' del menú 'documentos_proyecto':

# Script con after_commit :flush_cache (lento, utilizar Redis para que no se quede colgado)
# Versión 1
PermisoXRol.where(menu: 'documentos_proyecto', controlador: 'documento_busqueda').each do |pxr|
  pxr2 = PermisoXRol.find_or_initialize_by(rol_id: pxr.rol_id, menu: pxr.menu, controlador: 'documento_acuerdo')
  pxr2.ver = pxr.ver
  pxr2.cambiar = pxr.cambiar
  pxr2.save
end

# Versión 2
PermisoXRol.where(menu: 'documentos_proyecto', controlador: 'documento_busqueda').each do |pxr|
  pxr2 = PermisoXRol.find_by(rol_id: pxr.rol_id, menu: pxr.menu, controlador: 'documento_acuerdo')
  if pxr2
    pxr2.update_attributes ver: pxr.ver, cambiar: pxr.cambiar
  else
    PermisoXRol.create rol_id: pxr.rol_id, menu: pxr.menu, controlador: 'documento_acuerdo', ver: pxr.ver, cambiar: pxr.cambiar
  end
end

# Version 3 - Script ejecutando gema activerecord-import (no está actualmente en Gemfile)
permisos_nuevos = PermisoXRol.where(menu: 'documentos_proyecto', controlador: 'documento_busqueda').map do |pxr|
  PermisoXRol.new(rol_id: pxr.rol_id, menu: pxr.menu, controlador: 'documento_acuerdo', ver: pxr.ver, cambiar: pxr.cambiar)
end
PermisoXRol.import(permisos_nuevos)

Acciones

Exportar a: Atom PDF