parent
2a87fe9898
commit
22cc7a5e37
Binary file not shown.
Binary file not shown.
@ -1,21 +1,47 @@ |
||||
{% extends 'base.html' %} |
||||
|
||||
{% block content %} |
||||
<style> |
||||
.bg-custom-lightblue { |
||||
background-color: #5bc0de; /* Color azul claro personalizado */ |
||||
} |
||||
</style> |
||||
<div class="container mt-5"> |
||||
<div class="card shadow-lg"> |
||||
<div class="card-header bg-primary text-white"> |
||||
<h3>Registrar Nueva Cuenta</h3> |
||||
</div> |
||||
<div class="card-body"> |
||||
<form method="POST"> |
||||
{% csrf_token %} |
||||
{{ form.as_p }} |
||||
|
||||
<button type="submit" class="btn btn-success">Guardar</button> |
||||
<a href="{% url 'lista_cuentas' %}" class="btn btn-secondary">Cancelar</a> |
||||
</form> |
||||
<div class="row justify-content-center"> |
||||
<div class="col-md-6"> |
||||
<div class="card shadow-lg rounded-4"> |
||||
<div class="card-header bg-custom-lightblue text-white text-center"> |
||||
<h3 class="mb-0">Registrar Nueva Cuenta</h3> |
||||
</div> |
||||
<div class="card-body p-4"> |
||||
<form method="POST" class="needs-validation" novalidate> |
||||
{% csrf_token %} |
||||
|
||||
<!-- Estilización de los campos --> |
||||
{% for field in form %} |
||||
<div class="mb-3"> |
||||
<label for="{{ field.id_for_label }}" class="form-label fw-semibold"> |
||||
{{ field.label }} |
||||
</label> |
||||
{{ field }} |
||||
{% if field.help_text %} |
||||
<small class="text-muted">{{ field.help_text }}</small> |
||||
{% endif %} |
||||
{% for error in field.errors %} |
||||
<div class="text-danger">{{ error }}</div> |
||||
{% endfor %} |
||||
</div> |
||||
{% endfor %} |
||||
|
||||
<!-- Botones --> |
||||
<div class="d-flex justify-content-end mt-4 gap-2"> |
||||
<a href="{% url 'lista_cuentas' %}" class="btn btn-secondary">Cancelar</a> |
||||
<button type="submit" class="btn btn-success">Guardar</button> |
||||
</div> |
||||
</form> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
|
||||
{% endblock %} |
||||
@ -1,80 +1,93 @@ |
||||
{% extends "Base.html" %} |
||||
{% extends "base.html" %} |
||||
|
||||
{% block content %} |
||||
{% if user.is_authenticated %} |
||||
{% if not user.is_authenticated %} |
||||
|
||||
{% else %} |
||||
<style> |
||||
/* Fondo con degradado */ |
||||
body { |
||||
background: #2c2f36; /* Color de fondo oscuro */ |
||||
color: #fff; /* Texto en blanco para contraste */ |
||||
background: linear-gradient(to right, #2c3e50, #34495e); |
||||
color: #fff; |
||||
} |
||||
/* Tarjeta de login */ |
||||
.card { |
||||
background-color: #ffffff; /* Fondo blanco para el formulario */ |
||||
border-radius: 12px; |
||||
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); |
||||
background-color: #ffffff; |
||||
border-radius: 15px; |
||||
box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.2); |
||||
} |
||||
.card-body { |
||||
padding: 30px; |
||||
padding: 35px; |
||||
} |
||||
/* Etiquetas del formulario */ |
||||
.form-label { |
||||
color: #333; /* Color de las etiquetas */ |
||||
color: #333; |
||||
font-weight: bold; |
||||
} |
||||
/* Inputs con bordes redondeados */ |
||||
.form-control { |
||||
border-radius: 10px; |
||||
box-shadow: none; |
||||
transition: 0.3s ease; |
||||
} |
||||
.form-control:focus { |
||||
border-color: #5bc0de; |
||||
box-shadow: 0px 0px 8px rgba(91, 192, 222, 0.8); |
||||
} |
||||
/* Botón de inicio de sesión */ |
||||
.btn-primary { |
||||
background-color: #007bff; /* Botón azul */ |
||||
border-color: #007bff; |
||||
background-color: #5bc0de; |
||||
border-color: #5bc0de; |
||||
border-radius: 10px; |
||||
font-size: 16px; |
||||
letter-spacing: 1px; |
||||
font-weight: bold; |
||||
} |
||||
.btn-primary:hover { |
||||
background-color: #0056b3; /* Color al pasar el ratón */ |
||||
border-color: #0056b3; |
||||
} |
||||
.alert { |
||||
background-color: #f8d7da; /* Fondo rojo suave para los errores */ |
||||
border-color: #f5c6cb; |
||||
background-color: #39b3d7; |
||||
border-color: #39b3d7; |
||||
} |
||||
.alert p { |
||||
margin-bottom: 0; |
||||
/* Enlace de registro */ |
||||
.text-muted:hover { |
||||
color: #5bc0de !important; |
||||
} |
||||
</style> |
||||
<div class="container-fluid p-0" style="height: 100vh; background-color: #2c2f36;"> |
||||
<div class="d-flex justify-content-center align-items-center" style="height: 100vh;"> |
||||
<div class="card shadow-lg p-4" style="max-width: 400px; border-radius: 12px; background-color: #ffffff;"> |
||||
<div class="card-body"> |
||||
<h3 class="text-center mb-4" style="color: #333;">Iniciar Sesión</h3> |
||||
|
||||
<form method="post"> |
||||
{% csrf_token %} |
||||
<div class="mb-3"> |
||||
<label for="username" class="form-label" style="color: #333;">Nombre de Usuario</label> |
||||
<input type="text" class="form-control" id="username" name="username" required |
||||
style="border-radius: 10px; box-shadow: none; transition: all 0.3s ease;"> |
||||
</div> |
||||
<!-- Contenedor principal --> |
||||
<div class="container-fluid d-flex justify-content-center align-items-center" style="height: 100vh;"> |
||||
<div class="card shadow-lg p-4" style="max-width: 400px;"> |
||||
<div class="card-body"> |
||||
<h3 class="text-center mb-4" style="color: #333;">Iniciar Sesión</h3> |
||||
|
||||
<div class="mb-3"> |
||||
<label for="password" class="form-label" style="color: #333;">Contraseña</label> |
||||
<input type="password" class="form-control" id="password" name="password" required |
||||
style="border-radius: 10px; box-shadow: none; transition: all 0.3s ease;"> |
||||
</div> |
||||
<form method="post"> |
||||
{% csrf_token %} |
||||
<div class="mb-3"> |
||||
<label for="username" class="form-label">Nombre de Usuario</label> |
||||
<input type="text" class="form-control" id="username" name="username" required> |
||||
</div> |
||||
|
||||
<button type="submit" class="btn btn-dark w-100" style="border-radius: 10px; font-size: 16px; letter-spacing: 1px;"> |
||||
Iniciar Sesión |
||||
</button> |
||||
</form> |
||||
<div class="text-center mt-3"> |
||||
<a href="{% url 'signup' %}" class="text-muted" style="font-size: 14px;">Registrar</a> |
||||
<div class="mb-3"> |
||||
<label for="password" class="form-label">Contraseña</label> |
||||
<input type="password" class="form-control" id="password" name="password" required> |
||||
</div> |
||||
|
||||
<button type="submit" class="btn btn-primary w-100"> |
||||
<i class="fas fa-sign-in-alt"></i> Iniciar Sesión |
||||
</button> |
||||
</form> |
||||
<div class="text-center mt-3"> |
||||
<a href="{% url 'signup' %}" class="text-muted">Registrarse</a> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
|
||||
{% endif %} |
||||
{% endblock %} |
||||
|
||||
{% endblock %} |
||||
{% block footer %} |
||||
<footer class="footer mt-auto py-3 bg-dark text-white"> |
||||
<div class="container"> |
||||
<span class="text-muted">© 2024 Mi Aplicación. Todos los derechos reservados.</span> |
||||
</div> |
||||
</footer> |
||||
{% endblock %} |
||||
|
||||
<footer class="footer mt-auto py-3 bg-dark text-white text-center"> |
||||
<div class="container"> |
||||
<span>© 2025 Registro | Todos los derechos reservados</span> |
||||
</div> |
||||
</footer> |
||||
{% endblock %} |
||||
@ -1,54 +1,64 @@ |
||||
{% extends 'base.html' %} |
||||
|
||||
{% block content %} |
||||
<div class="container mt-5"> |
||||
<h2>Lista de Cuentas</h2> |
||||
<div class="d-flex gap-2 mb-3"> |
||||
<div class="container mt-4"> |
||||
<div class="d-flex justify-content-between align-items-center mb-4"> |
||||
<h2 class="text-primary fw-bold">Lista de Cuentas</h2> |
||||
{% if es_superusuario %} |
||||
<a href="{% url 'lista_cuentas' %}?todas=1" class="btn btn-secondary"> |
||||
Ver Todas las Cuentas |
||||
</a> |
||||
<a href="{% url 'lista_cuentas' %}" class="btn btn-secondary"> |
||||
Ver Mis Cuentas |
||||
</a> |
||||
<div class="btn-group"> |
||||
<a href="{% url 'lista_cuentas' %}?todas=1" class="btn btn-outline-primary">Ver Todas</a> |
||||
<a href="{% url 'lista_cuentas' %}" class="btn btn-outline-secondary">Mis Cuentas</a> |
||||
</div> |
||||
{% endif %} |
||||
</div> |
||||
<div class="table-responsive"> |
||||
<table class="table table-striped"> |
||||
<thead> |
||||
<tr> |
||||
<th>Nombre</th> |
||||
<th>Saldo</th> |
||||
<th>Responsable</th> |
||||
<th>Fecha Creación</th> |
||||
<th>Observaciones</th> |
||||
<th>Acciones</th> |
||||
</tr> |
||||
</thead> |
||||
<tbody> |
||||
{% for cuenta in cuentas %} |
||||
<tr> |
||||
<td>{{ cuenta.cuenta }}</td> |
||||
<td>{{ cuenta.saldo }}</td> |
||||
<td>{{ cuenta.responsable.username }}</td> |
||||
<td>{{ cuenta.fecha_creacion }}</td> |
||||
<td>{{ cuenta.observacion }}</td> |
||||
<td> |
||||
<a href="{% url 'lista_movimientos' cuenta.id %}" class="btn btn-info btn-sm"> |
||||
Ver Movimientos |
||||
</a> |
||||
<a href="{% url 'exportar_movimientos_excel' cuenta.id %}" class="btn btn-success btn-sm"> |
||||
Exportar a Excel |
||||
</a> |
||||
</td> |
||||
</tr> |
||||
{% endfor %} |
||||
</tbody> |
||||
</table> |
||||
</div> |
||||
|
||||
<div class="card shadow-sm"> |
||||
<div class="card-body"> |
||||
<div class="table-responsive"> |
||||
<table class="table table-hover align-middle"> |
||||
<thead class="table-primary"> |
||||
<tr> |
||||
<th>Nombre</th> |
||||
<th>Saldo</th> |
||||
<th>Responsable</th> |
||||
<th>Fecha Creación</th> |
||||
<th>Observaciones</th> |
||||
<th class="text-center">Acciones</th> |
||||
</tr> |
||||
</thead> |
||||
<tbody> |
||||
{% for cuenta in cuentas %} |
||||
<tr> |
||||
<td class="fw-bold">{{ cuenta.cuenta }}</td> |
||||
<td class="{% if cuenta.saldo < 0 %}text-danger{% else %}text-success{% endif %} fw-semibold"> |
||||
${{ cuenta.saldo }} |
||||
</td> |
||||
<td>{{ cuenta.responsable.username }}</td> |
||||
<td>{{ cuenta.fecha_creacion|date:"d/m/Y" }}</td> |
||||
<td>{{ cuenta.observacion|default:"-" }}</td> |
||||
<td class="text-center"> |
||||
<a href="{% url 'lista_movimientos' cuenta.id %}" class="btn btn-sm btn-info"> |
||||
<i class="fas fa-list"></i> Movimientos |
||||
</a> |
||||
<a href="{% url 'exportar_movimientos_excel' cuenta.id %}" class="btn btn-sm btn-success"> |
||||
<i class="fas fa-file-excel"></i> Exportar |
||||
</a> |
||||
</td> |
||||
</tr> |
||||
{% empty %} |
||||
<tr> |
||||
<td colspan="6" class="text-center text-muted">No hay cuentas disponibles.</td> |
||||
</tr> |
||||
{% endfor %} |
||||
</tbody> |
||||
</table> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
|
||||
<a href="{% url 'registrar_cuenta' %}" class="btn btn-success btn-lg rounded-circle position-fixed bottom-0 end-0 m-3 shadow-lg"> |
||||
<i class="fas fa-plus"></i> |
||||
<a href="{% url 'registrar_cuenta' %}" class="btn btn-success btn-lg rounded-circle position-fixed bottom-0 end-0 m-4 shadow-lg d-flex align-items-center justify-content-center" style="width: 60px; height: 60px;"> |
||||
<i class="fas fa-plus"></i> |
||||
</a> |
||||
{% endblock %} |
||||
|
||||
{% endblock %} |
||||
@ -1,49 +1,59 @@ |
||||
{% extends 'base.html' %} |
||||
|
||||
{% block content %} |
||||
<div class="container mt-5"> |
||||
<h2>Movimientos de la cuenta: {{ cuenta.cuenta }}</h2> |
||||
<div class="table-responsive"> |
||||
<table class="table table-striped"> |
||||
<thead> |
||||
<tr> |
||||
<th>Tipo</th> |
||||
<th>Monto</th> |
||||
<th>Fecha</th> |
||||
<th>Observación</th> |
||||
<th># de factura</th> |
||||
<th>fecha de factura</th> |
||||
<th>responsable</th> |
||||
<th>Acciones</th> |
||||
</tr> |
||||
</thead> |
||||
<tbody> |
||||
{% for movimiento in movimientos %} |
||||
<tr> |
||||
<td>{{ movimiento.tipo_movimiento }}</td> |
||||
<td>{{ movimiento.saldo }}</td> |
||||
<td>{{ movimiento.fecha_insersion }}</td> |
||||
<td>{{ movimiento.observacion }}</td> |
||||
<td>{{ movimiento.n_factura }}</td> |
||||
<td>{{ movimiento.fecha_factura }}</td> |
||||
<td>{{ movimiento.responsable_cuenta }}</td> |
||||
<td> |
||||
<a href="{% url 'actualizar_movimiento' movimiento.id %}" class="btn btn-warning btn-sm"> |
||||
Editar |
||||
</a> |
||||
</td> |
||||
</tr> |
||||
{% empty %} |
||||
<tr> |
||||
<td colspan="4" class="text-center">No hay movimientos registrados.</td> |
||||
</tr> |
||||
{% endfor %} |
||||
</tbody> |
||||
</table> |
||||
</div> |
||||
<div class="container mt-4"> |
||||
<div class="d-flex justify-content-between align-items-center mb-4"> |
||||
<h2 class="text-primary fw-bold">Movimientos de la cuenta: {{ cuenta.cuenta }}</h2> |
||||
</div> |
||||
|
||||
<div class="card shadow-sm"> |
||||
<div class="card-body"> |
||||
<div class="table-responsive"> |
||||
<table class="table table-hover align-middle"> |
||||
<thead class="table-primary"> |
||||
<tr> |
||||
<th>Tipo</th> |
||||
<th>Monto</th> |
||||
<th>Fecha</th> |
||||
<th>Observación</th> |
||||
<th># de Factura</th> |
||||
<th>Fecha de Factura</th> |
||||
<th>Responsable</th> |
||||
<th class="text-center">Acciones</th> |
||||
</tr> |
||||
</thead> |
||||
<tbody> |
||||
{% for movimiento in movimientos %} |
||||
<tr> |
||||
<td class="fw-bold">{{ movimiento.tipo_movimiento }}</td> |
||||
<td class="{% if movimiento.tipo_movimiento.id == 2 %}text-danger{% else %}text-success{% endif %} fw-semibold"> |
||||
${{ movimiento.saldo }} |
||||
</td> |
||||
<td>{{ movimiento.fecha_insersion|date:"d/m/Y" }}</td> |
||||
<td>{{ movimiento.observacion|default:"-" }}</td> |
||||
<td>{{ movimiento.n_factura|default:"-" }}</td> |
||||
<td>{{ movimiento.fecha_factura|date:"d/m/Y"|default:"-" }}</td> |
||||
<td>{{ movimiento.responsable_cuenta }}</td> |
||||
<td class="text-center"> |
||||
<a href="{% url 'actualizar_movimiento' movimiento.id %}" class="btn btn-sm btn-warning"> |
||||
<i class="fas fa-edit"></i> Editar |
||||
</a> |
||||
</td> |
||||
</tr> |
||||
{% empty %} |
||||
<tr> |
||||
<td colspan="8" class="text-center text-muted">No hay movimientos registrados.</td> |
||||
</tr> |
||||
{% endfor %} |
||||
</tbody> |
||||
</table> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
|
||||
<a href="{% url 'registrar_movimiento' cuenta.id %}" class="btn btn-success btn-lg rounded-circle position-fixed bottom-0 end-0 m-3 shadow-lg"> |
||||
<a href="{% url 'registrar_movimiento' cuenta.id %}" class="btn btn-success btn-lg rounded-circle position-fixed bottom-0 end-0 m-4 shadow-lg d-flex align-items-center justify-content-center" style="width: 60px; height: 60px;"> |
||||
<i class="fas fa-plus"></i> |
||||
</a> |
||||
{% endblock %} |
||||
|
||||
{% endblock %} |
||||
|
||||
@ -1,108 +1,121 @@ |
||||
{% extends "Base.html" %} |
||||
|
||||
{% block content %} |
||||
|
||||
<style> |
||||
body { |
||||
background: #2c2f36; /* Color de fondo oscuro */ |
||||
color: #fff; /* Texto en blanco para contraste */ |
||||
background: #f0f4f8; /* Fondo azul claro */ |
||||
color: #333; /* Texto oscuro */ |
||||
} |
||||
.card { |
||||
background-color: #ffffff; /* Fondo blanco para el formulario */ |
||||
background-color: #ffffff; /* Tarjeta con fondo blanco */ |
||||
border-radius: 12px; |
||||
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); |
||||
} |
||||
.card-body { |
||||
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1); |
||||
max-width: 600px; /* Aumenté el ancho */ |
||||
width: 100%; |
||||
padding: 30px; |
||||
} |
||||
.form-label { |
||||
color: #333; /* Color de las etiquetas */ |
||||
color: #444; /* Color de etiquetas */ |
||||
font-weight: 600; |
||||
} |
||||
.btn-primary { |
||||
background-color: #007bff; /* Botón azul */ |
||||
.form-control { |
||||
border-radius: 8px; |
||||
border: 1px solid #ced4da; |
||||
padding: 12px; |
||||
transition: 0.3s; |
||||
font-size: 16px; |
||||
} |
||||
.form-control:focus { |
||||
border-color: #007bff; |
||||
box-shadow: 0 0 5px rgba(0, 123, 255, 0.3); |
||||
} |
||||
.btn-primary { |
||||
background-color: #3b82f6; /* Azul claro */ |
||||
border-color: #3b82f6; |
||||
font-size: 18px; |
||||
font-weight: 600; |
||||
border-radius: 8px; |
||||
padding: 12px; |
||||
transition: 0.3s; |
||||
} |
||||
.btn-primary:hover { |
||||
background-color: #0056b3; /* Color al pasar el ratón */ |
||||
border-color: #0056b3; |
||||
background-color: #2563eb; /* Azul más oscuro al pasar el cursor */ |
||||
border-color: #2563eb; |
||||
} |
||||
.alert { |
||||
background-color: #f8d7da; /* Fondo rojo suave para los errores */ |
||||
background-color: #f8d7da; /* Fondo rojo suave para errores */ |
||||
border-color: #f5c6cb; |
||||
} |
||||
.alert p { |
||||
margin-bottom: 0; |
||||
font-size: 14px; |
||||
padding: 10px; |
||||
} |
||||
</style> |
||||
|
||||
<div class="container"> |
||||
<div class="row justify-content-center mt-5"> |
||||
<div class="col-md-6"> |
||||
<div class="card shadow-lg"> |
||||
<div class="card-body"> |
||||
<h2 class="text-center mb-4" style="color: #333;">Registrar Nueva Cuenta</h2> |
||||
<div class="container d-flex justify-content-center align-items-center" style="min-height: 90vh;"> |
||||
<div class="card shadow-lg"> |
||||
<div class="card-body"> |
||||
<h2 class="text-center mb-4" style="color: #222;">Registrar Nueva Cuenta</h2> |
||||
|
||||
<form method="POST"> |
||||
{% csrf_token %} |
||||
|
||||
<div class="form-group mb-3"> |
||||
<label for="username" class="form-label">Nombre de Usuario</label> |
||||
<input type="text" class="form-control" id="username" name="username" value="{{ form.username.value }}"> |
||||
{% if form.username.errors %} |
||||
<div class="alert alert-danger mt-2"> |
||||
{% for error in form.username.errors %} |
||||
<p>{{ error }}</p> |
||||
{% endfor %} |
||||
</div> |
||||
{% endif %} |
||||
</div> |
||||
<form method="POST"> |
||||
{% csrf_token %} |
||||
|
||||
<div class="form-group mb-3"> |
||||
<label for="email" class="form-label">Correo Electrónico</label> |
||||
<input type="email" class="form-control" id="email" name="email" value="{{ form.email.value }}"> |
||||
{% if form.email.errors %} |
||||
<div class="alert alert-danger mt-2"> |
||||
{% for error in form.email.errors %} |
||||
<p>{{ error }}</p> |
||||
{% endfor %} |
||||
</div> |
||||
{% endif %} |
||||
<div class="form-group mb-3"> |
||||
<label for="username" class="form-label">Nombre de Usuario</label> |
||||
<input type="text" class="form-control" id="username" name="username" value="{{ form.username.value|default:'' }}"> |
||||
{% if form.username.errors %} |
||||
<div class="alert alert-danger mt-2"> |
||||
{% for error in form.username.errors %} |
||||
<p>{{ error }}</p> |
||||
{% endfor %} |
||||
</div> |
||||
{% endif %} |
||||
</div> |
||||
|
||||
<div class="form-group mb-3"> |
||||
<label for="password1" class="form-label">Contraseña</label> |
||||
<input type="password" class="form-control" id="password1" name="password1" value="{{ form.password1.value }}"> |
||||
{% if form.password1.errors %} |
||||
<div class="alert alert-danger mt-2"> |
||||
{% for error in form.password1.errors %} |
||||
<p>{{ error }}</p> |
||||
{% endfor %} |
||||
</div> |
||||
{% endif %} |
||||
<div class="form-group mb-3"> |
||||
<label for="email" class="form-label">Correo Electrónico</label> |
||||
<input type="email" class="form-control" id="email" name="email" value="{{ form.email.value|default:'' }}"> |
||||
{% if form.email.errors %} |
||||
<div class="alert alert-danger mt-2"> |
||||
{% for error in form.email.errors %} |
||||
<p>{{ error }}</p> |
||||
{% endfor %} |
||||
</div> |
||||
{% endif %} |
||||
</div> |
||||
|
||||
<div class="form-group mb-3"> |
||||
<label for="password2" class="form-label">Confirmar Contraseña</label> |
||||
<input type="password" class="form-control" id="password2" name="password2" value="{{ form.password2.value }}"> |
||||
{% if form.password2.errors %} |
||||
<div class="alert alert-danger mt-2"> |
||||
{% for error in form.password2.errors %} |
||||
<p>{{ error }}</p> |
||||
{% endfor %} |
||||
</div> |
||||
{% endif %} |
||||
<div class="form-group mb-3"> |
||||
<label for="password1" class="form-label">Contraseña</label> |
||||
<input type="password" class="form-control" id="password1" name="password1"> |
||||
{% if form.password1.errors %} |
||||
<div class="alert alert-danger mt-2"> |
||||
{% for error in form.password1.errors %} |
||||
<p>{{ error }}</p> |
||||
{% endfor %} |
||||
</div> |
||||
{% endif %} |
||||
</div> |
||||
|
||||
<div class="text-center"> |
||||
<button type="submit" class="btn btn-primary w-100">Registrar</button> |
||||
<div class="form-group mb-3"> |
||||
<label for="password2" class="form-label">Confirmar Contraseña</label> |
||||
<input type="password" class="form-control" id="password2" name="password2"> |
||||
{% if form.password2.errors %} |
||||
<div class="alert alert-danger mt-2"> |
||||
{% for error in form.password2.errors %} |
||||
<p>{{ error }}</p> |
||||
{% endfor %} |
||||
</div> |
||||
</form> |
||||
<div class="text-center mt-3"> |
||||
<a href="{% url 'signin' %}" class="text-muted" style="font-size: 14px;">¿Ya tienes cuenta? Inicia sesión</a> |
||||
</div> |
||||
{% endif %} |
||||
</div> |
||||
|
||||
<div class="text-center"> |
||||
<button type="submit" class="btn btn-primary w-100">Registrar</button> |
||||
</div> |
||||
</form> |
||||
|
||||
<div class="text-center mt-3"> |
||||
<a href="{% url 'signin' %}" class="text-muted" style="font-size: 15px;">¿Ya tienes cuenta? Inicia sesión</a> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
{% endblock %} |
||||
<br> |
||||
{% endblock %} |
||||
|
||||
Loading…
Reference in new issue