Example #1
0
def content_recommender(request):
    """Populate response with recommendation(s)"""

    user_id = request.GET.get('user')
    user = request.session.get('facility_user')

    if not user:
        if request.user.is_authenticated() and request.user.is_superuser:
            user = get_object_or_404(FacilityUser, pk=user_id)
        else:
            return JsonResponseMessageError("You are not authorized to view these recommendations.", status=401)

    resume = request.GET.get('resume')
    next = request.GET.get('next')
    explore = request.GET.get('explore')

    def set_bool_flag(flag_name, rec_dict):
        rec_dict[flag_name] = True
        return rec_dict

    # retrieve resume recommendation(s) and set resume boolean flag
    resume_recommendations = [set_bool_flag("resume", rec) for rec in get_resume_recommendations(user, request)] if resume else []

    # retrieve next_steps recommendations, set next_steps boolean flag, and flatten results for api response
    next_recommendations = [set_bool_flag("next", rec) for rec in get_next_recommendations(user, request)] if next else []

    # retrieve explore recommendations, set explore boolean flag, and flatten results for api response
    explore_recommendations = [set_bool_flag("explore", rec) for rec in get_explore_recommendations(user, request)] if explore else []

    return JsonResponse(resume_recommendations + next_recommendations + explore_recommendations)
Example #2
0
    def test_explore_overall(self):
        '''get_explore_recommendations()'''

        #create a request object and set the language attribute
        request = self.factory.get('/content_recommender?explore=true')
        request.language = settings.LANGUAGE_CODE

        actual = get_explore_recommendations(self.user1, request)

        self.assertEqual(actual[0].get("interest_topic").get("id"), "arithmetic")
Example #3
0
    def test_explore_overall(self):
        '''get_explore_recommendations()'''

        #create a request object and set the language attribute
        request = self.factory.get('/content_recommender?explore=true')
        request.language = settings.LANGUAGE_CODE

        actual = get_explore_recommendations(self.user1, request)

        self.assertEqual(actual[0].get("interest_topic").get("id"),
                         "arithmetic")
Example #4
0
def content_recommender(request):
    """Populate response with recommendation(s)"""

    user_id = request.GET.get('user', None)
    user = request.session.get('facility_user')

    if not user:
        if request.user.is_authenticated() and request.user.is_superuser:
            user = get_object_or_404(FacilityUser, pk=user_id)
        else:
            return JsonResponseMessageError(
                "You are not authorized to view these recommendations.",
                status=401)

    resume = request.GET.get('resume', None)
    next = request.GET.get('next', None)
    explore = request.GET.get('explore', None)

    def set_bool_flag(flag_name, rec_dict):
        rec_dict[flag_name] = True
        return rec_dict

    # retrieve resume recommendation(s) and set resume boolean flag
    resume_recommendations = [
        set_bool_flag("resume", rec)
        for rec in get_resume_recommendations(user, request)
    ] if resume else []

    # retrieve next_steps recommendations, set next_steps boolean flag, and flatten results for api response
    next_recommendations = [
        set_bool_flag("next", rec)
        for rec in get_next_recommendations(user, request)
    ] if next else []

    # retrieve explore recommendations, set explore boolean flag, and flatten results for api response
    explore_recommendations = [
        set_bool_flag("explore", rec)
        for rec in get_explore_recommendations(user, request)
    ] if explore else []

    return JsonResponse(resume_recommendations + next_recommendations +
                        explore_recommendations)
Example #5
0
    def test_explore_overall(self):
        '''get_explore_recommendations()'''

        # This test is super-slow because of get_explore_recommendations which
        # is already called and covered in BDD tests.
        # In order to maintain some level of feasible testing, I am cutting
        # the test short here.
        # /benjaoming
        return

        #create a request object and set the language attribute
        request = self.factory.get('/content_recommender?explore=true')
        request.language = settings.LANGUAGE_CODE

        actual = get_explore_recommendations(self.user1, request)

        logger.info(actual[0])

        self.assertEqual(actual[0].get("topic-0-0").get("id"),
                         "topic0-0-exercise-1")