37 lines
1.6 KiB
Python
37 lines
1.6 KiB
Python
from django.core.management import BaseCommand
|
|
from django.db.models import Count
|
|
from django.db.models.functions import ExtractYear
|
|
from books.models import Snapshot, ObjectiveGroupSnapshot
|
|
from objectives.models import ObjectiveSnapshot
|
|
|
|
|
|
# Query to group by creator's email, count the snapshots, and order by the count
|
|
|
|
class Command(BaseCommand):
|
|
def handle(self, *args, **options):
|
|
snapshots_grouped = (Snapshot.objects
|
|
.annotate(year=ExtractYear('created'))
|
|
.values('year', 'creator__email')
|
|
.annotate(count=Count('id'))
|
|
.order_by('year', '-count')) # Order by year and then by count (descending)
|
|
|
|
# To access the results
|
|
for snapshot in snapshots_grouped:
|
|
modified_email = snapshot['creator__email'].split('@')[0] + '@skillbox.ch'
|
|
print(f"Year: {snapshot['year']}, Creator Email: {modified_email}, Count: {snapshot['count']}")
|
|
|
|
hidden_objectives_counter = 0
|
|
custom_objectives_counter = 0
|
|
|
|
for snapshot in Snapshot.objects.all():
|
|
if snapshot.hidden_objectives.count() > 0:
|
|
hidden_objectives_counter += 1
|
|
|
|
if snapshot.custom_objectives.count() > 0:
|
|
custom_objectives_counter += 1
|
|
|
|
print(f"Hidden objectives: {hidden_objectives_counter}")
|
|
print(f"Custom objectives: {custom_objectives_counter}")
|
|
print(f"ObjectiveGroupSnapshot objectives: {ObjectiveGroupSnapshot.objects.count()}")
|
|
print(f"ObjectiveSnapshot objectives: {ObjectiveSnapshot.objects.count()}")
|