Files
proyecto-final/tienda/templates/tienda/editar_direccion.html
T
elordenador 551057b067 Rewrite all forms to use Django Forms with validation
- Add ProductEditForm, EditProfileForm, ChangePasswordForm, ShippingAddressForm
- Add ResetPasswordForm, ResetPasswordPhase2Form
- Update views to use new Django Forms
- Add form validation tests (terms required, password mismatch, etc)
- Update templates to use Django Forms {{ form.as_p }}
2026-05-08 09:42:44 +02:00

93 lines
3.0 KiB
HTML

{% extends "tienda/base.html" %}
{% load static %}
{% block content %}
<div class="row mt-4">
<div class="col-12">
<h2>{% if direccion %}Editar Dirección{% else %}Nueva Dirección{% endif %}</h2>
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="{% url 'portal_usuario' %}">Portal de Usuario</a></li>
<li class="breadcrumb-item"><a href="{% url 'direcciones_usuario' %}">Direcciones</a></li>
<li class="breadcrumb-item active">{% if direccion %}Editar{% else %}Nueva{% endif %}</li>
</ol>
</nav>
</div>
</div>
<div class="row mt-4">
<div class="col-md-8 col-lg-6">
<div class="card">
<div class="card-body">
<form method="POST">
{% csrf_token %}
{{ form.as_p }}
<div class="d-flex gap-2">
<button type="submit" class="btn btn-primary">{% if direccion %}Actualizar{% else %}Crear{% endif %} Dirección</button>
<a href="{% url 'direcciones_usuario' %}" class="btn btn-secondary">Cancelar</a>
</div>
</form>
</div>
</div>
</div>
</div>
<script>
(function () {
const cityInput = document.getElementById('city');
const form = cityInput ? cityInput.form : null;
if (!cityInput || !form) {
return;
}
const almeriaTowns = new Set([
{% for town in almeria_municipalities %}
"{{ town|escapejs }}",
{% endfor %}
].map(normalizeTown));
function normalizeTown(value) {
return (value || '')
.normalize('NFD')
.replace(/[\u0300-\u036f]/g, '')
.replace(/[^a-zA-Z0-9\s-]/g, '')
.replace(/-/g, ' ')
.toLowerCase()
.trim()
.replace(/\s+/g, ' ')
.replace(/^(la|los)\s+/, '');
}
function validateTown() {
const normalized = normalizeTown(cityInput.value);
if (!normalized) {
cityInput.setCustomValidity('');
cityInput.classList.remove('is-invalid');
return;
}
const isValid = almeriaTowns.has(normalized);
if (isValid) {
cityInput.setCustomValidity('');
cityInput.classList.remove('is-invalid');
} else {
cityInput.setCustomValidity('El pueblo/ciudad debe pertenecer a la provincia de Almería.');
cityInput.classList.add('is-invalid');
}
}
cityInput.addEventListener('input', validateTown);
cityInput.addEventListener('blur', validateTown);
form.addEventListener('submit', function () {
validateTown();
});
validateTown();
})();
</script>
{% endblock %}