Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions 2026/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ <h1>PyCon Panamá <span>2026</span></h1>
<p class="hero-tagline">Python en la era de la Inteligencia Artificial.<br>Construir. Comprender. Transformar.</p>
<div class="hero-actions">
<a class="btn btn-primary" href="registro.html">Registro de asistentes</a>
<a class="btn btn-secondary" href="voluntariado/"><i class="fas fa-hands-helping" aria-hidden="true"></i> Súmate como voluntario</a>
<a class="btn btn-secondary" href="agenda.html"><i class="fas fa-calendar-alt" aria-hidden="true"></i> Ver la agenda</a>
</div>
</div>
<div class="hero-card home-hero-card">
Expand Down Expand Up @@ -132,8 +132,8 @@ <h3>Convocatoria de ponencias</h3>
</a>
<a class="card card--link" href="voluntariado/">
<span class="home-card-icon" aria-hidden="true"><i class="fa-solid fa-hands-helping"></i></span>
<h3>Súmate como voluntario</h3>
<p>Apoya la organización de PyCon Panamá 2026.</p>
<h3>Voluntariado</h3>
<p>Cerró el 8 de octubre. ¡Gracias por postularte!</p>
<span class="home-card-arrow"><i class="fa-solid fa-arrow-right"></i></span>
</a>
<a class="card card--link" href="patrocinadores.html">
Expand Down
1 change: 1 addition & 0 deletions 2026/js/voluntariado.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@

form.addEventListener('submit', async event => {
event.preventDefault();
if (btnSubmit.disabled) return;
const roles = checkedValues('roles');
const availability = checkedValues('availability');

Expand Down
11 changes: 6 additions & 5 deletions 2026/voluntariado/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Voluntariado - PyCon Panamá 2026</title>
<meta name="description" content="Súmate al equipo de voluntariado de PyCon Panamá 2026 y apoya registro, logística, ponentes, audiovisuales, comunicaciones y accesibilidad.">
<meta name="description" content="La convocatoria de voluntariado de PyCon Panamá 2026 cerró el jueves 8 de octubre. Gracias a quienes se postularon.">
<meta name="theme-color" content="#2483f2">
<meta property="og:type" content="website">
<meta property="og:image" content="https://pycon.pa/2026/img/PyConPet.jpg">
<meta property="og:locale" content="es_PA">
<meta property="og:site_name" content="PyCon Panamá">
<meta property="og:title" content="Voluntariado - PyCon Panamá 2026">
<meta property="og:description" content="Forma parte del equipo que hará posible PyCon Panamá 2026.">
<meta property="og:description" content="La convocatoria de voluntariado de PyCon Panamá 2026 cerró el jueves 8 de octubre.">
<meta property="og:url" content="https://pycon.pa/2026/voluntariado/">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://pycon.pa/2026/img/PyConPet.jpg">
Expand Down Expand Up @@ -71,7 +71,7 @@
<div class="container">
<div class="section-header">
<h1>Voluntariado PyCon Panamá 2026</h1>
<p class="section-text">Forma parte del equipo que hará posible la conferencia anual de Python en Panamá.</p>
<p class="section-text"><strong>La convocatoria cerró el jueves 8 de octubre de 2026.</strong> ¡Gracias a todas las personas que se postularon!</p>
</div>
</div>
</section>
Expand All @@ -80,7 +80,7 @@ <h1>Voluntariado PyCon Panamá 2026</h1>
<div class="container volunteer-layout">
<aside class="volunteer-aside">
<h2>Construyamos PyCon juntos</h2>
<p class="volunteer-window"><strong>Convocatoria abierta del 18 de septiembre al 9 de octubre de 2026.</strong> Revisamos las postulaciones a medida que llegan y coordinamos una breve entrevista con cada persona preseleccionada.</p>
<p class="volunteer-window"><strong>Convocatoria cerrada el 8 de octubre de 2026.</strong> Si te postulaste, el equipo te escribirá para coordinar una breve entrevista y confirmar funciones y horarios.</p>
<p>No necesitas saber programar ni haber colaborado antes. Buscamos personas responsables, respetuosas y con ganas de aportar.</p>
<ul>
<li><strong>Jueves 22 de octubre:</strong> jornada híbrida en Universidad del Istmo, Sede Panamá.</li>
Expand Down Expand Up @@ -175,7 +175,8 @@ <h2>Construyamos PyCon juntos</h2>
<p class="checkbox-note">Los enlaces se abren en otra pestaña para conservar lo que ya escribiste.</p>
</div>

<button id="btnSubmit" class="btn btn-primary" type="submit">Enviar postulación</button>
<p id="postulacionesCerradas"><strong>La recepción de postulaciones de voluntariado para PyCon Panamá 2026 está cerrada.</strong> Gracias por tu interés en sumarte. Si tienes preguntas, puedes escribirnos a <a href="mailto:pyconpanama@gmail.com">pyconpanama@gmail.com</a>.</p>
<button id="btnSubmit" class="btn btn-primary" type="submit" aria-describedby="postulacionesCerradas" disabled>Enviar postulación</button>
<p id="statusMessage" class="status-message" aria-live="polite"></p>
</form>
</div>
Expand Down
7 changes: 7 additions & 0 deletions tests/voluntariado-page.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,13 @@ test('el formulario recoge funciones, disponibilidad y consentimientos explícit
assert.match(page, /src="\.\.\/js\/voluntariado\.js"/);
});

test('la convocatoria está cerrada y el envío deshabilitado', () => {
assert.match(page, /La convocatoria cerró el jueves 8 de octubre de 2026/);
assert.match(page, /id="btnSubmit"[^>]+aria-describedby="postulacionesCerradas"[^>]+disabled/);
const script = fs.readFileSync('2026/js/voluntariado.js', 'utf8');
assert.match(script, /if \(btnSubmit\.disabled\) return;/);
});

test('todas las páginas principales enlazan el voluntariado', () => {
const pages = fs.readdirSync('2026')
.filter(name => name.endsWith('.html'))
Expand Down
Loading