Removing project content and adding a note
[laas.git] / src / booking / stats.py
diff --git a/src/booking/stats.py b/src/booking/stats.py
deleted file mode 100644 (file)
index 5a59d32..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-##############################################################################
-# Copyright (c) 2020 Parker Berberian, Sawyer Bergeron, Sean Smith and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import os
-from booking.models import Booking
-from resource_inventory.models import ResourceQuery, ResourceProfile
-from datetime import datetime, timedelta
-from collections import Counter
-import pytz
-
-
-class StatisticsManager(object):
-
-    @staticmethod
-    def getContinuousBookingTimeSeries(span=28):
-        """
-        Calculate Booking usage data points.
-
-        Gathers all active bookings that fall in interval [(now - span), (now + 1 week)].
-        x data points are every 12 hours
-        y values are the integer number of bookings/users active at time
-        """
-
-        anuket_colors = [
-            '#6BDAD5',  # Turquoise
-            '#E36386',  # Pale Violet Red
-            '#F5B335',  # Sandy Brown
-            '#007473',  # Teal
-            '#BCE194',  # Gainsboro
-            '#00CE7C',  # Sea Green
-        ]
-
-        lfedge_colors = [
-            '#0049B0',
-            '#B481A5',
-            '#6CAFE4',
-            '#D33668',
-            '#28245A'
-        ]
-
-        x = []
-        y = []
-        users = []
-        projects = []
-        profiles = {str(profile): [] for profile in ResourceProfile.objects.all()}
-
-        now = datetime.now(pytz.utc)
-        delta = timedelta(days=span)
-        start = now - delta
-        end = now + timedelta(weeks=1)
-
-        bookings = Booking.objects.filter(
-            start__lte=end,
-            end__gte=start
-        ).prefetch_related("collaborators")
-
-        # get data
-        while start <= end:
-            active_users = 0
-
-            books = bookings.filter(
-                start__lte=start,
-                end__gte=start
-            ).prefetch_related("collaborators")
-
-            for booking in books:
-                active_users += booking.collaborators.all().count() + 1
-
-            x.append(str(start.month) + '-' + str(start.day))
-            y.append(books.count())
-
-            step_profiles = Counter([
-                str(config.profile)
-                for book in books
-                for config in book.resource.template.getConfigs()
-            ])
-
-            for profile in ResourceProfile.objects.all():
-                profiles[str(profile)].append(step_profiles[str(profile)])
-            users.append(active_users)
-
-            start += timedelta(hours=12)
-
-        in_use = len(ResourceQuery.filter(working=True, booked=True))
-        not_in_use = len(ResourceQuery.filter(working=True, booked=False))
-        maintenance = len(ResourceQuery.filter(working=False))
-
-        projects = [x.project for x in bookings]
-        proj_count = sorted(Counter(projects).items(), key=lambda x: x[1])
-
-        project_keys = [proj[0] for proj in proj_count[-5:]]
-        project_keys = ['None' if x is None else x for x in project_keys]
-        project_counts = [proj[1] for proj in proj_count[-5:]]
-
-        resources = {key: [x, value] for key, value in profiles.items()}
-
-        return {
-            "resources": resources,
-            "booking": [x, y],
-            "user": [x, users],
-            "utils": [in_use, not_in_use, maintenance],
-            "projects": [project_keys, project_counts],
-            "colors": anuket_colors if os.environ.get('TEMPLATE_OVERRIDE_DIR') == 'laas' else lfedge_colors
-        }