Exemplo n.º 1
0
 def enroll(self, request, user, course_key):
     try:
         enroll(user, course_key, request, check_access=True)
         course_url = get_mktg_for_course(SUCCESS_ENROLL_PAGE, unicode(course_key))
         return redirect(course_url)
     except AlreadyEnrolledError:
         course = modulestore().get_course(course_key)
         if course.has_started():
             return redirect('course_root', unicode(course_key))
         else:
             return redirect('dashboard')
     except InvalidCourseIdError:
         return forus_error_redirect(_("Invalid course id"))
     except Exception as e:
         log.exception(e)
         return forus_error_redirect(_("Could not enroll"))
Exemplo n.º 2
0
 def enroll(self, request, user, course_key):
     try:
         enroll(user, course_key, request, check_access=True)
         course_url = get_mktg_for_course(SUCCESS_ENROLL_PAGE,
                                          unicode(course_key))
         return redirect(course_url)
     except AlreadyEnrolledError:
         course = modulestore().get_course(course_key)
         if course.has_started():
             return redirect('course_root', unicode(course_key))
         else:
             return redirect('dashboard')
     except InvalidCourseIdError:
         return forus_error_redirect(_("Invalid course id"))
     except Exception as e:
         log.exception(e)
         return forus_error_redirect(_("Could not enroll"))
Exemplo n.º 3
0
    def to_representation(self, course_overview):
        course_id = unicode(course_overview.id)
        request = self.context.get('request')
        return {
            # identifiers
            'id':
            course_id,
            'name':
            course_overview.display_name,
            'number':
            course_overview.display_number_with_default,
            'org':
            course_overview.display_org_with_default,

            # dates
            'start':
            course_overview.start,
            'start_display':
            course_overview.start_display,
            'start_type':
            course_overview.start_type,
            'end':
            course_overview.end,
            'pacing':
            course_overview.pacing,

            # notification info
            'subscription_id':
            course_overview.clean_id(padding_char='_'),

            # access info
            'courseware_access':
            has_access(request.user, 'load_mobile', course_overview).to_json(),

            # various URLs
            # course_image is sent in both new and old formats
            # (within media to be compatible with the new Course API)
            'media': {
                'course_image': {
                    'uri': course_overview.course_image_url,
                    'name': 'Course Image',
                }
            },
            'course_image':
            course_overview.course_image_url,
            'course_about':
            reverse(
                'about_course',
                kwargs={'course_id': course_id},
                request=request,
            ),
            'course_info':
            get_mktg_for_course(COURSE_INFO_PAGE, course_id),
            'course_updates':
            reverse(
                'course-updates-list',
                kwargs={'course_id': course_id},
                request=request,
            ),
            'course_handouts':
            reverse(
                'course-handouts-list',
                kwargs={'course_id': course_id},
                request=request,
            ),
            'discussion_url':
            reverse(
                'discussion_course',
                kwargs={'course_id': course_id},
                request=request,
            ) if course_overview.is_discussion_tab_enabled() else None,
            'video_outline':
            reverse(
                'video-summary-list',
                kwargs={'course_id': course_id},
                request=request,
            ),

            # Note: The following should be deprecated.
            'latest_updates': {
                'video': None
            },
        }
Exemplo n.º 4
0
    def to_representation(self, course_overview):
        course_id = unicode(course_overview.id)
        request = self.context.get('request')
        return {
            # identifiers
            'id': course_id,
            'name': course_overview.display_name,
            'number': course_overview.display_number_with_default,
            'org': course_overview.display_org_with_default,

            # dates
            'start': course_overview.start,
            'start_display': course_overview.start_display,
            'start_type': course_overview.start_type,
            'end': course_overview.end,
            'pacing': course_overview.pacing,

            # notification info
            'subscription_id': course_overview.clean_id(padding_char='_'),

            # access info
            'courseware_access': has_access(
                request.user,
                'load_mobile',
                course_overview
            ).to_json(),

            # various URLs
            # course_image is sent in both new and old formats
            # (within media to be compatible with the new Course API)
            'media': {
                'course_image': {
                    'uri': course_overview.course_image_url,
                    'name': 'Course Image',
                }
            },
            'course_image': course_overview.course_image_url,
            'course_about': reverse(
                'about_course',
                kwargs={'course_id': course_id},
                request=request,
            ),
            'course_info': get_mktg_for_course(
                COURSE_INFO_PAGE, course_id),
            'course_updates': reverse(
                'course-updates-list',
                kwargs={'course_id': course_id},
                request=request,
            ),
            'course_handouts': reverse(
                'course-handouts-list',
                kwargs={'course_id': course_id},
                request=request,
            ),
            'discussion_url': reverse(
                'discussion_course',
                kwargs={'course_id': course_id},
                request=request,
            ) if course_overview.is_discussion_tab_enabled() else None,

            'video_outline': reverse(
                'video-summary-list',
                kwargs={'course_id': course_id},
                request=request,
            ),

            # Note: The following should be deprecated.
            'latest_updates': {
                'video': None
            },
        }