templates/organizacion/nueva_postulacion.html.twig line 1

Open in your IDE?
  1. {% extends 'base_organizacion.html.twig' %}
  2. {% block title %}Puntos de cultura{% endblock %}
  3. {% block body_c9 %}
  4. <div class="card-body">
  5.             <h5>Puntos de cultura</h5>
  6.                <div>
  7.                   <p>
  8.                      Un Punto de Cultura es una iniciativa que reconoce y promueve proyectos, colectivos, organizaciones o espacios dedicados al fortalecimiento cultural de una comunidad. Estos puntos son núcleos de creatividad y participación ciudadana que fomentan la diversidad cultural, el acceso a la cultura, y la preservación de tradiciones, saberes y expresiones artísticas locales. Su propósito es empoderar a las comunidades a través de la cultura como un medio de transformación social, integrando aspectos educativos, sociales y artísticos en beneficio de su entorno.
  9.                   </p>
  10.                </div>
  11.             {% if organizaciones|length == 0 and convocatorias|length == 0 %}
  12.                 <h5 class="text-danger">No puede postular porque no tiene organizaciones registradas en el RAC y no existen convocatorias abiertas.</h5>
  13.             {% elseif organizaciones|length == 0 %}
  14.                 <h5 class="text-danger">No puede postular porque no tiene organizaciones registradas en el RAC.</h5>
  15.             {% elseif convocatorias|length == 0 %}
  16.                 <h5 class="text-danger">No puede postular porque no existen convocatorias abiertas.</h5>
  17.             {% else %}
  18.             <div style="border: 1px solid black; padding: 10px;">
  19.                <h5>Nueva Postulacion</h5>
  20.                {{ form_start(form) }}
  21.                <div class="col col-3" style="display: flex; flex-direction:column; margin-bottom: 10px">
  22.                     <label>Convocatoria</label>
  23.                     {{ form_widget(form.convocatoria, { 'attr': { 'class': 'form-control' } }) }}
  24.                </div>
  25.                <div class="col col-3" style="display: flex; flex-direction:column; margin-bottom: 10px">
  26.                     <label>Organizacion</label>
  27.                     {{ form_widget(form.organizacion, { 'attr': { 'class': 'form-control', 'id': form.organizacion.vars.id } }) }}
  28.                </div>
  29.                <div style="border: 1px solid black; padding: 10px;">
  30.                 <div class="col col-3" style="display: flex; flex-direction:column; margin-bottom: 10px">
  31.                     <label>Nombre</label>
  32.                     <input type="text" id="nombre-input" class="form-control" disabled/>
  33.                 </div>
  34.                 <div class="col col-3" style="display: flex; flex-direction:column; margin-bottom: 10px">
  35.                     <label>Rut</label>
  36.                     <input type="text" id="rut-input" class="form-control" disabled/>
  37.                 </div>
  38.                 <div class="col col-3" style="display: flex; flex-direction:column; margin-bottom: 10px">
  39.                     <label>Region</label>
  40.                     <input type="text" id="region-input" class="form-control" disabled/>
  41.                 </div>
  42.                 <div class="col col-3" style="display: flex; flex-direction:column; margin-bottom: 10px">
  43.                     <label>Email</label>
  44.                     <input type="text" id="email-input" class="form-control" disabled/>
  45.                 </div>
  46.                 <div style="margin: 15px; padding:15px 15px;" class="text-end">
  47.                   {{ form_widget(form.save, { 'attr': { 'class': 'btn btn-primary' } }) }}
  48.                       {{ form_end(form) }}
  49.                 </div>
  50.                </div>
  51.             </div>
  52.             {% endif %}
  53.             <div class="row mt-2">
  54.                 <div class="col-12">
  55.                     <div style="display:block; float:right" >
  56.                         <a href="{{ path('organizacion_home') }}" class="btn btn-outline-danger" style="float:left">Volver</a>
  57.                     </div>
  58.                     <div style="display:block; float:right" >
  59.                     </div>
  60.                 </div>
  61.             </div>
  62. </div>
  63. {% endblock %}
  64. {% block body_c3 %}
  65.     <p>Usuario: {{userCuActual.rolNumero}}-{{userCuActual.rolDv}} (Rut)</p>
  66.    <button style="float: right; padding: 10" class="btn btn-danger" type="button" onclick="cerrarSesion();">Cerrar sesión</button>
  67. {% endblock %}
  68. {% block javascripts %}
  69. <script>
  70.     document.addEventListener('DOMContentLoaded', function () {
  71.         const organizaciones = {{ organizacionesDictionary|json_encode|raw }};
  72.         const organizacionSelect = document.getElementById('{{ form.organizacion.vars.id }}');
  73.         const nombreInput = document.getElementById('nombre-input');
  74.         const rutInput = document.getElementById('rut-input');
  75.         const regionInput = document.getElementById('region-input');
  76.         const emailInput = document.getElementById('email-input');
  77.         // Obtener el select generado por Symfony usando su ID
  78.         const selectElement = document.getElementById("{{ form.organizacion.vars.id }}");
  79.         // Asegúrate de que el select está presente
  80.         if (selectElement) {
  81.             // Obtener todas las opciones del select
  82.             const options = selectElement.options;
  83.             // Recorrer todas las opciones y deshabilitarlas
  84.             for (let i = 0; i < options.length; i++) {
  85.                 options[i].disabled = true; // Deshabilitar cada opción
  86.             }
  87.         }
  88.         organizacionSelect.addEventListener('change', function () {
  89.             const selectedValue = organizacionSelect.value;
  90.             if (selectedValue) {
  91.                 nombreInput.value = organizaciones[selectedValue].nombre_org;
  92.                 rutInput.value = organizaciones[selectedValue].rut_completo;
  93.                 regionInput.value = organizaciones[selectedValue].datos_org.region;
  94.                 emailInput.value = organizaciones[selectedValue].datos_org.email_contacto;
  95.             } else {
  96.                 nombreInput.value = '';
  97.                 rutInput.value = '';
  98.                 regionInput.value = '';
  99.                 emailInput.value = '';
  100.             }
  101.         });
  102.         const convocatoriaSelect = document.getElementById('{{ form.convocatoria.vars.id }}');
  103.         const organizacionesConvocadas = {{ convocatoriasByPostulaciones|json_encode()|raw }};
  104.         if (convocatoriaSelect) {
  105.             convocatoriaSelect.addEventListener("change", function() {
  106.                 const convocatoriaId = convocatoriaSelect.value;
  107.                 // Obtener todas las opciones del select
  108.                 const options = selectElement.options;
  109.                 // Recorrer todas las opciones y deshabilitarlas
  110.                 for (let i = 0; i < options.length; i++) {
  111.                     const orgaId = options[i].value;
  112.                     options[i].disabled = organizacionesConvocadas[convocatoriaId].includes(orgaId);
  113.                 }
  114.             });
  115.         }
  116.     });
  117. </script>
  118. {% endblock %}
  119. {% block javascript_end_body %}
  120.     <script type="text/javascript">
  121.         function cerrarSesion() {
  122.             const claveUnicaLogoutUrl = "{{ userCuActual.urlToLogout }}";
  123.             const appLogoutUrl = "{{ path('auth_cu_logout') }}";
  124.             // Redirigir a Clave Única
  125.             window.location.href = claveUnicaLogoutUrl;
  126.             // Luego de 1 segundo, redirigir al logout de la aplicación
  127.             setTimeout(function () {
  128.                 window.location.href = appLogoutUrl;
  129.             }, 1000);
  130.         }
  131.     </script>
  132. {% endblock %}