demander IA de faire tous les modifications pour que le webapp soit pret au déploiement.

Force connection HTTPS, proxy-inversé, WSGI de production, reset cookie de conncection à chaque reconnection, limite sur les mdp, fichiers et One on One par minute, verification d'injection de SQL dans les champs d'entrées. renommage des fichiers lors du téléchargement, fichier de backup quotidien pour la bd et j'ai oublié quelque chose :(
This commit is contained in:
cedrick2711
2026-07-25 18:47:27 -04:00
parent afdf6ded0e
commit 666673fa8f
24 changed files with 2513 additions and 171 deletions
+5 -46
View File
@@ -22,39 +22,6 @@
</div>
</div>
<div class="card mt-4">
<div class="card-header">
<h3><i class="fas fa-list"></i> Current Availability</h3>
</div>
<div class="card-body">
{% if existing_availability %}
<table class="table">
<thead>
<tr>
<th>Day</th>
<th>Time</th>
<th>Action</th>
</tr>
</thead>
<tbody>
{% for av in existing_availability %}
<tr>
<td>{{ ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'][av.day_of_week] }}</td>
<td>{{ av.start_time.strftime('%I:%M %p') }} - {{ av.end_time.strftime('%I:%M %p') }}</td>
<td>
<button type="button" class="btn btn-sm btn-danger" onclick="deleteAvailability({{ av.id }})">
<i class="fas fa-trash"></i> Remove
</button>
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% else %}
<p class="text-muted">No availability slots set. Use the grid above to add your available times.</p>
{% endif %}
</div>
</div>
{% endblock %}
{% block scripts %}
@@ -207,9 +174,12 @@ function saveAvailability() {
.then(response => response.json())
.then(data => {
if (data.success) {
flash('Availability saved successfully!', 'success');
setTimeout(() => location.reload(), 1000);
flash('Availability saved!', 'success');
}
})
.catch(function(error) {
console.error('Save error:', error);
flash('Error saving availability.', 'danger');
});
}
@@ -229,17 +199,6 @@ function clearAllAvailability() {
});
}
function deleteAvailability(availabilityId) {
fetch('{{ url_for("users.delete_coach_availability", availability_id=0) }}'.replace('/0', '/' + availabilityId), { method: 'POST' })
.then(response => response.json())
.then(data => {
if (data.success) {
flash('Availability slot removed!', 'success');
setTimeout(() => location.reload(), 1000);
}
});
}
function flash(message, type) {
const flashContainer = document.querySelector('.flash-messages');
const alert = document.createElement('div');