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
24 changes: 13 additions & 11 deletions 2026/codigo_conducta.html
Original file line number Diff line number Diff line change
Expand Up @@ -220,14 +220,16 @@ <h2 id="inaceptable">4. Lo que no se acepta</h2>
</div>

<h2 id="imagen">5. Fotos, grabaciones y tu imagen</h2>
<p>El evento se graba y se fotografía: las charlas se publican después y hay cobertura para
redes.</p>
<p>La organización prevé documentar el evento con fotografías. Aún no está confirmado qué
jornadas o salas se grabarán ni si se publicarán videos de las charlas. Antes de grabar
o publicar una actividad, informaremos a las personas participantes qué se cubrirá y
dónde se difundirá.</p>
<ul>
<li><strong>Las charlas se graban.</strong> Al presentar una ponencia aceptas que se
grabe y se publique. Si tienes una razón para no aparecer, avísanos antes y lo
resolvemos.</li>
<li><strong>Presentar una ponencia no autoriza por sí solo su grabación o publicación.</strong>
Si se confirma que una charla se grabará o publicará, informaremos antes a la persona
ponente del alcance y la plataforma, y acordaremos la autorización correspondiente.</li>
<li><strong>Las fotos generales del evento</strong> —auditorio, pasillos, actividades—
se toman y se publican como registro del evento.</li>
podrán tomarse y compartirse en las redes del evento como registro de la actividad.</li>
<li><strong>Si no quieres salir en fotos, dínoslo.</strong> En el evento puedes decírselo
a cualquier persona del equipo o directamente a quien está tomando la foto. Se
respeta, sin que tengas que dar explicaciones.</li>
Expand Down Expand Up @@ -277,8 +279,8 @@ <h2 id="salud">8. Salud</h2>
<p>La jornada del viernes reúne a gente de todo el país en un mismo auditorio.</p>
<ul>
<li><strong>Si amaneciste con síntomas de una enfermedad contagiosa —fiebre, gripe
fuerte, tos persistente— no vengas.</strong> El registro es gratuito y las
charlas quedan grabadas; no pierdes nada. Escríbenos y te ayudamos.</li>
fuerte, tos persistente— no vengas.</strong> El registro es gratuito. Escríbenos
y te ayudamos a conocer las opciones disponibles.</li>
<li>Usar mascarilla es bienvenido y nadie va a comentarte nada por hacerlo.</li>
<li><strong>Respeta el espacio de los demás.</strong> Si alguien te indica que prefiere
distancia o que no da la mano, respétalo. Insistir o burlarse de eso <strong>es una
Expand Down Expand Up @@ -381,8 +383,8 @@ <h2 id="transparencia">14. Transparencia</h2>
decorativo. Si hubo cero reportes, también lo decimos.</p>

<h2 id="creditos">15. Versión, licencia y créditos</h2>
<p><strong>Versión 1.1</strong>, vigente desde el <strong>6 de septiembre de 2026</strong> —
PyCon Panamá 2026, aprobada por la Dirección del evento. Este es un
<p><strong>Versión 1.2</strong>, actualizada el <strong>27 de septiembre de 2026</strong> —
aclara que la grabación y publicación de charlas aún no están confirmadas. Este es un
<strong>documento vivo</strong>: se actualiza cuando haga falta, y la versión publicada
en este sitio es siempre la vigente.</p>
<p><strong>Licencia:</strong> Creative Commons Attribution-ShareAlike 3.0 (CC BY-SA 3.0).
Expand Down Expand Up @@ -413,7 +415,7 @@ <h2 id="creditos">15. Versión, licencia y créditos</h2>
</ul>
</div>

<p class="doc-meta">Versión 1.1 — última actualización: 6 de septiembre de 2026.</p>
<p class="doc-meta">Versión 1.2 — última actualización: 27 de septiembre de 2026.</p>
</div>
</section>
</main>
Expand Down
4 changes: 2 additions & 2 deletions 2026/js/supabase-config.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
*/

// Debe coincidir con la versión publicada en codigo_conducta.html.
var COC_VERSION = '1.1';
var PRIVACY_VERSION = '1.1';
var COC_VERSION = '1.2';
var PRIVACY_VERSION = '1.2';

var DEFAULT_SUPABASE_URL = 'https://wfiyucykjoohdiazlqbz.supabase.co';
var DEFAULT_SUPABASE_ANON_KEY = 'sb_publishable_wlIN6gMmG_pVr-h-MAaLOw_jUyW4pmB';
Expand Down
2 changes: 1 addition & 1 deletion 2026/ponentes.html
Original file line number Diff line number Diff line change
Expand Up @@ -334,7 +334,7 @@ <h2>¿Por qué presentar en PyCon?</h2>
<!-- Supabase CDN Client Library & Config -->
<script src="https://cdn.jsdelivr.net/npm/@supabase/supabase-js@2"></script>
<script src="js/env.js"></script>
<script src="js/supabase-config.js?v=5427c37ebf46"></script>
<script src="js/supabase-config.js?v=c50c42dd957b"></script>
<script src="js/main.js"></script>
<script>
const form = document.getElementById('speakerForm');
Expand Down
25 changes: 16 additions & 9 deletions 2026/privacidad.html
Original file line number Diff line number Diff line change
Expand Up @@ -225,17 +225,24 @@ <h2 id="terceros">5. Con quién se comparten</h2>
<li><strong>Google</strong> — el correo del evento, y Google Meet para la transmisión de
la jornada del jueves.</li>
</ul>
<p>Por ahora no hay una plataforma confirmada para publicar grabaciones de las charlas. Si
se decide publicarlas, identificaremos aquí la plataforma y las condiciones antes de
difundir el material.</p>
<p>También podemos compartir datos si nos lo exige una autoridad competente por una vía
legal válida. Si eso pasa y podemos avisarte, te avisamos.</p>

<h2 id="imagen">6. Fotos, grabaciones y tu imagen</h2>
<p>El evento se fotografía y se graba: las charlas se publican después y hay cobertura para
redes. Las reglas completas están en la sección
<p>La organización prevé fotografías del evento. Aún no se ha confirmado qué jornadas o
salas se grabarán ni si se publicarán videos de las charlas. Las reglas completas están
en la sección
<a href="codigo_conducta.html#imagen">«Fotos, grabaciones y tu imagen»</a> del Código de
Conducta. En resumen:</p>
<ul>
<li>Las charlas se graban y se publican; al presentar una ponencia lo aceptas.</li>
<li>Las fotos generales del evento se publican como registro del evento.</li>
<li>Presentar una ponencia no implica autorizar su grabación o publicación. Si se decide
grabarla o difundirla, informaremos antes qué actividad se cubrirá, dónde se
publicará y qué autorización se requiere.</li>
<li>Las fotos generales del evento podrán compartirse en las redes del evento como
registro de la actividad.</li>
<li><strong>Si no quieres salir en fotos, dínoslo</strong> —en el evento, a cualquier
persona del equipo— y se respeta, sin que tengas que explicar por qué.</li>
<li>Si aparece una foto tuya publicada y quieres que la bajemos, escríbenos y la bajamos.
Expand Down Expand Up @@ -303,16 +310,16 @@ <h2 id="cambios">11. Cambios a este aviso</h2>
historial público del repositorio del sitio.</p>

<h2 id="version">12. Versión y vigencia</h2>
<p><strong>Versión 1.1</strong>, vigente desde el
<strong>9 de septiembre de 2026</strong>. Esta versión aclara los datos necesarios para
organizar cada jornada y registrar solicitudes de accesibilidad. La versión 1.1 del
Código de Conducta rige desde el 6 de septiembre de 2026.</p>
<p><strong>Versión 1.2</strong>, actualizada el
<strong>27 de septiembre de 2026</strong>. Esta versión aclara que todavía no se ha
confirmado la grabación ni la publicación de charlas. La versión 1.2 del Código de
Conducta contiene la misma aclaración.</p>
<p>Este aviso se refiere al tratamiento de datos de <strong>PyCon Panamá 2026</strong>. El
Código de Conducta del evento está en su
<a href="codigo_conducta.html">propia página</a>.</p>
</div>

<p class="doc-meta">Versión 1.1 — última actualización: 9 de septiembre de 2026.</p>
<p class="doc-meta">Versión 1.2 — última actualización: 27 de septiembre de 2026.</p>
</div>
</section>
</main>
Expand Down
2 changes: 1 addition & 1 deletion 2026/registro.html
Original file line number Diff line number Diff line change
Expand Up @@ -340,7 +340,7 @@ <h2>PyCon Panamá 2026</h2>
<!-- Supabase CDN Client Library & Config -->
<script src="https://cdn.jsdelivr.net/npm/@supabase/supabase-js@2"></script>
<script src="js/env.js"></script>
<script src="js/supabase-config.js?v=5427c37ebf46"></script>
<script src="js/supabase-config.js?v=c50c42dd957b"></script>
<script src="js/main.js"></script>
<script>
const form = document.getElementById('registroForm');
Expand Down
2 changes: 1 addition & 1 deletion 2026/voluntariado/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ <h2>Construyamos PyCon juntos</h2>

<script src="https://cdn.jsdelivr.net/npm/@supabase/supabase-js@2"></script>
<script src="../js/env.js"></script>
<script src="../js/supabase-config.js?v=5427c37ebf46"></script>
<script src="../js/supabase-config.js?v=c50c42dd957b"></script>
<script src="../js/main.js"></script>
<script src="../js/voluntariado.js"></script>
</body>
Expand Down
5 changes: 5 additions & 0 deletions scripts/validate_site.py
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,11 @@ def handle_starttag(self, tag: str, attrs: list[tuple[str, str | None]]) -> None
if tag == "link" and "canonical" in (values.get("rel") or "").split():
if values.get("href"):
self.canonicals.append(values["href"])
# preconnect y dns-prefetch nombran un origen, no un recurso: la raíz
# de fonts.googleapis.com responde 404 aunque el servicio funcione.
link_rels = set((values.get("rel") or "").lower().split())
if tag == "link" and link_rels & {"preconnect", "dns-prefetch"}:
return
if tag in {"a", "img", "iframe", "link", "script", "source"}:
reference = values.get("href") or values.get("src")
if reference:
Expand Down
4 changes: 2 additions & 2 deletions sitemap.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,13 @@
</url>
<url>
<loc>https://pycon.pa/2026/codigo_conducta.html</loc>
<lastmod>2026-08-24</lastmod>
<lastmod>2026-09-27</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://pycon.pa/2026/privacidad.html</loc>
<lastmod>2026-09-06</lastmod>
<lastmod>2026-09-27</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
Expand Down
2 changes: 1 addition & 1 deletion tests/registro-page.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -26,5 +26,5 @@ test('el aviso de privacidad coincide con los datos del registro', () => {
assert.match(privacy, /presencialmente o por Google Meet/);
assert.match(privacy, /ajuste de accesibilidad/);
assert.match(privacy, /versión y fecha en que aceptaste/);
assert.match(privacy, /Versión 1\.1/);
assert.match(privacy, /Versión 1\.2/);
});
Loading