コード例 #1
0
ファイル: home.py プロジェクト: OppiaEthiopia/django-oppia
    def get_context_data(self, **kwargs):

        context = super().get_context_data(**kwargs)
        if not permissions.is_manager_only(self.request.user):
            raise PermissionDenied

        courses = Course.objects.filter(
            coursepermissions__user=self.request.user,
            coursepermissions__role=CoursePermissions.MANAGER)

        start_date = timezone.now() - datetime.timedelta(
            days=constants.ACTIVITY_GRAPH_DEFAULT_NO_DAYS)
        end_date = timezone.now()

        # get activity
        activity_tracker_date = get_trackers(start_date,
                                             end_date,
                                             courses,
                                             date_data="tracker_date")
        activity_submitted_date = get_trackers(start_date,
                                               end_date,
                                               courses,
                                               date_data="submitted_date")

        context['courses'] = courses
        context['activity_graph_data'] = activity_tracker_date
        context['activity_submitted_graph_data'] = activity_submitted_date

        return context
コード例 #2
0
    def process(self, request):
        if not permissions.is_manager_only(request.user):
            raise PermissionDenied

        courses = Course.objects.filter(
            coursepermissions__user=request.user,
            coursepermissions__role=CoursePermissions.MANAGER)

        start_date = timezone.now() - datetime.timedelta(
            days=constants.ACTIVITY_GRAPH_DEFAULT_NO_DAYS)
        end_date = timezone.now()

        # get activity
        activity = get_trackers(start_date, end_date, courses)

        return render(request, 'oppia/home-manager.html', {
            'courses': courses,
            'activity_graph_data': activity,
        })
コード例 #3
0
    def process(self, request):

        if request.user.is_authenticated:

            # create profile if none exists (for first admin user login and
            # historical for very old users)
            try:
                request.user.userprofile
            except UserProfile.DoesNotExist:
                up = UserProfile()
                up.user = request.user
                up.save()

            up = request.user.userprofile
            # if user is student redirect to their scorecard
            if up.is_student_only():
                return HttpResponseRedirect(
                    reverse('profile:user_activity', args=[request.user.id]))

            # is user is teacher redirect to teacher home
            if up.is_teacher_only():
                return HttpResponseRedirect(reverse('oppia:teacher_index'))

            if permissions.is_manager_only(request.user):
                return HttpResponseRedirect(reverse('oppia:manager_index'))

            # admin/staff view
            form, activity = self.admin_authenticated(request)
            leaderboard = Points.get_leaderboard(
                constants.LEADERBOARD_HOMEPAGE_RESULTS_PER_PAGE)
        else:
            activity = []
            leaderboard = None
            form = None

        return render(
            request, 'oppia/home.html', {
                'form': form,
                'activity_graph_data': activity,
                'leaderboard': leaderboard
            })
コード例 #4
0
    def dispatch(self, request, *args, **kwargs):
        if request.user.is_authenticated:
            # create profile if none exists (for first admin user login and
            # historical for very old users)
            try:
                request.user.userprofile
            except UserProfile.DoesNotExist:
                up = UserProfile()
                up.user = request.user
                up.save()

            up = request.user.userprofile
            # if user is student redirect to their scorecard
            if up.is_student_only():
                return HttpResponseRedirect(reverse('profile:user_activity', args=[request.user.id]))
            # is user is teacher redirect to teacher home
            if up.is_teacher_only():
                return HttpResponseRedirect(reverse('oppia:teacher_index'))

            if permissions.is_manager_only(request.user):
                return HttpResponseRedirect(reverse('oppia:manager_index'))

        return super().get(request, *args, **kwargs)
コード例 #5
0
 def test_is_manager_manager(self):
     self.assertTrue(is_manager_only(self.manager_user))
コード例 #6
0
 def test_is_manager_viewer(self):
     self.assertFalse(is_manager_only(self.viewer_user))
コード例 #7
0
 def test_is_manager_user(self):
     self.assertFalse(is_manager_only(self.normal_user))
コード例 #8
0
 def test_is_manager_teacher(self):
     self.assertFalse(is_manager_only(self.teacher_user))
コード例 #9
0
 def test_is_manager_staff(self):
     self.assertFalse(is_manager_only(self.staff_user))
コード例 #10
0
 def test_is_manager_admin(self):
     self.assertFalse(is_manager_only(self.admin_user))