Exemplo n.º 1
0
def get_course_history_metric(site, course_id, func, date_for, months_back):
    """Retieves current_month and history metric data for a course and time
    period

    This is a convenience function to reduce duplicate code

    :param course_id: The course identifier for the course we want data
    :param func: The metric function to retrieve a metric for the specified
    course and date range
    :param date_for: The date to determine the current month
    :param months_back: How many months back to retrieve data
    :returns: a dict with the current month metric and list of metrics for
    previous months
    """
    # wrapper_func = lambda start_date, end_date: func(
    #         start_date=start_date,
    #         end_date=end_date,
    #         course_id=course_id)

    # def wrapper_func(start_date, end_date):
    #         start_date=start_date,
    #         end_date=end_date,
    #         course_id=course_id

    return get_monthly_history_metric(
        func=lambda site, start_date, end_date: func(
            site=site,
            start_date=start_date,
            end_date=end_date,
            # site=site,
            course_id=course_id),
        site=site,
        date_for=date_for,
        months_back=months_back,
    )
Exemplo n.º 2
0
    def site_courses(self, request):
        site = django.contrib.sites.shortcuts.get_current_site(request)
        date_for = datetime.utcnow().date()
        months_back = 6

        site_courses = metrics.get_monthly_history_metric(
            func=metrics.get_total_site_courses_for_time_period,
            site=site,
            date_for=date_for,
            months_back=months_back,
        )
        data = dict(site_courses=site_courses)
        return Response(data)
Exemplo n.º 3
0
    def new_users(self, request):
        site = django.contrib.sites.shortcuts.get_current_site(self.request)
        date_for = datetime.utcnow().date()
        months_back = 6

        new_users = metrics.get_monthly_history_metric(
            func=metrics.get_total_site_users_joined_for_time_period,
            site=site,
            date_for=date_for,
            months_back=months_back,
        )
        data = dict(new_users=new_users)
        return Response(data)
Exemplo n.º 4
0
    def course_enrollments(self, request):
        site = figures.sites.get_requested_site(request)
        date_for = datetime.utcnow().date()
        months_back = 6

        course_enrollments = metrics.get_monthly_history_metric(
            func=metrics.get_total_enrollments_for_time_period,
            site=site,
            date_for=date_for,
            months_back=months_back,
        )
        data = dict(course_enrollments=course_enrollments)
        return Response(data)
Exemplo n.º 5
0
    def registered_users(self, request):
        site = figures.sites.get_requested_site(request)
        date_for = datetime.utcnow().date()
        months_back = 6

        registered_users = metrics.get_monthly_history_metric(
            func=metrics.get_total_site_users_for_time_period,
            site=site,
            date_for=date_for,
            months_back=months_back,
        )
        data = dict(registered_users=registered_users)
        return Response(data)
Exemplo n.º 6
0
    def new_users(self, request):
        """
        TODO: Rename the metrics module function to "new_users" to match this
        """
        site = django.contrib.sites.shortcuts.get_current_site(request)
        date_for = datetime.utcnow().date()
        months_back = 6

        new_users = metrics.get_monthly_history_metric(
            func=metrics.get_total_site_users_joined_for_time_period,
            site=site,
            date_for=date_for,
            months_back=months_back,
        )
        data = dict(new_users=new_users)
        return Response(data)