aboutsummaryrefslogtreecommitdiffstats
path: root/ctrack/core/views.py
blob: 5268f6660fb7b24800dc8f164e7f67933c865106 (plain) (blame)
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
42
43
44
45
46
47
48
49
50
from django.contrib.auth import get_user_model
from django.shortcuts import render

from ctrack.caf.models import EssentialService, CAF, ApplicableSystem
from ctrack.organisations.models import IncidentReport, Organisation, Person, Submode
from ctrack.organisations.utils import inspectors_for_each_mode
from ctrack.register.models import EngagementEvent


def home_page(request):
    if request.user.is_stakeholder:
        org = Organisation.objects.get(
            name=request.user.stakeholder.person.get_organisation_name()
        )
        irs = IncidentReport.objects.filter(organisation__name=org)
        systems = org.applicable_systems()
        peoples = org.person_set.all()
        engagement_events = EngagementEvent.objects.filter(participants__in=peoples)
        return render(
            request,
            "pages/stakeholder_home.html",
            context={
                "org": org,
                "systems": systems,
                "irs": irs,
                "engagement_events": engagement_events,
            },
        )
    else:
        caf_users = get_user_model().objects.all()
        no_orgs = Organisation.objects.count()
        no_people = Person.objects.count()
        no_cafs = CAF.objects.count()
        no_essential_services = EssentialService.objects.count()
        no_systems = ApplicableSystem.objects.count()
        submodes = Submode.objects.all().order_by("descriptor")
        submode_inspector_dict = inspectors_for_each_mode("lead_inspector")
        submode_deputy_inspector_dict = inspectors_for_each_mode("deputy_lead_inspector")
        context = {
            "no_orgs": no_orgs,
            "no_people": no_people,
            "no_cafs": no_cafs,
            "no_essential_services": no_essential_services,
            "no_systems": no_systems,
            "caf_users": caf_users,
            "submodes": submodes,
            "submode_inspector_dict": submode_inspector_dict,
            "submode_deputy_inspector_dict": submode_deputy_inspector_dict,
        }
        return render(request, "pages/home.html", context)