summaryrefslogtreecommitdiff
path: root/ishtar_common/management/commands/json_summary.py
blob: cbb83ef9d1b43b6cbca26924bd145a52b7335ce3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import datetime
import sys
import json

from django.core.management.base import BaseCommand

from django.contrib.auth.models import User
from archaeological_operations.models import Operation, ArchaeologicalSite
from archaeological_context_records.models import ContextRecord
from archaeological_finds.models import Find
from archaeological_warehouse.models import Warehouse, Container
from ishtar_common.models import Document


class Command(BaseCommand):
    args = ""
    help = "Json export of sums"

    def handle(self, *args, **options):
        data = {
            "date": datetime.datetime.now().isoformat(),
            "finds": Find.objects.count(),
            "operations": Operation.objects.count(),
            "operations_with_finds": Operation.objects.filter(
                context_record__base_finds__pk__isnull=False
            ).values("id").distinct().count(),
            "context_records": ContextRecord.objects.count(),
            "sites": ArchaeologicalSite.objects.count(),
            "warehouses": Warehouse.objects.count(),
            "containers": Container.objects.filter(
                container_type__stationary=False).count(),
            "users": User.objects.filter(is_active=True).count(),
            "documents": Document.objects.count(),
            "documents_with_images":
                Document.objects.filter(image__isnull=False).exclude(image='').count(),
        }
        sys.stdout.write(json.dumps(data))