Exemplo n.º 1
0
    def get_context_data(self, **kwargs):
        context = super(CourseDetailView, self).get_context_data(**kwargs)
        course = context.get('object')

        qs = ExternalCollection.objects.filter(course=course)
        collections = qs.filter(uploader=False).order_by('title')
        uploader = qs.filter(uploader=True).first()

        owners = []
        if (course.is_member(self.request.user) and
            (self.request.user.is_staff or
             self.request.user.has_perm('assetmgr.can_upload_for'))):
            owners = UserResource().render_list(self.request, course.members)

        context.update({
            'course': course,
            'classwork_owner': self.request.user,
            'information_title': course_information_title(course),
            'faculty_feed': Project.objects.faculty_compositions(
                course, self.request.user),
            'is_faculty': cached_course_is_faculty(course, self.request.user),
            'discussions': get_course_discussions(course),
            'collections': collections,
            'uploader': uploader,
            'can_upload': False,
            'owners': owners,
        })
        return context
Exemplo n.º 2
0
def deprecated_course_detail_view(request, course_pk):
    try:
        course = get_object_or_404(Course, pk=course_pk)
        request.course = course
        request.session[SESSION_KEY] = course
    except Course.DoesNotExist:
        return HttpResponseRedirect('/accounts/login/')

    logged_in_user = request.user
    classwork_owner = request.user  # Viewing your own work by default
    if 'username' in request.GET:
        user_name = request.GET['username']
        in_course_or_404(user_name, request.course)
        classwork_owner = get_object_or_404(User, username=user_name)

    qs = ExternalCollection.objects.filter(course=request.course)
    collections = qs.filter(uploader=False).order_by('title')
    uploader = qs.filter(uploader=True).first()

    owners = []
    if (request.course.is_member(logged_in_user)
            and (logged_in_user.is_staff
                 or logged_in_user.has_perm('assetmgr.can_upload_for'))):
        owners = UserResource().render_list(request, request.course.members)

    context = {
        'classwork_owner':
        classwork_owner,
        'information_title':
        course_information_title(course),
        'faculty_feed':
        Project.objects.faculty_compositions(course, logged_in_user),
        'is_faculty':
        cached_course_is_faculty(course, logged_in_user),
        'discussions':
        get_course_discussions(course),
        'msg':
        request.GET.get('msg', ''),
        'view':
        request.GET.get('view', ''),
        'collections':
        collections,
        'uploader':
        uploader,
        'can_upload':
        course_details.can_upload(request.user, request.course),
        'owners':
        owners
    }

    return context
Exemplo n.º 3
0
 def __init__(self, *args, **kwargs):
     r = super(DashboardSettingsForm, self).__init__(*args, **kwargs)
     self.fields['publish_to_world'].initial = \
         allow_public_compositions(self.instance)
     self.fields['homepage_title'].initial = \
         course_information_title(self.instance)
     self.fields['see_eachothers_items'].initial = \
         all_items_are_visible(self.instance)
     self.fields['see_eachothers_selections'].initial = \
         all_selections_are_visible(self.instance)
     self.fields['allow_item_download'].initial = \
         allow_item_download(self.instance)
     self.fields['allow_roster_changes'].initial = \
         allow_roster_changes(self.instance)
     return r
Exemplo n.º 4
0
 def __init__(self, *args, **kwargs):
     r = super(DashboardSettingsForm, self).__init__(*args, **kwargs)
     self.fields['publish_to_world'].initial = \
         allow_public_compositions(self.instance)
     self.fields['homepage_title'].initial = \
         course_information_title(self.instance)
     self.fields['see_eachothers_items'].initial = \
         all_items_are_visible(self.instance)
     self.fields['see_eachothers_selections'].initial = \
         all_selections_are_visible(self.instance)
     self.fields['allow_item_download'].initial = \
         allow_item_download(self.instance)
     self.fields['allow_roster_changes'].initial = \
         allow_roster_changes(self.instance)
     return r
Exemplo n.º 5
0
    def test_post_disabled_selection_visibility(self):
        self.client.login(username=self.instructor_one.username,
                          password='******')
        data = {course_details.ITEM_VISIBILITY_KEY: 0}

        response = self.client.post('/dashboard/settings/', data)
        self.assertEquals(response.status_code, 302)

        # unchanged from defaults
        self.assertEquals(course_information_title(self.sample_course),
                          'From Your Instructor')
        self.assertFalse(allow_public_compositions(self.sample_course))

        # updated
        self.assertFalse(all_items_are_visible(self.sample_course))
        self.assertFalse(all_selections_are_visible(self.sample_course))
Exemplo n.º 6
0
def triple_homepage(request):
    if not request.course:
        return HttpResponseRedirect('/accounts/login/')

    logged_in_user = request.user
    classwork_owner = request.user  # Viewing your own work by default
    if 'username' in request.GET:
        user_name = request.GET['username']
        in_course_or_404(user_name, request.course)
        classwork_owner = get_object_or_404(User, username=user_name)

    course = request.course

    collections = ExternalCollection.objects.filter(
        course=request.course, uploader=False).order_by('title')
    uploader = ExternalCollection.objects.filter(course=request.course,
                                                 uploader=True).first()

    owners = []
    if (in_course(logged_in_user.username, request.course) and
        (logged_in_user.is_staff or
         logged_in_user.has_perm('assetmgr.can_upload_for'))):
        owners = UserResource().render_list(request, request.course.members)

    context = {
        'classwork_owner': classwork_owner,
        "information_title": course_information_title(course),
        'faculty_feed': Project.objects.faculty_compositions(course,
                                                             logged_in_user),
        'is_faculty': course.is_faculty(logged_in_user),
        'discussions': get_course_discussions(course),
        'msg': request.GET.get('msg', ''),
        'view': request.GET.get('view', ''),
        'collections': collections,
        'uploader': uploader,
        'can_upload': course_details.can_upload(request.user, request.course),
        'owners': owners
    }

    if getattr(settings, 'DJANGOSHERD_FLICKR_APIKEY', None):
        # MUST only contain string values for now!!
        # (see templates/assetmgr/bookmarklet.js to see why or fix)
        context['bookmarklet_vars'] = {
            'flickr_apikey': settings.DJANGOSHERD_FLICKR_APIKEY
        }

    return context
Exemplo n.º 7
0
    def test_post(self):
        self.assertTrue(
            self.client.login(username=self.instructor_one.username,
                              password='******'))
        data = {
            course_details.COURSE_INFORMATION_TITLE_KEY: "Foo",
            course_details.SELECTION_VISIBILITY_KEY: 0,
            course_details.ITEM_VISIBILITY_KEY: 0,
            course_details.ALLOW_PUBLIC_COMPOSITIONS_KEY: 1
        }

        response = self.client.post('/dashboard/settings/', data)
        self.assertEquals(response.status_code, 302)
        self.assertEquals(course_information_title(self.sample_course), "Foo")
        self.assertTrue(allow_public_compositions(self.sample_course))
        self.assertFalse(all_items_are_visible(self.sample_course))
        self.assertFalse(all_selections_are_visible(self.sample_course))
Exemplo n.º 8
0
    def __init__(self, *args, **kwargs):
        r = super(DashboardSettingsForm, self).__init__(*args, **kwargs)
        self.fields['publish_to_world'].initial = \
            allow_public_compositions(self.instance)
        self.fields['homepage_title'].initial = \
            course_information_title(self.instance)
        self.fields['see_eachothers_items'].initial = \
            all_items_are_visible(self.instance)
        self.fields['see_eachothers_selections'].initial = \
            all_selections_are_visible(self.instance)
        self.fields['allow_item_download'].initial = \
            allow_item_download(self.instance)
        lti_context = LTICourseContext.objects.filter(
            group=self.instance.group.id,
            faculty_group=self.instance.faculty_group.id).first()
        self.fields['lti_integration'].initial = \
            (lti_context and lti_context.enable)

        return r
Exemplo n.º 9
0
def course_detail_view(request):
    if not request.course:
        return HttpResponseRedirect('/accounts/login/')

    logged_in_user = request.user
    classwork_owner = request.user  # Viewing your own work by default
    if 'username' in request.GET:
        user_name = request.GET['username']
        in_course_or_404(user_name, request.course)
        classwork_owner = get_object_or_404(User, username=user_name)

    course = request.course

    qs = ExternalCollection.objects.filter(course=request.course)
    collections = qs.filter(uploader=False).order_by('title')
    uploader = qs.filter(uploader=True).first()

    owners = []
    if (request.course.is_member(logged_in_user) and
        (logged_in_user.is_staff or
         logged_in_user.has_perm('assetmgr.can_upload_for'))):
        owners = UserResource().render_list(request, request.course.members)

    context = {
        'classwork_owner': classwork_owner,
        'information_title': course_information_title(course),
        'faculty_feed': Project.objects.faculty_compositions(course,
                                                             logged_in_user),
        'is_faculty': cached_course_is_faculty(course, logged_in_user),
        'discussions': get_course_discussions(course),
        'msg': request.GET.get('msg', ''),
        'view': request.GET.get('view', ''),
        'collections': collections,
        'uploader': uploader,
        'can_upload': course_details.can_upload(request.user, request.course),
        'owners': owners
    }

    return context
Exemplo n.º 10
0
    def get_context_data(self, **kwargs):
        context = super(CourseDetailView, self).get_context_data(**kwargs)
        course = context.get('object')

        qs = ExternalCollection.objects.filter(course=self.request.course)
        collections = qs.filter(uploader=False).order_by('title')
        uploader = qs.filter(uploader=True).first()

        owners = []
        if (self.request.course.is_member(self.request.user) and
            (self.request.user.is_staff
             or self.request.user.has_perm('assetmgr.can_upload_for'))):
            owners = UserResource().render_list(self.request, course.members)

        context.update({
            'course':
            course,
            'classwork_owner':
            self.request.user,
            'information_title':
            course_information_title(course),
            'faculty_feed':
            Project.objects.faculty_compositions(course, self.request.user),
            'is_faculty':
            cached_course_is_faculty(course, self.request.user),
            'owners':
            owners,
            'collections':
            collections,
            'uploader':
            uploader,
            'msg':
            self.request.GET.get('msg', ''),
            'can_upload':
            course_details.can_upload(self.request.user, self.request.course),
        })
        return context
Exemplo n.º 11
0
 def test_course_information_title(self):
     # default
     self.assertEquals(course_information_title(self.sample_course),
                       COURSE_INFORMATION_TITLE_DEFAULT)
Exemplo n.º 12
0
 def test_course_information_title(self):
     # default
     self.assertEquals(course_information_title(self.sample_course),
                       COURSE_INFORMATION_TITLE_DEFAULT)