feat: display students gender distribution in dashboard
This commit is contained in:
parent
571701d957
commit
32efc848bc
@ -165,6 +165,13 @@ class Student(models.Model):
|
|||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.student.get_full_name
|
return self.student.get_full_name
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_gender_count(cls):
|
||||||
|
males_count = Student.objects.filter(student__gender="M").count()
|
||||||
|
females_count = Student.objects.filter(student__gender="F").count()
|
||||||
|
|
||||||
|
return {"M": males_count, "F": females_count}
|
||||||
|
|
||||||
def get_absolute_url(self):
|
def get_absolute_url(self):
|
||||||
return reverse("profile_single", kwargs={"id": self.id})
|
return reverse("profile_single", kwargs={"id": self.id})
|
||||||
|
|
||||||
|
|||||||
@ -4,7 +4,7 @@ from django.contrib.auth.decorators import login_required
|
|||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
|
||||||
from accounts.decorators import admin_required, lecturer_required
|
from accounts.decorators import admin_required, lecturer_required
|
||||||
from accounts.models import User
|
from accounts.models import User, Student
|
||||||
from .forms import SessionForm, SemesterForm, NewsAndEventsForm
|
from .forms import SessionForm, SemesterForm, NewsAndEventsForm
|
||||||
from .models import *
|
from .models import *
|
||||||
|
|
||||||
@ -26,10 +26,13 @@ def home_view(request):
|
|||||||
@admin_required
|
@admin_required
|
||||||
def dashboard_view(request):
|
def dashboard_view(request):
|
||||||
logs = ActivityLog.objects.all().order_by("-created_at")[:10]
|
logs = ActivityLog.objects.all().order_by("-created_at")[:10]
|
||||||
|
gender_count = Student.get_gender_count()
|
||||||
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(),
|
||||||
|
"males_count": gender_count["M"],
|
||||||
|
"females_count": gender_count["F"],
|
||||||
"logs": logs,
|
"logs": logs,
|
||||||
}
|
}
|
||||||
return render(request, "core/dashboard.html", context)
|
return render(request, "core/dashboard.html", context)
|
||||||
|
|||||||
@ -478,7 +478,7 @@
|
|||||||
],
|
],
|
||||||
datasets: [{
|
datasets: [{
|
||||||
label: "Students Gender Dataset",
|
label: "Students Gender Dataset",
|
||||||
data: [56, 44],
|
data: [{{ males_count }}, {{ females_count }}],
|
||||||
backgroundColor: [
|
backgroundColor: [
|
||||||
'rgb(255, 99, 132)',
|
'rgb(255, 99, 132)',
|
||||||
'rgb(54, 162, 235)'
|
'rgb(54, 162, 235)'
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user