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 %} - -
- Voir tous mes cours -
- {% else %} -

Aucun cours suivi pour le moment.

- {% endif %} + {% with progress_list=latest_progress %} + {% if progress_list %} + +
+ Voir tous mes cours +
+ {% 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