Beispiel #1
0
def free_enrollment(request, course_slug):
    course = get_object_or_404(Course, slug=course_slug)
    if request.method == 'POST':
        course.students.add(request.user)
        course.save()
        if getattr(settings, 'FREE_ENROLLMENT_CONSISTENT', False):
            enroll_course_at_idp(request.user, course)
        success(request,
                _(u'Congratulations, you have successfully enroll in the course %(course)s')
                % {'course': unicode(course)})

    return HttpResponseRedirect(reverse('course_overview',
                                        args=(course.slug, )))
Beispiel #2
0
def free_enrollment(request, course_slug):
    course = get_object_or_404(Course, slug=course_slug)
    if request.method == 'POST':
        course.students.add(request.user)
        course.save()
        if getattr(settings, 'FREE_ENROLLMENT_CONSISTENT', False):
            enroll_course_at_idp(request.user, course)
        success(
            request,
            _(u'Congratulations, you have successfully enroll in the course %(course)s'
              ) % {'course': unicode(course)})

    return HttpResponseRedirect(
        reverse('course_overview', args=(course.slug, )))
Beispiel #3
0
def free_enrollment(request, course_slug):
    course = get_course_if_user_can_view_or_404(course_slug, request)
    if request.method == 'POST':
        user = request.user
        old_course_status = 'f'
        if course.created_from:
            if course.created_from.students.filter(pk=user.pk):
                old_course_status = 'n'
        course.students.through.objects.create(student=user,
                                               course=course,
                                               old_course_status=old_course_status)
        if getattr(settings, 'FREE_ENROLLMENT_CONSISTENT', False):
            enroll_course_at_idp(request.user, course)
        success(request,
                _(u'Congratulations, you have successfully enroll in the course %(course)s')
                % {'course': unicode(course)})

    return HttpResponseRedirect(reverse('course_overview',
                                        args=(course.slug, )))
Beispiel #4
0
def free_enrollment(request, course_slug):
    course, permission = get_course_if_user_can_view_and_permission(course_slug, request)
    if permission:
        if request.method == 'POST':
            if course.has_groups:
                groupNames = {
                    'es': 'Grupo',
                    'en': 'Group',
                    'fr': 'Groupe',
                    'pt': 'Grupo',
                    'de': 'Gruppe',
                    'it': 'Gruppo'
                }

                if request.user.get_profile().language and request.user.get_profile().language in groupNames:
                    language = request.user.get_profile().language
                else:
                    language = request.LANGUAGE_CODE

                print 'Language = %s' % (language)

                groupCollection = mongodb.get_db().get_collection('groups')
                groups = groupCollection.find({ 'id_course': course.id, 'lang': language }).sort("size",pymongo.ASCENDING)
                if groups:
                    new_member = {"id_user": request.user.id, "username": request.user.username,
                                  "first_name":request.user.first_name, "last_name":request.user.last_name,
                                  "email": request.user.email, "karma": request.user.get_profile().karma, "country": request.user.get_profile().country,
                                  "language": language}
                    if groups.count() > 0:
                        group = groups[0]

                        if(len(group["members"]) <= course.group_max_size):
                            group["members"].append(new_member)
                            if "size" in group:
                                group["size"] += 1
                            else:
                                group["size"] = len(group["members"])

                            groupCollection.update({'_id': ObjectId(group["_id"])}, {"$set": {"members": group["members"], "size": group["size"]}})

                        else:
                            group = {"id_course": course.id, "name": groupNames[language] + str(groups.count()+1), "hashtag": course.hashtag+groupNames[language] + str(groups.count()+1) ,"lang": language, "size": 1, "members": []}
                            group["members"].append(new_member)
                            groupCollection.insert(group)
                    else:
                        group = {"id_course": course.id, "name": groupNames[language] + str(groups.count()+1), "hashtag": course.hashtag+groupNames[language] + str(groups.count()+1), "lang": language, "size": 1, "members": []}
                        group["members"].append(new_member)
                        groupCollection.insert(group)

            user = request.user
            lat = request.POST["latitude"]
            lon = request.POST["longitude"]
            geolocation = {
                'lat': lat,
                'lon': lon
            }
            old_course_status = 'f'
            if course.created_from:
                if course.created_from.students.filter(pk=user.pk):
                    old_course_status = 'n'
            course.students.through.objects.create(student=user,
                                                   course=course,
                                                   old_course_status=old_course_status,
                                                   timestamp=int(round(time.time())),
                                                   pos_lat=lat,
                                                   pos_lon=lon)
            if getattr(settings, 'FREE_ENROLLMENT_CONSISTENT', False):
                enroll_course_at_idp(request.user, course)

            # Send xAPI event
            x_api.learnerEnrollsInMooc(user, course, geolocation)

            success(request,
                    _(u'Congratulations, you have successfully enroll in the course %(course)s')
                    % {'course': unicode(course)})

    return HttpResponseRedirect(reverse('course_dashboard',
                                       args=(course.slug, )))