diff --git a/devart/sitemap.py b/devart/sitemap.py
index e761d33..c675d9d 100644
--- a/devart/sitemap.py
+++ b/devart/sitemap.py
@@ -12,7 +12,7 @@ class CourseSitemap(sitemaps.Sitemap):
priority = 0.9
def items(self):
- return Course.objects.filter(enable=True) # Exemple de filtre
+ return Course.objects.filter(enable=True).order_by('id')
def location(self, item):
# Assure-toi que ton modèle Course a bien une méthode get_absolute_url
diff --git a/templates/users/my_courses.html b/templates/users/my_courses.html
index f672141..dab8a7f 100644
--- a/templates/users/my_courses.html
+++ b/templates/users/my_courses.html
@@ -6,12 +6,27 @@
{% endblock %}
Mes cours
-
Retrouvez ici la liste de tous les cours que vous suivez.
-
+
Retrouvez ici la liste de tous les cours que vous suivez et votre progression.
+
+ {% if progress_list %}
+
+ {% else %}
+
Vous ne suivez aucun cours pour le moment.
+ {% endif %}
{% endblock %}
\ No newline at end of file
diff --git a/templates/users/profile.html b/templates/users/profile.html
index 57be63e..f9aae18 100644
--- a/templates/users/profile.html
+++ b/templates/users/profile.html
@@ -22,24 +22,27 @@
Mes cours
- {% with courses=user.course_set.all %}
- {% if courses %}
-
-
- {% else %}
-
Aucun cours suivi pour le moment.
- {% endif %}
+ {% with progress_list=latest_progress %}
+ {% if progress_list %}
+
+
+ {% else %}
+
Aucun cours suivi pour le moment.
+ {% endif %}
{% endwith %}
diff --git a/users/views.py b/users/views.py
index bf3c51d..a6d89cc 100644
--- a/users/views.py
+++ b/users/views.py
@@ -3,6 +3,7 @@ from django.contrib import messages
from django.contrib.auth import authenticate, login as auth_login, logout as auth_logout
from django.contrib.auth.models import User
from courses.models import Course
+from progression.models import Progression
from .forms import UserRegistrationForm, UserLoginForm, UserUpdateForm, ProfileUpdateForm, CompleteProfileForm
from django.contrib.auth.decorators import login_required
from django.core.mail import send_mail
@@ -81,7 +82,17 @@ def logout(request):
def profile(request):
if not hasattr(request.user, 'profile'):
return redirect('complete_profile')
- return render(request, 'users/profile.html')
+
+ latest_progress = (
+ Progression.objects
+ .filter(user=request.user)
+ .select_related('course')
+ .prefetch_related('completed_lessons')
+ .order_by('-updated_at')[:5]
+ )
+
+ # Affiche les 5 derniers cours regardés avec leur progression
+ return render(request, 'users/profile.html', {'latest_progress': latest_progress})
@login_required(login_url='login')
def complete_profile(request):
@@ -130,9 +141,16 @@ def account_update(request):
@login_required(login_url='login')
def my_courses(request):
- user_courses = Course.objects.filter(author=request.user.id)
- print(user_courses)
- return render(request, 'users/my_courses.html', {'user_courses' : user_courses})
+ # Liste tous les cours suivis par l'utilisateur avec leur progression
+ progress_list = (
+ Progression.objects
+ .filter(user=request.user)
+ .select_related('course')
+ .prefetch_related('completed_lessons')
+ .order_by('-updated_at')
+ )
+
+ return render(request, 'users/my_courses.html', {'progress_list': progress_list})
def create_post(request):
# Implement post creation logic here