1099 lines
50 KiB
HTML
1099 lines
50 KiB
HTML
{% macro acta_li(acta, manager, estado) %}
|
|
<div class="d-flex w-100 justify-content-between">
|
|
<div class="flex-grow-1 mr-2">
|
|
<h5><span class="text-muted mr-2">Número {{acta.secuencia}} del {{ acta.horaini.strftime('%d/%m/%Y %H:%M') }} a {{ acta.horafin.strftime('%H:%M') }}</span>en {{ acta.lugar }}</h5>
|
|
{%- autoescape false %}
|
|
<p class="text-justify"><span class="font-weight-bold mr-2">Convocados</span>{{ acta.txtasistentes }}</p>
|
|
{% endautoescape -%}
|
|
</div>
|
|
<div class="dropdown no-arrow mb-4 align-items-center text-nowrap">
|
|
<a href="{{ url_for('gestion.actapdf', actaid=acta.id)}}" class="btn btn-danger btn-circle dropdown-toggle mr-1" type="button" id="pdfActa{{ acta.id }}"><i class="fas fa-file-pdf"></i></a>
|
|
<a data-toggle="modal" data-target="#confirmaEnvioModal" data-href1="{{ url_for('gestion.acta_copiame', actaid=acta.id)}}" data-href2="{{ url_for('gestion.acta_copiame', actaid=acta.id, masivo='todos')}}" class="btn btn-info btn-circle dropdown-toggle mr-1" type="button" id="pdfActa{{ acta.id }}"><i class="fas fa-mail-bulk"></i></a>
|
|
<button class="btn btn-success btn-circle dropdown-toggle" type="button" id="dropdownActa{{ acta.id }}" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><i class="fas fa-file-upload"></i></button>
|
|
<div class="dropdown-menu" aria-labelledby="dropdownActa{{ acta.id }}">
|
|
{% if manager and estado < 100 %}
|
|
<a class="dropdown-item text-gray-900" data-toggle="modal" data-target="#modalConfigActa" data-aid="{{ acta.id }}" data-secuencia="{{ acta.secuencia }}" data-fecha="{{ acta.horaini.strftime('%d/%m/%Y') }}" data-hini="{{ acta.horaini.strftime('%H:%M') }}" data-hfin="{{ acta.horafin.strftime('%H:%M') }}" data-lugar="{{ acta.lugar }}" data-invitados="{{ acta.invitadostextarea | b64encode }}" data-miembros="{{ acta.miembrosid }}" data-temas="{{ acta.temas | b64encode }}" data-desarrollo="{{ acta.desarrollo | b64encode }}" data-acuerdos="{{ acta.acuerdos | b64encode }}"><i class="fas fa-cog mr-2"></i>Modificar</a>
|
|
<a class="dropdown-item text-gray-900" data-toggle="modal" data-target="#modalSubeEvidencia" data-tipo="anexo" data-actaid="{{ acta.id }}"><i class="fas fa-plus-circle mr-2"></i>Agregar Anexo</a>
|
|
{% endif %}
|
|
<a href="{{ url_for('gestion.listapdf', actaid=acta.id)}}" class="dropdown-item text-gray-900 text-truncate"><i class="fas fa-file-pdf mr-2"></i>Plantilla Lista de Asistentes</a>
|
|
{% for anexo in acta.anexos %}
|
|
{% if manager and estado < 100 %}
|
|
{% if loop.first %}
|
|
<div class="dropdown-divider"></div>
|
|
{% endif %}
|
|
<div class="dropdown-item d-flex justify-content-between">
|
|
<div class="flex-grow-1 mr-2 text-truncate"><a class="dropdown-item text-gray-900" href="{{ url_for('docs.get', filehash=anexo.documentohash)}}">{{ anexo.documento.nombre }}</a></div>
|
|
<button class="btn text-white btn-success btn-circle btn-sm" data-toggle="modal" data-target="#modalSubeEvidencia" data-tipo="anexo" data-actaid="{{ acta.id }}" data-hash="{{ anexo.documentohash }}" data-nombre="{{ anexo.documento.nombre }}" data-desc="{{ anexo.documento.descripcion }}" data-largo="{{ anexo.documento.largo }}"><i class="fas fa-file-signature"></i></button>
|
|
</div>
|
|
{% else %}
|
|
<a class="dropdown-item text-gray-900 text-truncate" href="{{ url_for('docs.get', filehash=anexo.documentohash)}}">{{ anexo.documento.nombre }}</a>
|
|
{% endif %}
|
|
{% else %}
|
|
{% if manager and estado < 100 %}
|
|
<div class="dropdown-divider"></div>
|
|
{% endif %}
|
|
<button class="dropdown-item" type="button">Sin anexos<i class="far fa-frown ml-2"></i></button>
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endmacro %}
|
|
|
|
{% macro actividad_li(actividad, manager, estado) %}
|
|
<div class="d-flex w-100 justify-content-between">
|
|
<div class="flex-grow-1 mr-2">
|
|
<h5><span class="text-muted mr-2">{{ actividad.fecha.strftime('%d/%m/%Y') }}</span>{{ actividad.nombre }}</h5>
|
|
{%- autoescape false %}
|
|
<p class="text-justify">{{ actividad.descripcion | replace("\n", "<br/>") }}</p>
|
|
{% endautoescape -%}
|
|
</div>
|
|
<div class="dropdown no-arrow mb-4 align-items-center">
|
|
<button class="btn btn-success btn-circle dropdown-toggle" type="button" id="dropdownActividad{{ actividad.id }}" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><i class="fas fa-file-upload"></i></button>
|
|
<div class="dropdown-menu" aria-labelledby="dropdownActividad{{ actividad.id }}">
|
|
{% if manager and estado < 100 %}
|
|
<a class="dropdown-item text-gray-900" data-toggle="modal" data-target="#modalConfigActividad" data-oid="{{ actividad.id }}" data-fecha="{{ actividad.fecha.strftime('%d/%m/%Y') }}" data-nombre="{{ actividad.nombre }}" data-dedicacion="{{ actividad.dedicacion }}" data-descripcion="{{ actividad.descripcion }}"><i class="fas fa-cog mr-2"></i>Modificar</a>
|
|
<a class="dropdown-item text-gray-900" data-toggle="modal" data-target="#modalSubeEvidencia" data-tipo="evidencia" data-actividadid="{{ actividad.id }}"><i class="fas fa-plus-circle mr-2"></i>Agregar Evidencia</a>
|
|
{% endif %}
|
|
{% for evidencia in actividad.evidencias %}
|
|
{% if manager and estado < 100 %}
|
|
{% if loop.first %}
|
|
<div class="dropdown-divider"></div>
|
|
{% endif %}
|
|
<div class="dropdown-item d-flex justify-content-between">
|
|
<div class="flex-grow-1 mr-2 text-truncate"><a class="dropdown-item text-gray-900" href="{{ url_for('docs.get', filehash=evidencia.documentohash)}}">{{ evidencia.documento.nombre }}</a></div>
|
|
<button class="btn text-white btn-success btn-circle btn-sm" data-toggle="modal" data-target="#modalSubeEvidencia" data-tipo="evidencia" data-actividadid="{{ actividad.id }}" data-hash="{{ evidencia.documentohash }}" data-nombre="{{ evidencia.documento.nombre }}" data-desc="{{ evidencia.documento.descripcion }}" data-largo="{{ evidencia.documento.largo }}"><i class="fas fa-file-signature"></i></button>
|
|
</div>
|
|
{% else %}
|
|
<a class="dropdown-item text-gray-900 text-truncate" href="{{ url_for('docs.get', filehash=evidencia.documentohash)}}">{{ evidencia.documento.nombre }}</a>
|
|
{% endif %}
|
|
{% else %}
|
|
{% if manager and estado < 100 %}
|
|
<div class="dropdown-divider"></div>
|
|
{% endif %}
|
|
<button class="dropdown-item" type="button">Sin evidencias<i class="far fa-frown ml-2"></i></button>
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endmacro %}
|
|
|
|
{% macro indicador_li(indicador, manager, estado) %}
|
|
{% if manager and estado < 100 %}
|
|
<div class="d-flex w-100 justify-content-between align-items-center">
|
|
<div class="flex-grow-1 mr-2">
|
|
{% else %}
|
|
{% endif %}
|
|
<div class="text-xs font-weight-bold text-primary text-uppercase">{{indicador.nombre}}</div>
|
|
<div class="d-flex w-100 justify-content-between align-items-center">
|
|
<div class="h5 mb-0 mr-3 font-weight-bold text-gray-800">{{indicador.valor}}/{{indicador.meta}}</div>
|
|
<div class="flex-grow-1 progress progress-sm">
|
|
<div class="progress-bar bg-secondary" role="progressbar" style="width: {{ indicador.previo }}%" aria-valuenow="{{indicador.valor}}" aria-valuemin="0" aria-valuemax="{{indicador.meta}}"></div>
|
|
<div class="progress-bar bg-success" role="progressbar" style="width: {{ indicador.avance }}%" aria-valuenow="{{indicador.valor}}" aria-valuemin="0" aria-valuemax="{{indicador.meta}}"></div>
|
|
</div>
|
|
</div>
|
|
{% if manager and estado < 100 %}
|
|
</div>
|
|
<a class="btn btn-circle btn-primary text-white" data-toggle="modal" data-target="#modalConfigIndicador" data-oid="{{ indicador.id }}" data-ini="{{ indicador.inicial }}" data-val="{{ indicador.valor }}" data-meta="{{ indicador.meta }}" data-nombre="{{ indicador.nombre }}" ><i class="fas fa-chart-line"></i></a>
|
|
</div>
|
|
{% endif %}
|
|
{% endmacro %}
|
|
|
|
{% macro directorio_li(nodo, label='Objetivo', single=False) %}
|
|
|
|
<div class="col-12">
|
|
<div class="card shadow h-100">
|
|
|
|
{% if (nodo.is_manager and nodo.estado==0) %}
|
|
<div class="card-header list-group-item-primary d-flex justify-content-between align-items-center">
|
|
<h4 class='flex-grow-1 align-items-center'><i class="mr-2 fas fa-{{nodo.padre.tipo}}"></i>{{nodo.nombre}}</h4>
|
|
<div class="dropdown no-arrow">
|
|
<button class="btn btn-primary btn-circle dropdown-toggle" type="button" id="dropdownAccion{{ nodo.id }}" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><i class="fas fa-cog"></i></button>
|
|
<div class="dropdown-menu" aria-labelledby="dropdownAccion{{ nodo.id }}" style="">
|
|
<a class="dropdown-item text-gray-900" data-toggle="modal" data-target="#modalConfigObjetivo{{ nodo.parentid }}" data-oid="{{ nodo.id }}" data-nombre="{{ nodo.nombre }}" data-rid="{{ nodo.responsableid }}" data-iid="{{ nodo.invitadosid }}" data-desc="{{ nodo.descripcion }}"><i class="mr-2 fas fa-cog"></i>Configurar {{label}}</a>
|
|
<div class="dropdown-divider"></div>
|
|
|
|
<a class="dropdown-item text-gray-900" data-toggle="modal" data-target="#modalConfigActividad" data-pid="{{ nodo.id }}"><i class="mr-2 fas fa-hdd"></i>Agregar Carpeta</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% else %}
|
|
<div class="card-header list-group-item-primary">{{nodo.nombre}}</div>
|
|
{% endif %}
|
|
|
|
<!-- <div class="card-body">
|
|
<h5 class="card-title text-muted">Descripción</h5>
|
|
{%- autoescape false %}
|
|
<p class="card-text text-justify text-truncate">{{ nodo.descripcion | replace("\n", "<br/>") }}</p>
|
|
{% endautoescape -%}
|
|
</div>-->
|
|
|
|
{% for actividad in nodo.actividades %}
|
|
<div class="card-body px-2 py-2">
|
|
<div class="list-group">
|
|
{% if nodo.is_manager %}
|
|
<div class="list-group-item list-group-item-secondary d-flex w-100 justify-content-between align-items-center">
|
|
<div class="flex-grow-1 mr-2 align-items-center"><i class="mr-2 fas fa-hdd"></i>{{actividad.nombre}}</div>
|
|
<div class="">
|
|
<button class="btn btn-circle btn-success text-white mr-2" data-toggle="modal" data-target="#modalSubeEvidencia" data-aid="{{ actividad.id }}"><i class="fas fa-cloud-upload-alt"></i></button>
|
|
<button class="btn btn-circle btn-dark text-white" data-toggle="modal" data-target="#modalConfigActividad" data-oid="{{ actividad.id }}" data-nombre="{{ actividad.nombre }}"><i class="fas fa-cog"></i></button>
|
|
</div>
|
|
</div>
|
|
{% else %}
|
|
<div class="list-group-item list-group-item-secondary"><i class="mr-2 fas fa-hdd"></i>{{actividad.nombre}}</div>
|
|
{% endif %}
|
|
{% for evidencia in actividad.evidencias %}
|
|
<div class="list-group-item d-flex w-100 justify-content-between align-items-center">
|
|
{%- if nodo.is_manager -%}
|
|
<button class="btn btn-circle btn-dark text-white mr-2 align-items-center" data-toggle="modal" data-target="#modalSubeEvidencia" data-aid="{{ actividad.id }}" data-hash="{{ evidencia.documentohash }}" data-nombre="{{ evidencia.documento.nombre }}" data-desc="{{ evidencia.documento.descripcion }}" data-largo="{{ evidencia.documento.largo }}"><i class="fas fa-cog"></i></button>
|
|
{%- endif -%}
|
|
{% if evidencia.documento.tamano == 0 %}
|
|
<div class="flex-grow-1 mr-2 text-truncate align-items-center text-dark"><a class="btn btn-circle btn-primary mr-2 align-items-center " href="{{ url_for('docs.get', filehash=evidencia.documentohash)}}"><i class="fas fa-external-link-alt"></i></a>{{evidencia.documento.nombre}}</div>
|
|
{% else %}
|
|
<div class="flex-grow-1 mr-2 text-truncate align-items-center text-dark"><a class="btn btn-circle btn-primary mr-2" href="{{ url_for('docs.get', filehash=evidencia.documentohash)}}"><i class="fas fa-cloud-download-alt"></i></a>[<span class="text-monospace text-muted">{{evidencia.documento.humansize}}</span>] {{evidencia.documento.nombre}}</div>
|
|
{% endif %}
|
|
</div>
|
|
{% else %}
|
|
<div class="list-group-item text-center text-muted">Sin documentos.</div>
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
{% else %}
|
|
<div class="card-body px-4">
|
|
<p class="card-text text-center text-muted">Este {{label}} está vacio.</p>
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
{% endmacro %}
|
|
|
|
{% macro resumen_li(nodo, label='Objetivo', single=False) %}
|
|
<div class="{% if single %} col-12 {% else %} col-lg-6 col-md-12 {% endif %} mt-4">
|
|
<div class="card shadow h-100">
|
|
|
|
{% if nodo.is_manager %}
|
|
<div class="card-header list-group-item-primary d-flex justify-content-between align-items-center">
|
|
<h4 class='flex-grow-1 align-items-center text-truncate'>{{nodo.nombre}}</h4>
|
|
<div class="dropdown no-arrow">
|
|
<button class="btn btn-primary btn-circle dropdown-toggle" type="button" id="dropdownAccion{{ nodo.id }}" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><i class="fas fa-cog"></i></button>
|
|
<div class="dropdown-menu" aria-labelledby="dropdownAccion{{ nodo.id }}" style="">
|
|
{% if nodo.estado < 100 %}
|
|
<a class="dropdown-item text-gray-900" data-toggle="modal" data-target="#modalConfigObjetivo{{ nodo.parentid }}" data-oid="{{ nodo.id }}" data-nombre="{{ nodo.nombre }}" data-rid="{{ nodo.responsableid }}" data-iid="{{ nodo.invitadosid }}" data-desc="{{ nodo.descripcion }}">Configurar {{label}}</a>
|
|
{% endif %}
|
|
<a class="dropdown-item text-dark" href="{{ url_for('gestion.reporte', objetivoid=nodo.id) }}"><i class="mr-2 fas fa-file-download"></i>Descargar Reporte</a>
|
|
<!-- <div class="dropdown-divider"></div>
|
|
|
|
<a class="dropdown-item text-gray-900" data-toggle="modal" data-target="#modalConfigObjetivo{{ nodo.parentid }}" data-pid="{{ nodo.id }}" data-rid="{{ nodo.responsableid }}">Agregar {{label}}</a>-->
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% else %}
|
|
<div class="card-header list-group-item-primary">{{nodo.nombre}}</div>
|
|
{% endif %}
|
|
|
|
<div class="card-body">
|
|
<h5 class="card-title text-muted">Descripción</h5>
|
|
{%- autoescape false %}
|
|
<p class="card-text text-justify text-truncate">{{ nodo.descripcion | replace("\n", "<br/>") }}</p>
|
|
{% endautoescape -%}
|
|
</div>
|
|
<div class="card-body">
|
|
<h5 class="card-title text-muted">Comisión Responsable</h5>
|
|
<p class="card-text">{{ nodo.responsable.nombre }}</p>
|
|
</div>
|
|
|
|
<div class="card-body">
|
|
<div class="row">
|
|
|
|
<div class="col-lg-6 col-md-12 mb-4">
|
|
<div class="card border-left-info shadow h-100 py-2">
|
|
<div class="card-body">
|
|
<div class="row no-gutters align-items-center">
|
|
<div class="col mr-2">
|
|
<div class="text-xs font-weight-bold text-success text-uppercase mb-1">Actividades</div>
|
|
<div class="h5 mb-0 font-weight-bold text-gray-800">{{nodo.sub_actividades}}</div>
|
|
</div>
|
|
<div class="col-auto">
|
|
<i class="fas fa-clipboard-list fa-2x text-gray-500"></i>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-lg-6 col-md-12 mb-4">
|
|
<div class="card border-left-secondary shadow h-100 py-2">
|
|
<div class="card-body">
|
|
<div class="row no-gutters align-items-center">
|
|
<div class="col mr-2">
|
|
<div class="text-xs font-weight-bold text-success text-uppercase mb-1">Dedicación</div>
|
|
<div class="h5 mb-0 font-weight-bold text-gray-800">{{nodo.sub_horas| round(1)}} <small class"text-muted">({{ nodo.sub_HDS }} HDS)</small></div>
|
|
</div>
|
|
<div class="col-auto">
|
|
<i class="fas fa-user-clock fa-2x text-gray-500"></i>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-12">
|
|
<div class="card border-left-dark shadow h-100 py-2">
|
|
<div class="card-body">
|
|
<div class="row no-gutters align-items-center">
|
|
<div class="col mr-2">
|
|
<div class="text-xs font-weight-bold text-success text-uppercase mb-1">Estado de Avance</div>
|
|
<div class="row no-gutters align-items-center">
|
|
<div class="col-auto">
|
|
<div class="h5 mb-0 mr-3 text-gray-800">{{ nodo.sub_avance }}%</div>
|
|
</div>
|
|
<div class="col">
|
|
<div class="progress progress-sm mr-2">
|
|
<div class="progress-bar bg-info" role="progressbar" style="width: {{ nodo.sub_avance }}%" aria-valuenow="{{ nodo.sub_avance }}" aria-valuemin="0" aria-valuemax="100"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-auto">
|
|
<i class="fas fa-chart-line fa-2x text-gray-500"></i>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="card-body">
|
|
{% if nodo.estado < 100 %}
|
|
<div class="text-right"><a href="{{ url_for('gestion.show', objetivoid=nodo.id) }}" class="btn btn-lg btn-primary btn-icon-split"><span class="icon text-white-50"><i class="fas fa-{{ nodo.icon_class }}"></i></span><span class="py-2 mx-4">Ver {{ label }}</span></a></div>
|
|
{% else %}
|
|
<div class="text-right"><a href="{{ url_for('gestion.show', objetivoid=nodo.id) }}" class="btn btn-lg btn-secondary btn-icon-split"><span class="icon text-white-50"><i class="fas fa-{{ nodo.icon_class }}"></i></span><span class="py-2 mx-4">Ver {{ label }}</span></a></div>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endmacro %}
|
|
|
|
{% macro show_css() %}
|
|
<link href="/static/jquery.timepicker.min.css" rel="stylesheet">
|
|
<link href="/static/bootstrap-datepicker3.standalone.min.css" rel="stylesheet">
|
|
<link href="/static/select2.min.css" rel="stylesheet">
|
|
{% endmacro %}
|
|
|
|
{% macro docu_js(redirect='', invitado=True) %}
|
|
<div class="modal fade" id="modalConfigActividad" tabindex="-1" aria-labelledby="modalConfigActividadLabel" aria-hidden="true">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<form method="POST" action="{{ url_for('gestion.carpeta') }}">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title" id="modalConfigIndicadorLabel">Nueva Carpeta</h5>
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
<span aria-hidden="true">×</span>
|
|
</button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<input type="hidden" class="form-control" id="modalConfigActividadId" name="oid">
|
|
<input type="hidden" class="form-control" id="modalConfigActividadPid" name="pid">
|
|
<input type="hidden" class="form-control" id="modalConfigActividadDedicacion" name="dedicacion" value="0">
|
|
<input type="hidden" class="form-control" id="modalConfigActividadFecha" name="fecha" value="1/1/1980">
|
|
<!-- <input type="hidden" class="form-control" name="redirect" value="{{ tag }}">-->
|
|
<div class="form-group">
|
|
<label for="modalConfigActividadNombre" class="col-form-label">Nombre:</label>
|
|
<input type="text" class="form-control" id="modalConfigActividadNombre" name="nombre">
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="modalConfigActividadDescripcion">Descripción:</label>
|
|
<textarea class="form-control" id="modalConfigActividadDescripcion" rows="3" name="descripcion"></textarea>
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cerrar</button>
|
|
<button type="submit" class="btn btn-primary">Guardar</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="modal fade" id="modalSubeEvidencia" tabindex="-1" aria-labelledby="modalSubeEvidenciaLabel" aria-hidden="true">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<form method="POST" action="{{ url_for('docs.upload') }}" enctype="multipart/form-data">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title" id="modalSubeEvidenciaLabel">Archivo!</h5>
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
<span aria-hidden="true">×</span>
|
|
</button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<input type="hidden" class="form-control" id="modalSubeEvidenciaHash" name="currenthash">
|
|
<input type="hidden" class="form-control" id="modalSubeEvidenciaActividad" name="actividadid">
|
|
<input type="hidden" class="form-control" name="redirect" value="{{ redirect }}">
|
|
<div class="form-group">
|
|
<label for="modalSubeEvidenciaNombre" class="col-form-label">Nombre:</label>
|
|
<input type="text" class="form-control" disabled="disabled" id="modalSubeEvidenciaNombre" name="nombre">
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="modalSubeEvidenciaDescripcion">Descripción:</label>
|
|
<textarea class="form-control" id="modalSubeEvidenciaDescripcion" rows="3" name="descripcion"></textarea>
|
|
</div>
|
|
|
|
<div id="modalSubeEvidenciaUrlDiv" class="form-group">
|
|
<label for="modalSubeEvidenciaUrl" class="col-form-label">Archivo o Url:</label>
|
|
<input type="text" class="form-control" id="modalSubeEvidenciaUrl" name="url">
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="modalSubeEvidenciaArchivo">Seleccione el archivo</label>
|
|
<input type="file" id="modalSubeEvidenciaArchivo" name="documento">
|
|
</div>
|
|
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cerrar</button>
|
|
<button type="submit" class="btn btn-primary">Guardar</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script>
|
|
$('#modalSubeEvidencia').on('show.bs.modal', function (event) {
|
|
var button = $(event.relatedTarget); // Button that triggered the modal
|
|
var aid = parseInt(button.data('aid')) || 0;
|
|
var largo = parseInt(button.data('largo')) || 0;
|
|
|
|
var hash = button.data('hash');
|
|
var nombre = button.data('nombre');
|
|
var desc = button.data('desc');
|
|
|
|
var modal = $(this);
|
|
|
|
if(hash > 0){
|
|
modal.find('.modal-title').text('Evidencia - ' + nombre);
|
|
}
|
|
else{
|
|
modal.find('.modal-title').text('Nueva evidencia');
|
|
}
|
|
|
|
if(largo>0){
|
|
$("#modalSubeEvidenciaUrlDiv").addClass("d-none");
|
|
}else{
|
|
$("#modalSubeEvidenciaUrlDiv").removeClass("d-none");
|
|
}
|
|
|
|
$("#modalSubeEvidenciaHash").val(hash);
|
|
$("#modalSubeEvidenciaActividad").val(aid);
|
|
$("#modalSubeEvidenciaNombre").val(nombre);
|
|
$("#modalSubeEvidenciaDescripcion").val(desc);
|
|
$('#modalSubeEvidenciaUrl').val('');
|
|
$('#modalSubeEvidenciaArchivo').val('');
|
|
|
|
});
|
|
|
|
|
|
$('#modalConfigActividad').on('show.bs.modal', function (event) {
|
|
var button = $(event.relatedTarget); // Button that triggered the modal
|
|
var oid = parseInt(button.data('oid')) || 0;
|
|
var pid = parseInt(button.data('pid')) || 0;
|
|
var dedicacion = parseInt(button.data('dedicacion')) || 0;
|
|
|
|
var d = new Date();
|
|
dia = d.getDate();
|
|
mes = d.getMonth()+1;
|
|
ano = d.getFullYear();
|
|
|
|
var fecha = dia+"/"+mes+"/"+ano;
|
|
var nombre = button.data('nombre');
|
|
var descipcion = button.data('descripcion');
|
|
|
|
|
|
var modal = $(this);
|
|
|
|
if(oid > 0){
|
|
modal.find('.modal-title').text('Configuración de ' + nombre);
|
|
$("#modalConfigActividadId").val(oid);
|
|
$("#modalConfigActividadPid").val(0);
|
|
$("#modalConfigActividadNombre").val(nombre);
|
|
$("#modalConfigActividadDedicacion").val(dedicacion);
|
|
$("#modalConfigActividadDescripcion").val(descipcion);
|
|
$('#modalConfigActividadFecha').val(fecha);
|
|
}
|
|
else if (pid > 0){
|
|
modal.find('.modal-title').text('Nueva carpeta');
|
|
$("#modalConfigActividadId").val(0);
|
|
$("#modalConfigActividadPid").val(pid);
|
|
$("#modalConfigActividadNombre").val(nombre);
|
|
$("#modalConfigActividadDedicacion").val(dedicacion);
|
|
$("#modalConfigActividadDescripcion").val(descipcion);
|
|
$('#modalConfigActividadFecha').val(fecha);
|
|
}
|
|
|
|
});
|
|
</script>
|
|
{% endmacro %}
|
|
|
|
{% macro base_js(nodo, redirect='', invitado=True) %}
|
|
<div class="modal fade" id="modalConfigIndicador" tabindex="-1" aria-labelledby="modalConfigIndicadorLabel" aria-hidden="true">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<form method="POST" action="{{ url_for('gestion.indicador') }}">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title text-primary text-truncate"><i class="mr-2 fas fa-chart-line"></i> <span id="modalConfigIndicadorLabel">Nuevo Indicador</span></h5>
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
<span aria-hidden="true">×</span>
|
|
</button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<input type="hidden" class="form-control" id="modalConfigIndicadorId" name="oid">
|
|
<input type="hidden" class="form-control" id="modalConfigIndicadorPid" name="pid">
|
|
<!-- <input type="hidden" class="form-control" name="redirect" value="{{ tag }}">-->
|
|
<div class="form-group">
|
|
<label for="modalConfigIndicadorNombre" class="col-form-label">Nombre:</label>
|
|
<input type="text" class="form-control" id="modalConfigIndicadorNombre" name="nombre">
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="modalConfigIndicadorInicial" class="col-form-label">Valor Inicial:</label>
|
|
<input type="text" class="form-control" id="modalConfigIndicadorInicial" name="inicial">
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="modalConfigIndicadorValor" class="col-form-label">Valor Actual:</label>
|
|
<input type="text" class="form-control" id="modalConfigIndicadorValor" name="valor">
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="modalConfigIndicadorMeta" class="col-form-label">Meta:</label>
|
|
<input type="text" class="form-control" id="modalConfigIndicadorMeta" name="meta">
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cerrar</button>
|
|
<button type="submit" class="btn btn-primary">Guardar</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="modal fade" id="confirmaEnvioModal" tabindex="-1" role="dialog" aria-labelledby="confirmaEnvioModalLabel" aria-hidden="true">
|
|
<div class="modal-dialog" role="document">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title" id="confirmaEnvioModalLabel">Confirmación de Envío de Actas al Correo</h5>
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
<span aria-hidden="true">×</span>
|
|
</button>
|
|
</div>
|
|
<div class="modal-body">
|
|
Esto enviará una copia del acta a <u>su correo</u> o el correo de <u>todos los responsables, observadores e invitados</u>. ¿Desea continuar?
|
|
</div>
|
|
<div class="modal-footer no-wrap">
|
|
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancelar</button>
|
|
<a id='confirmaEnvioModalUrl1' href="#" class="btn btn-primary">Solo a Mi</a>
|
|
<a id='confirmaEnvioModalUrl2' href="#" class="btn btn-danger">Enviar a Todos</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="modal fade" id="modalConfirmaReporteParcial" tabindex="-1" role="dialog" aria-labelledby="modalConfirmaReporteParcialLabel" aria-hidden="true">
|
|
<div class="modal-dialog" role="document">
|
|
<div class="modal-content">
|
|
<form method="POST" action="{{ url_for('gestion.reporte') }}">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title" id="modalConfirmaReporteParcialLabel"><i class="mr-2 fas fa-file-pdf"></i>Confirme el perido a incluir en el reporte</h5>
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
<span aria-hidden="true">×</span>
|
|
</button>
|
|
</div>
|
|
<input type="hidden" class="form-control" id="modalConfirmaReporteParcialOid" name="oid">
|
|
<div class="modal-body">
|
|
<div class="row">
|
|
<div class="form-group col-md-6 col-12">
|
|
<label for="modalConfirmaReporteParcialFechaI" class="col-form-label">Fecha Inicio:</label>
|
|
<input type="text" class="form-control" id="modalConfirmaReporteParcialFechaI" name="fini" required>
|
|
</div>
|
|
<div class="form-group col-md-6 col-12">
|
|
<label for="modalConfirmaReporteParcialFechaF" class="col-form-label">Fecha Termino:</label>
|
|
<input type="text" class="form-control" id="modalConfirmaReporteParcialFechaF" name="fend" required>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-secondary" data-dismiss="modal"><i class="mr-2 fas fa-chevron-circle-left"></i>Cancelar</button>
|
|
<button type="submit" class="btn btn-primary"><i class="mr-2 fas fa-file-download"></i>Descargar</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="modal fade" id="modalConfigActividad" tabindex="-1" aria-labelledby="modalConfigActividadLabel" aria-hidden="true">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<form method="POST" action="{{ url_for('gestion.actividad') }}">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title text-primary text-truncate" ><i class="mr-2 fas fa-icons"></i> <span id="modalConfigActividadLabel">Nueva Actividad</span></h5>
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
<span aria-hidden="true">×</span>
|
|
</button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<input type="hidden" class="form-control" id="modalConfigActividadId" name="oid">
|
|
<input type="hidden" class="form-control" id="modalConfigActividadPid" name="pid">
|
|
<!-- <input type="hidden" class="form-control" name="redirect" value="{{ tag }}">-->
|
|
<div class="form-group">
|
|
<label for="modalConfigActividadNombre" class="col-form-label">Nombre:</label>
|
|
<input type="text" class="form-control" id="modalConfigActividadNombre" name="nombre">
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="modalConfigActividadDedicacion" class="col-form-label">Dedicación de Tiempo (Horas):</label>
|
|
<div class="d-flex flex-row align-items-center justify-content-between">
|
|
<input type="text" class="form-control w-50" id="modalConfigActividadDedicacion" name="dedicacion">
|
|
<div id="modalConfigActividadHDS" class="w-25 ml-4">- HDS</div>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="modalConfigActividadFecha" class="col-form-label">Fecha:</label>
|
|
<input type="text" class="form-control" id="modalConfigActividadFecha" name="fecha">
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="modalConfigActividadDescripcion">Descripción:</label>
|
|
<textarea class="form-control" id="modalConfigActividadDescripcion" rows="3" name="descripcion"></textarea>
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cerrar</button>
|
|
<button type="submit" class="btn btn-primary">Guardar</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="modal fade" id="modalSubeEvidencia" tabindex="-1" aria-labelledby="modalSubeEvidenciaLabel" aria-hidden="true">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<form method="POST" action="{{ url_for('docs.upload') }}" enctype="multipart/form-data">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title" id="modalSubeEvidenciaLabel">Nuevo ciclo</h5>
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
<span aria-hidden="true">×</span>
|
|
</button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<input type="hidden" class="form-control" id="modalSubeEvidenciaHash" name="currenthash">
|
|
<input type="hidden" class="form-control" id="modalSubeEvidenciaActividad" name="actividadid">
|
|
<input type="hidden" class="form-control" id="modalSubeEvidenciaActa" name="actaid">
|
|
<input type="hidden" class="form-control" name="redirect" value="{{ redirect }}">
|
|
<div class="form-group">
|
|
<label for="modalSubeEvidenciaNombre" class="col-form-label">Nombre:</label>
|
|
<input type="text" class="form-control" disabled="disabled" id="modalSubeEvidenciaNombre" name="nombre">
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="modalSubeEvidenciaDescripcion">Descripción:</label>
|
|
<textarea class="form-control" id="modalSubeEvidenciaDescripcion" rows="3" name="descripcion"></textarea>
|
|
</div>
|
|
|
|
<div id="modalSubeEvidenciaUrlDiv" class="form-group">
|
|
<label for="modalSubeEvidenciaUrl" class="col-form-label">Archivo o Url:</label>
|
|
<input type="text" class="form-control" id="modalSubeEvidenciaUrl" name="url">
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="modalSubeEvidenciaArchivo">Seleccione el archivo</label>
|
|
<input type="file" id="modalSubeEvidenciaArchivo" name="documento">
|
|
</div>
|
|
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cerrar</button>
|
|
<button type="submit" class="btn btn-primary">Guardar</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="modal fade" id="modalConfigActa" tabindex="-1" aria-labelledby="modalConfigActaLabel" aria-hidden="true">
|
|
<div class="modal-dialog modal-lg">
|
|
<div class="modal-content">
|
|
<form method="POST" action="{{ url_for('gestion.acta') }}">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title text-primary text-truncate"><i class="mr-2 fas fa-file-signature"></i> <span id="modalConfigActaLabel">Nueva Acta</span></h5>
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
<span aria-hidden="true">×</span>
|
|
</button>
|
|
</div>
|
|
<div class="modal-body"><div class="card" id="modalConfigActaBody">
|
|
|
|
<div class="card-header" id="modalConfigActaResumenAccordeon">
|
|
<h2 class="mb-0">
|
|
<button class="font-weight-bold text-dark btn btn-link btn-block text-left collapsed" type="button" data-toggle="collapse" data-target="#collapseActaResumen" aria-expanded="true" aria-controls="collapseActaResumen">
|
|
<i class="mr-2 fas fa-address-book"></i> Resumen del Acta
|
|
</button>
|
|
</h2>
|
|
</div>
|
|
|
|
<div id="collapseActaResumen" class="collapse show" aria-labelledby="modalConfigActaResumen" data-parent="#modalConfigActaBody">
|
|
<div class="card-body">
|
|
<input type="hidden" class="form-control" id="modalConfigActaId" name="aid">
|
|
<input type="hidden" class="form-control" id="modalConfigActaPid" name="pid">
|
|
<div class="form-group">
|
|
<label for="modalConfigActaUbicacion" class="col-form-label">Ubicación:</label>
|
|
<input type="text" class="form-control" id="modalConfigActaLugar" name="lugar" required>
|
|
</div>
|
|
<div class="row">
|
|
<div class="form-group col-md-4 col-12">
|
|
<label for="modalConfigActaFecha" class="col-form-label">Fecha:</label>
|
|
<input type="text" class="form-control" id="modalConfigActaFecha" name="fecha" required>
|
|
</div>
|
|
<div class="form-group col-md-4 col-12">
|
|
<label for="modalConfigActaHini" class="col-form-label">Hora Inicio:</label>
|
|
<input type="text" class="form-control" id="modalConfigActaHini" name="hini" required>
|
|
</div>
|
|
<div class="form-group col-md-4 col-12">
|
|
<label for="modalConfigActaHfin" class="col-form-label">Hora Fin:</label>
|
|
<input type="text" class="form-control" id="modalConfigActaHfin" name="hfin" required>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="modalConfigActaAsistentes" class="col-form-label">Convocados:</label>
|
|
<select class="js-multiple form-control" multiple="multiple" id="modalConfigActaAsistentes" name="asistentes" required style="width: 100%">
|
|
{% for persona in nodo.miembros_habilitados %}
|
|
<option value="{{ persona.id }}">{{ persona.nombrecompleto }}</option>
|
|
{%- endfor %}
|
|
</select>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="modalConfigActaInvitados">Invitados:</label>
|
|
<textarea class="form-control" id="modalConfigActaInvitados" rows="3" name="invitados" placeholder='Una persona por línea. Correo y luego Nombre. Ej:
|
|
correo@dominio.cl Nombre Apellido
|
|
correo2@gob.cl Cargo del Invitado'></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="card-header" id="modalConfigActaTemarioAccordeon">
|
|
<h2 class ="mb-0">
|
|
<button class="font-weight-bold text-dark btn btn-link btn-block text-left collapsed" type="button" data-toggle="collapse" data-target="#collapseActaTemario" aria-expanded="false" aria-controls="collapseActaTemario">
|
|
<i class="mr-2 fas fa-list-ol"></i> Temario
|
|
</button>
|
|
</h2>
|
|
</div>
|
|
<div id="collapseActaTemario" class="collapse" aria-labelledby="modalConfigActaTemario" data-parent="#modalConfigActaBody">
|
|
<div class="card-body">
|
|
<div class="form-group">
|
|
<!-- <label for="modalConfigActaTemario">Temario:</label>-->
|
|
<textarea class="form-control" id="modalConfigActaTemario" rows="11" name="temario" placeholder='- Tema1
|
|
- Tema 2' required></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card-header" id="modalConfigActaDesarrolloAccordeon">
|
|
<h2 class="mb-0">
|
|
<button class="font-weight-bold text-dark btn btn-link btn-block text-left collapsed" type="button" data-toggle="collapse" data-target="#collapseActaDesarrollo" aria-expanded="false" aria-controls="collapseActaDesarrollo">
|
|
<i class="mr-2 fas fa-align-justify"></i> Desarrollo (Opcional)
|
|
</button>
|
|
</h2>
|
|
</div>
|
|
<div id="collapseActaDesarrollo" class="collapse" aria-labelledby="modalConfigActaDesarrollo" data-parent="#modalConfigActaBody">
|
|
<div class="card-body">
|
|
<div class="form-group">
|
|
<!-- <label for="modalConfigActaDesarrollo">Desarrollo:</label>-->
|
|
<textarea class="form-control" id="modalConfigActaDesarrollo" rows="11" name="desarrollo" placeholder=''></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card-header" id="modalConfigActaAcuerdosAccordeon">
|
|
<h2 class="mb-0">
|
|
<button class="font-weight-bold text-dark btn btn-link btn-block text-left collapsed" type="button" data-toggle="collapse" data-target="#collapseActaAcuerdos" aria-expanded="false" aria-controls="collapseActaAcuerdos">
|
|
<i class="mr-2 fas fa-pen-nib"></i> Acuerdos, Compromisos y Tareas
|
|
</button>
|
|
</h2>
|
|
</div>
|
|
<div id="collapseActaAcuerdos" class="collapse" aria-labelledby="modalConfigActaAcuerdos" data-parent="#modalConfigActaBody">
|
|
<div class="card-body">
|
|
<div class="form-group">
|
|
<!-- <label for="modalConfigActaAcuerdos">Acuerdos:</label>-->
|
|
<textarea class="form-control" id="modalConfigActaAcuerdos" rows="11" name="acuerdos" placeholder=''></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
</div></div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cerrar</button>
|
|
<button type="submit" class="btn btn-primary">Guardar</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script src="/static/utf8_decode.js"></script>
|
|
<script src="/static/jquery.timepicker.min.js"></script>
|
|
<script src="/static/bootstrap-datepicker.min.js"></script>
|
|
<script src="/static/bootstrap-datepicker.es.min.js" charset="UTF-8"></script>
|
|
<script src="/static/select2.min.js"></script>
|
|
<script>
|
|
$('#modalConfigActaFecha').datepicker({
|
|
format: "dd/mm/yyyy",
|
|
language: "es",
|
|
todayBtn: "linked",
|
|
autoclose: true,
|
|
daysOfWeekHighlighted: "0",
|
|
todayHighlight: true
|
|
});
|
|
|
|
$('#modalConfirmaReporteParcialFechaI').datepicker({
|
|
format: "dd/mm/yyyy",
|
|
language: "es",
|
|
todayBtn: "linked",
|
|
autoclose: true,
|
|
daysOfWeekHighlighted: "0",
|
|
todayHighlight: true
|
|
});
|
|
|
|
$('#modalConfirmaReporteParcialFechaF').datepicker({
|
|
format: "dd/mm/yyyy",
|
|
language: "es",
|
|
todayBtn: "linked",
|
|
autoclose: true,
|
|
daysOfWeekHighlighted: "0",
|
|
todayHighlight: true
|
|
});
|
|
|
|
|
|
$(document).ready(function(){
|
|
$('#modalConfigActaHini').timepicker({
|
|
timeFormat: 'H:mm',
|
|
interval: 15,
|
|
minTime: '7:30',
|
|
maxTime: '18:30',
|
|
defaultTime: '14:30',
|
|
startTime: '7:00',
|
|
dynamic: false,
|
|
dropdown: true,
|
|
scrollbar: true,
|
|
zindex: 9999999
|
|
});
|
|
$('#modalConfigActaHfin').timepicker({
|
|
timeFormat: 'H:mm',
|
|
interval: 15,
|
|
minTime: '9:00',
|
|
maxTime: '21:30',
|
|
defaultTime: '15:30',
|
|
startTime: '9:00',
|
|
dynamic: false,
|
|
dropdown: true,
|
|
scrollbar: true,
|
|
zindex: 9999999
|
|
});
|
|
|
|
$('#modalConfigActaAsistentes').select2();
|
|
});
|
|
|
|
|
|
|
|
$('#modalConfirmaReporteParcial').on('show.bs.modal', function (event) {
|
|
var button = $(event.relatedTarget); // Button that triggered the modal
|
|
var oid = button.data('oid') || 0;
|
|
|
|
if (oid > 0){
|
|
$("#modalConfirmaReporteParcialOid").val(oid);
|
|
}
|
|
|
|
});
|
|
|
|
$('#confirmaEnvioModal').on('show.bs.modal', function (event) {
|
|
var button = $(event.relatedTarget); // Button that triggered the modal
|
|
var url1 = button.data('href1');
|
|
var url2 = button.data('href2');
|
|
|
|
$("#confirmaEnvioModalUrl1").prop("href", url1);
|
|
$("#confirmaEnvioModalUrl2").prop("href", url2);
|
|
|
|
});
|
|
|
|
$('#modalSubeEvidencia').on('show.bs.modal', function (event) {
|
|
var button = $(event.relatedTarget); // Button that triggered the modal
|
|
var actaidid = parseInt(button.data('actaid')) || 0;
|
|
var actividadid = parseInt(button.data('actividadid')) || 0;
|
|
var largo = parseInt(button.data('largo')) || 0;
|
|
|
|
var hash = button.data('hash');
|
|
var nombre = button.data('nombre');
|
|
var desc = button.data('desc');
|
|
|
|
var tipo = button.data('tipo');
|
|
|
|
var modal = $(this);
|
|
|
|
if(hash > 0){
|
|
modal.find('.modal-title').text(tipo + ' - ' + nombre);
|
|
}
|
|
else{
|
|
modal.find('.modal-title').text('Nuevo'+tipo);
|
|
}
|
|
|
|
if(largo>0){
|
|
$("#modalSubeEvidenciaUrlDiv").addClass("d-none");
|
|
}
|
|
else{
|
|
$("#modalSubeEvidenciaUrlDiv").removeClass("d-none");
|
|
}
|
|
|
|
$("#modalSubeEvidenciaHash").val(hash);
|
|
$("#modalSubeEvidenciaActividad").val(actividadid);
|
|
$("#modalSubeEvidenciaActa").val(actaidid);
|
|
$("#modalSubeEvidenciaNombre").val(nombre);
|
|
$("#modalSubeEvidenciaDescripcion").val(desc);
|
|
$('#modalSubeEvidenciaUrl').val('');
|
|
$('#modalSubeEvidenciaArchivo').val('');
|
|
|
|
});
|
|
|
|
$('#modalConfigActividadFecha').datepicker({
|
|
format: "dd/mm/yyyy",
|
|
language: "es",
|
|
todayBtn: "linked",
|
|
autoclose: true,
|
|
daysOfWeekHighlighted: "0",
|
|
todayHighlight: true
|
|
});
|
|
|
|
function horasdedicacionsemanal(){
|
|
var data = $("#modalConfigActividadDedicacion").val();
|
|
var dedicacion = parseInt(data) || 0;
|
|
|
|
var HDS = Math.round(dedicacion / 0.26)/100.0;
|
|
var HDSTXT = `${HDS} HDS`;
|
|
|
|
$('#modalConfigActividadHDS').text(HDSTXT);
|
|
}
|
|
|
|
$('#modalConfigActividadDedicacion').keyup(horasdedicacionsemanal);
|
|
|
|
|
|
$('#modalConfigActa').on('show.bs.modal', function (event) {
|
|
var button = $(event.relatedTarget); // Button that triggered the modal
|
|
var aid = parseInt(button.data('aid')) || 0;
|
|
var secuencia = parseInt(button.data('secuencia')) || 0;
|
|
var pid = parseInt(button.data('pid')) || 0;
|
|
|
|
if(aid > 0){
|
|
$('#modalConfigActaLabel').text('Configuración del Acta '+ secuencia);
|
|
$("#modalConfigActaId").val(aid);
|
|
$("#modalConfigActaPid").val(pid);
|
|
|
|
var lugar = button.data('lugar');
|
|
var fecha = button.data('fecha');
|
|
var hini = button.data('hini');
|
|
var hfin = button.data('hfin');
|
|
var miembros = button.data('miembros');
|
|
|
|
var invitados = utf8_decode(window.atob(button.data('invitados')));
|
|
var temario = utf8_decode(window.atob(button.data('temas')));
|
|
var desarrollo = utf8_decode(window.atob(button.data('desarrollo')));
|
|
var acuerdos = utf8_decode(window.atob(button.data('acuerdos')));
|
|
|
|
|
|
$("#modalConfigActaLugar").val(lugar);
|
|
$('#modalConfigActaFecha').val(fecha).datepicker("update");
|
|
$("#modalConfigActaHini").val(hini);
|
|
$("#modalConfigActaHfin").val(hfin);
|
|
$('#modalConfigActaAsistentes').val(null).trigger('change');
|
|
$('#modalConfigActaAsistentes').val(miembros).trigger('change');
|
|
$('#modalConfigActaInvitados').val(invitados);
|
|
$('#modalConfigActaTemario').val(temario);
|
|
$('#modalConfigActaDesarrollo').val(desarrollo);
|
|
$('#modalConfigActaAcuerdos').val(acuerdos);
|
|
|
|
}
|
|
else if (pid > 0){
|
|
var todos = new Array(
|
|
{%- for persona in nodo.miembros_habilitados -%}
|
|
{{ persona.id }},
|
|
{%- endfor -%}
|
|
);
|
|
$('#modalConfigActaLabel').text('Nueva Acta');
|
|
$("#modalConfigActaId").val(0);
|
|
$("#modalConfigActaPid").val(pid)
|
|
;
|
|
$("#modalConfigActaLugar").val('');
|
|
$('#modalConfigActaFecha').val('').datepicker("update");
|
|
$("#modalConfigActaHini").val('');
|
|
$("#modalConfigActaHfin").val('');
|
|
$('#modalConfigActaAsistentes').val(todos).trigger('change');
|
|
$('#modalConfigActaInvitados').val('');
|
|
$('#modalConfigActaTemario').val('');
|
|
$('#modalConfigActaDesarrollo').val('');
|
|
$('#modalConfigActaAcuerdos').val('');
|
|
|
|
$('#modalConfigActaResumenAccordeon').collapse('show');
|
|
$('#modalConfigActaTemarioAccordeon').collapse('hide');
|
|
$('#modalConfigActaDesarrolloAccordeon').collapse('hide');
|
|
$('#modalConfigActaAcuerdosAccordeon').collapse('hide');
|
|
}
|
|
});
|
|
|
|
$('#modalConfigActividad').on('show.bs.modal', function (event) {
|
|
var button = $(event.relatedTarget); // Button that triggered the modal
|
|
var oid = parseInt(button.data('oid')) || 0;
|
|
var pid = parseInt(button.data('pid')) || 0;
|
|
var dedicacion = parseInt(button.data('dedicacion')) || 0;
|
|
|
|
|
|
var fecha = button.data('fecha');
|
|
var nombre = button.data('nombre');
|
|
var descipcion = button.data('descripcion');
|
|
|
|
|
|
|
|
if(oid > 0){
|
|
$('#modalConfigActividadLabel').text('Configuración de ' + nombre);
|
|
$("#modalConfigActividadId").val(oid);
|
|
$("#modalConfigActividadPid").val(0);
|
|
$("#modalConfigActividadNombre").val(nombre);
|
|
$("#modalConfigActividadDedicacion").val(dedicacion);
|
|
$("#modalConfigActividadDescripcion").val(descipcion);
|
|
$('#modalConfigActividadFecha').val(fecha).datepicker("update");
|
|
}
|
|
else if (pid > 0){
|
|
$('#modalConfigActividadLabel').text('Nueva Actividad');
|
|
$("#modalConfigActividadId").val(0);
|
|
$("#modalConfigActividadPid").val(pid);
|
|
$("#modalConfigActividadNombre").val(nombre);
|
|
$("#modalConfigActividadDedicacion").val(dedicacion);
|
|
$("#modalConfigActividadDescripcion").val(descipcion);
|
|
$('#modalConfigActividadFecha').val(fecha).datepicker("update");
|
|
}
|
|
horasdedicacionsemanal();
|
|
|
|
|
|
});
|
|
|
|
$('#modalConfigIndicador').on('show.bs.modal', function (event) {
|
|
var button = $(event.relatedTarget); // Button that triggered the modal
|
|
var oid = parseInt(button.data('oid')) || 0;
|
|
var pid = parseInt(button.data('pid')) || 0;
|
|
var ini = parseInt(button.data('ini')) || 0;
|
|
var val = parseInt(button.data('val')) || 0;
|
|
var meta = parseInt(button.data('meta')) || 100;
|
|
var nombre = button.data('nombre');
|
|
|
|
if(oid > 0){
|
|
$('#modalConfigIndicadorLabel').text('Configuración de ' + nombre);
|
|
$("#modalConfigIndicadorId").val(oid);
|
|
$("#modalConfigIndicadorPid").val(0);
|
|
}
|
|
else{
|
|
$('#modalConfigIndicadorLabel').text('Nuevo Indicador');
|
|
$("#modalConfigIndicadorId").val(0);
|
|
$("#modalConfigIndicadorPid").val(pid);
|
|
}
|
|
|
|
$("#modalConfigIndicadorNombre").val(nombre);
|
|
|
|
$('#modalConfigIndicadorInicial').val(ini);
|
|
$('#modalConfigIndicadorValor').val(val);
|
|
$('#modalConfigIndicadorMeta').val(meta);
|
|
|
|
});
|
|
|
|
|
|
</script>
|
|
{% endmacro %}
|
|
|
|
{% macro show_js(nodo, redirect='', invitado=True) %}
|
|
<div class="modal fade" id="modalConfigObjetivo{{ nodo.id }}" tabindex="-1" aria-labelledby="modalConfigObjetivoLabel{{ nodo.id }}" aria-hidden="true">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<form method="POST" action="{{ url_for('gestion.modificar') }}">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title" id="modalConfigObjetivoLabel{{ nodo.id }}">Nuevo ciclo</h5>
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
<span aria-hidden="true">×</span>
|
|
</button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<input type="hidden" class="form-control" id="modalConfigObjetivoId{{ nodo.id }}" name="oid">
|
|
<input type="hidden" class="form-control" id="modalConfigObjetivoPid{{ nodo.id }}" name="pid">
|
|
<input type="hidden" class="form-control" name="redirect" value="{{ redirect }}">
|
|
<div class="form-group">
|
|
<label for="modalConfigObjetivoNombre{{ nodo.id }}" class="col-form-label">Nombre:</label>
|
|
<input type="text" class="form-control" id="modalConfigObjetivoNombre{{ nodo.id }}" name="nombre">
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="modalConfigObjetivoDescripcion{{ nodo.id }}">Descripción:</label>
|
|
<textarea class="form-control" id="modalConfigObjetivoDescripcion{{ nodo.id }}" rows="3" name="descripcion"></textarea>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="modalConfigObjetivoResponsable{{ nodo.id }}" class="col-form-label">Responsable:</label>
|
|
<select class="form-control" id="modalConfigObjetivoResponsable{{ nodo.id }}" name="responsable">
|
|
{% for grupo in nodo.comisiones_validas %}
|
|
<option value="{{ grupo.id }}">{{ grupo.nombre }}</option>
|
|
{%- endfor %}
|
|
</select>
|
|
</div>
|
|
{% if invitado == True %}
|
|
<div class="form-group">
|
|
<label for="modalConfigObjetivoInvitado{{ nodo.id }}" class="col-form-label">Invitado:</label>
|
|
<select class="form-control" id="modalConfigObjetivoInvitado{{ nodo.id }}" name="invitado">
|
|
<option value="0">Sin Comisión</option>
|
|
{% for grupo in nodo.comisiones_validas %}
|
|
<option value="{{ grupo.id }}">{{ grupo.nombre }}</option>
|
|
{%- endfor %}
|
|
</select>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cerrar</button>
|
|
<button type="submit" class="btn btn-primary">Guardar</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<script>
|
|
|
|
$('#modalConfigObjetivo{{ nodo.id }}').on('show.bs.modal', function (event) {
|
|
|
|
var button = $(event.relatedTarget); // Button that triggered the modal
|
|
var oid = parseInt(button.data('oid')) || 0;
|
|
var pid = parseInt(button.data('pid')) || 0;
|
|
var rid = parseInt(button.data('rid')) || 0;
|
|
var iid = parseInt(button.data('iid')) || 0;
|
|
var nombre = button.data('nombre');
|
|
var desc = button.data('desc');
|
|
|
|
var modal = $(this);
|
|
|
|
if(oid > 0){
|
|
modal.find('.modal-title').text('Configuración de ' + nombre);
|
|
$("#modalConfigObjetivoId{{ nodo.id }}").val(oid);
|
|
$("#modalConfigObjetivoPid{{ nodo.id }}").val(0);
|
|
}
|
|
else{
|
|
modal.find('.modal-title').text('Nuevo Sub-objetivo');
|
|
$("#modalConfigObjetivoId{{ nodo.id }}").val(0);
|
|
$("#modalConfigObjetivoPid{{ nodo.id }}").val(pid);
|
|
}
|
|
|
|
$("#modalConfigObjetivoNombre{{ nodo.id }}").val(nombre);
|
|
$("#modalConfigObjetivoDescripcion{{ nodo.id }}").val(desc);
|
|
$('#modalConfigObjetivoResponsable{{ nodo.id }}').val(rid);
|
|
$('#modalConfigObjetivoInvitado{{ nodo.id }}').val(iid);
|
|
|
|
});
|
|
</script>
|
|
{% endmacro %}
|