Display latest ActivityLogs in the dashboard

This commit is contained in:
Zaki Benaissa 2024-01-12 18:24:53 +01:00
parent 61afcc7971
commit 9e09dad1b8
3 changed files with 12 additions and 21 deletions

View File

@ -298,9 +298,11 @@ def semester_delete_view(request, pk):
@login_required @login_required
@admin_required @admin_required
def dashboard_view(request): def dashboard_view(request):
logs = ActivityLog.objects.all().order_by("-created_at")[:10]
context = { context = {
"student_count": User.get_student_count(), "student_count": User.get_student_count(),
"lecturer_count": User.get_lecturer_count(), "lecturer_count": User.get_lecturer_count(),
"superuser_count": User.get_superuser_count(), "superuser_count": User.get_superuser_count(),
"logs": logs,
} }
return render(request, "core/dashboard.html", context) return render(request, "core/dashboard.html", context)

View File

@ -67,16 +67,12 @@ class Program(models.Model):
@receiver(post_save, sender=Program) @receiver(post_save, sender=Program)
def log_save(sender, instance, created, **kwargs): def log_save(sender, instance, created, **kwargs):
verb = "created" if created else "updated" verb = "created" if created else "updated"
ActivityLog.objects.create( ActivityLog.objects.create(message=f"The program '{instance}' has been {verb}.")
message=f"The program '{instance.title}' has been {verb}."
)
@receiver(post_delete, sender=Program) @receiver(post_delete, sender=Program)
def log_delete(sender, instance, **kwargs): def log_delete(sender, instance, **kwargs):
ActivityLog.objects.create( ActivityLog.objects.create(message=f"The program '{instance}' has been deleted.")
message=f"The program '{instance.title}' has been deleted."
)
class CourseManager(models.Manager): class CourseManager(models.Manager):
@ -138,16 +134,12 @@ pre_save.connect(course_pre_save_receiver, sender=Course)
@receiver(post_save, sender=Course) @receiver(post_save, sender=Course)
def log_save(sender, instance, created, **kwargs): def log_save(sender, instance, created, **kwargs):
verb = "created" if created else "updated" verb = "created" if created else "updated"
ActivityLog.objects.create( ActivityLog.objects.create(message=f"The course '{instance}' has been {verb}.")
message=f"The course '{instance.title}' has been {verb}."
)
@receiver(post_delete, sender=Course) @receiver(post_delete, sender=Course)
def log_delete(sender, instance, **kwargs): def log_delete(sender, instance, **kwargs):
ActivityLog.objects.create( ActivityLog.objects.create(message=f"The course '{instance}' has been deleted.")
message=f"The course '{instance.title}' has been deleted."
)
class CourseAllocation(models.Model): class CourseAllocation(models.Model):

View File

@ -275,16 +275,13 @@
</div> </div>
<div class="col-md-6 p-2"> <div class="col-md-6 p-2">
<div class="card p-3 activities"> <div class="card p-3 activities">
<h5>Overall activities</h5> <h5>Latest activities</h5>
<ul class="small"> <ul class="small">
<li>Created a survey of something</li> {% for log in logs %}
<li>Added new admin user</li> <li>{{ log.message }} <span class="text-muted">- {{ log.created_at }}</span></li>
<li><span class="text-danger">Deleted</span> 1 video from CSE course</li> {% empty %}
<li>New documentation <span class="text-success">attached</span> for Arch</li> <span>No recent activity</span>
<li>Lorem ipsum dolor sit amet consectetur adipisicing elit.</li> {% endfor %}
<li>Veniam magnam reiciendis modi explicabo sed aliquid natus</li>
<li>molestias corrupti suscipit similique ex adipisci praesentium</li>
<li>sint dolore, quo quibusdam ea, neque cupiditate.</li>
</ul> </ul>
</div> </div>
</div> </div>