- /pedir/: calendario de fechas pedidas (negro) y confirmadas (verde), findes tranqui y con ruido, solo findes por defecto con opción de ver la semana entera. Se pincha un día libre y, sin sesión, se pide entrar y se vuelve al formulario con la fecha puesta. - Gestor en Go (gestor/): cuentas por colectivo con argon2id, sesiones y CSRF, cupo y ventana de la asamblea, caducidades, registro append-only. - La cuenta de la asamblea confirma, rechaza, cambia turnos de finde y en «Todas las fechas» quita o modifica cualquier evento. - Orden «cuenta» y «clave» con -clave y -definitiva para fijar contraseñas desde el servidor; ninguna contraseña va en el repositorio. - Botón «Pedir evento» arriba de la barra lateral en todas las páginas. - Calendario semanal en móvil: lista de días con nombre y hora de cada cita. - Fuentes servidas desde fuentes/: fuera Google Fonts en todas las páginas.
51 lines
2.4 KiB
HTML
51 lines
2.4 KiB
HTML
{{template "arriba" .}}
|
|
|
|
<section class="pantalla" aria-label="Pedir una fecha">
|
|
<h2>Pedir una fecha</h2>
|
|
<ul class="pedir-reglas">
|
|
<li>Entre el <strong>{{.Primero.Legible}}</strong> y el <strong>{{.Ultimo.Legible}}</strong>.</li>
|
|
<li>Como mucho <strong>{{.Reglas.CupoDias}} días por colectivo</strong> en esos {{.Reglas.MesesVentana}} meses. Os quedan {{.Restantes}}.</li>
|
|
<li>Las fechas se piden para el finde: viernes, sábado o domingo.</li>
|
|
<li>Si el evento es de un colectivo de fuera, decid cuál: vuestro colectivo lo amadrina y responde por él.</li>
|
|
</ul>
|
|
|
|
<form class="pedir-form" method="post" action="/pedir/nueva">
|
|
<input type="hidden" name="csrf" value="{{.CSRF}}">
|
|
<p>
|
|
<label for="titulo">Nombre del evento</label>
|
|
<input id="titulo" name="titulo" type="text" required maxlength="80" value="{{.Sol.Titulo}}">
|
|
</p>
|
|
<p>
|
|
<label for="desde">Primer día</label>
|
|
<input id="desde" name="desde" type="date" required
|
|
min="{{.Primero}}" max="{{.Ultimo}}" value="{{.Sol.Desde}}">
|
|
</p>
|
|
<p>
|
|
<label for="hasta">Último día</label>
|
|
<input id="hasta" name="hasta" type="date"
|
|
min="{{.Primero}}" max="{{.Ultimo}}" value="{{.Sol.Hasta}}">
|
|
<span class="pista">Dejadlo vacío si es un solo día.</span>
|
|
</p>
|
|
<p>
|
|
<label for="hora">Hora de inicio</label>
|
|
<input id="hora" name="hora" type="time" value="{{.Sol.Hora}}">
|
|
</p>
|
|
<p>
|
|
<label for="amadrinado">Colectivo de fuera al que amadrináis</label>
|
|
<input id="amadrinado" name="amadrinado" type="text" maxlength="80" value="{{.Sol.Amadrinado}}">
|
|
<span class="pista">Vacío si el evento es vuestro.</span>
|
|
</p>
|
|
<p>
|
|
<label for="contacto">Contacto de ese colectivo</label>
|
|
<input id="contacto" name="contacto" type="text" maxlength="120" value="{{.Sol.Contacto}}">
|
|
<span class="pista">Correo o teléfono de quien responde por ellos.</span>
|
|
</p>
|
|
<p>
|
|
<label for="notas">Notas para la asamblea</label>
|
|
<textarea id="notas" name="notas" rows="4" maxlength="500">{{.Sol.Notas}}</textarea>
|
|
</p>
|
|
<p><button type="submit">Pedir la fecha</button></p>
|
|
</form>
|
|
</section>
|
|
|
|
{{template "abajo" .}}
|