Correccion - Mejora #4835
Actualizado por Oscar Abad hace alrededor de 1 año
h1. 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'} ) %> h1. Implementación https://git.semillasl.com/gong/gor/-/merge_requests/24 h1. Implantación Script para la generación de permisos sobre el nuevo controlador 'documento_acuerdo' del menú 'documentos_proyecto': <pre><code class="ruby"> # 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) </code></pre>