"""Genera public/invitados.html a partir de guest_form.json (copia de las preguntas del formulario de Google).""" import html, json esc = html.escape F = json.load(open('guest_form.json', encoding='utf-8')) secciones, actual, nq = [], None, 0 consent = None for it in F['items']: t = it['type'] if t == 8: actual = {'titulo': it['title'], 'nota': it['desc'], 'preguntas': []} secciones.append(actual) elif t in (0, 1): nq += 1 actual['preguntas'].append({'id': f'q{nq:02d}', 'titulo': it['title'], 'desc': it['desc'], 'req': it['required'], 'largo': t == 1}) elif t == 4: consent = {'titulo': it['title'], 'opcion': it['options'][0], 'req': it['required']} consent_text = secciones[-1]['nota'] secciones.pop() # la última sección solo contiene las condiciones def pregunta(q): mark = ' *' if q['req'] else '' campo = (f'' if q['largo'] else f'') d = f'{esc(q["desc"])}' if q['desc'] else '' return f' ' bloques = [] for s in secciones: nota = f'\n

{esc(s["nota"])}

' if s['nota'] else '' bloques.append(f'
\n {esc(s["titulo"])}{nota}\n' + '\n'.join(pregunta(q) for q in s['preguntas']) + '\n
') page = f''' Ficha del invitado · Anda Que No Sabes Ná
Anda que no sabes ná

Ficha del invitado

''' open('public/invitados.html', 'w', encoding='utf-8').write(page) print('invitados.html:', len(page), 'bytes;', nq, 'preguntas;', len(secciones), 'secciones')