예제 #1
0
    def setUp(self):
        # Every test needs access to the request factory.
        self.factory = RequestFactory()
        self.redir = convenience_redirector()
        #db class map
        m1 = CurrentTermMap(course_prefix="db", course_suffix="Winter2013")
        m1.save()
        m2 = CurrentTermMap(course_prefix="class2go", course_suffix="tutorial")
        m2.save()
        m3 = CurrentTermMap(course_prefix="EE364A", course_suffix="Winter2013")
        m3.save()
        for (course, suffix) in (
            ('nlp', 'Fall2012'),
            ('test', 'Fall2012'),
            ('networking', 'Fall2012'),
            ('crypto', 'Fall2012'),
            ('security', 'Fall2012'),
            ('cs144', 'Fall2012'),
            ('cs224n', 'Fall2012'),
            ('solar', 'Fall2012'),
            ('matsci256', 'Fall2012'),
            ('psych30', 'Fall2012'),
            ('nano', 'Fall2012'),
            ('msande111', 'Fall2012'),
            ('db', 'Winter2013'),
            ('class2go', 'tutorial'),
            ('EE364A', 'Winter2013'),
            ('networking', 'WallaWalla'),
        ):

            ### Create the new Course ###
            r = randrange(0, 100000000)
            student_group = Group.objects.create(
                name="Student Group for class2go course " + course + " %d" % r)
            instructor_group = Group.objects.create(
                name="Instructor Group for class2go course " + course +
                " %d" % r)
            tas_group = Group.objects.create(
                name="TAS Group for class2go course " + course + " %d" % r)
            readonly_tas_group = Group.objects.create(
                name="Readonly TAS Group for class2go course " + course +
                " %d" % r)

            c = Course(
                handle=course + '--' + suffix,
                student_group_id=student_group.id,
                instructor_group_id=instructor_group.id,
                tas_group_id=tas_group.id,
                readonly_tas_group_id=readonly_tas_group.id,
            )

            c.save()
예제 #2
0
파일: tests.py 프로젝트: pushpen/class2go
    def setUp(self):
        # Every test needs access to the request factory.
        self.factory = RequestFactory()
        self.redir = convenience_redirector()
        # db class map
        m1 = CurrentTermMap(course_prefix="db", course_suffix="Winter2013")
        m1.save()
        m2 = CurrentTermMap(course_prefix="class2go", course_suffix="tutorial")
        m2.save()
        m3 = CurrentTermMap(course_prefix="EE364A", course_suffix="Winter2013")
        m3.save()
        for (course, suffix) in (
            ("nlp", "Fall2012"),
            ("test", "Fall2012"),
            ("networking", "Fall2012"),
            ("crypto", "Fall2012"),
            ("security", "Fall2012"),
            ("cs144", "Fall2012"),
            ("cs224n", "Fall2012"),
            ("solar", "Fall2012"),
            ("matsci256", "Fall2012"),
            ("psych30", "Fall2012"),
            ("nano", "Fall2012"),
            ("msande111", "Fall2012"),
            ("db", "Winter2013"),
            ("class2go", "tutorial"),
            ("EE364A", "Winter2013"),
            ("networking", "WallaWalla"),
        ):

            ### Create the new Course ###
            r = randrange(0, 100000000)
            student_group = Group.objects.create(name="Student Group for class2go course " + course + " %d" % r)
            instructor_group = Group.objects.create(name="Instructor Group for class2go course " + course + " %d" % r)
            tas_group = Group.objects.create(name="TAS Group for class2go course " + course + " %d" % r)
            readonly_tas_group = Group.objects.create(
                name="Readonly TAS Group for class2go course " + course + " %d" % r
            )

            c = Course(
                handle=course + "--" + suffix,
                student_group_id=student_group.id,
                instructor_group_id=instructor_group.id,
                tas_group_id=tas_group.id,
                readonly_tas_group_id=readonly_tas_group.id,
            )

            c.save()
예제 #3
0
    def setUp(self):
        # Every test needs access to the request factory.
        self.factory = RequestFactory()
        self.redir = convenience_redirector()
        #db class map
        m1 = CurrentTermMap(course_prefix="db", course_suffix="Winter2013")
        m1.save()
        m2 = CurrentTermMap(course_prefix="class2go", course_suffix="tutorial")
        m2.save()
        m3 = CurrentTermMap(course_prefix="EE364A", course_suffix="Winter2013")
        m3.save()
        for (course,suffix) in (('nlp','Fall2012'),
                                ('test','Fall2012'),
                                ('networking','Fall2012'),
                                ('crypto','Fall2012'),
                                ('security','Fall2012'),
                                ('cs144','Fall2012'),
                                ('cs224n','Fall2012'),
                                ('solar','Fall2012'),
                                ('matsci256','Fall2012'),
                                ('psych30','Fall2012'),
                                ('nano','Fall2012'),
                                ('msande111','Fall2012'),
                                ('db','Winter2013'),
                                ('class2go','tutorial'),
                                ('EE364A','Winter2013'),
                                ('networking', 'WallaWalla'),
                                ):
            
            ### Create the new Course ###
            r = randrange(0,100000000)
            student_group = Group.objects.create(name="Student Group for class2go course " + course + " %d" % r)
            instructor_group = Group.objects.create(name="Instructor Group for class2go course " + course + " %d" % r)
            tas_group = Group.objects.create(name="TAS Group for class2go course " + course + " %d" % r)
            readonly_tas_group = Group.objects.create(name="Readonly TAS Group for class2go course " + course + " %d" % r)

            c = Course(handle=course+'--'+suffix,
                       student_group_id = student_group.id,
                       instructor_group_id = instructor_group.id,
                       tas_group_id = tas_group.id,
                       readonly_tas_group_id = readonly_tas_group.id,
            )

            c.save()
예제 #4
0
def new(request):
    if request.method == 'POST':
        #inst_id = request.POST.get('institution')
        # We are disabling the institutions functionality temporarily
        handle = request.POST.get('prefix') + '--' + request.POST.get('suffix')

        ### Sanity checks ###
        # Verify that the user is marked as staff member and, thus, has privilege to create a course
        if not request.user.is_staff:
            return HttpResponse('You are not allowed to create courses on Class2Go. If you feel this is an error, please contact the Class2Go team.')

        # Verify that there is no course with the same handle
        num_courses_with_same_handle = Course.objects.filter(handle=handle).count()
        if num_courses_with_same_handle > 0:
            return HttpResponse('A course with the same prefix and suffix already exists. Please choose a different prefix and/or suffix.')


        ### Create the new Course ###
        r = randrange(0,100000000)
        student_group = Group.objects.create(name="Student Group for class2go course " + handle + " %d" % r)
        instructor_group = Group.objects.create(name="Instructor Group for class2go course " + handle + " %d" % r)
        tas_group = Group.objects.create(name="TAS Group for class2go course " + handle + " %d" % r)
        readonly_tas_group = Group.objects.create(name="Readonly TAS Group for class2go course " + handle + " %d" % r)

        #Add the professor to the instructor group
        instructor_group.user_set.add(request.user)

        start_date_elements = request.POST.get('start_date').split('-')
        start_date_month = int(start_date_elements[0])
        start_date_day = int(start_date_elements[1])
        start_date_year = int(start_date_elements[2])

        end_date_elements = request.POST.get('end_date').split('-')
        end_date_month = int(end_date_elements[0])
        end_date_day = int(end_date_elements[1])
        end_date_year = int(end_date_elements[2])

        #Get the !!!single!!! (Stanford) institution and relate the course to it.
        institution = Institution.objects.all()[0]
        
        # Create the course
        draft_course = Course(
            student_group_id = student_group.id,
            instructor_group_id = instructor_group.id,
            tas_group_id = tas_group.id,
            readonly_tas_group_id = readonly_tas_group.id,
            title = request.POST.get('title'),
            contact = request.POST.get('contact'),
            term = request.POST.get('term'),
            year = int(request.POST.get('year')),
            calendar_start = datetime.datetime(start_date_year, start_date_month, start_date_day),
            calendar_end = datetime.datetime(end_date_year, end_date_month, end_date_day),
            list_publicly = 0,
            mode='draft',
            handle=handle,
            institution_id = institution.id,
            preview_only_mode=True,
        )
        draft_course.save()
        
        draft_course.create_ready_instance()
        
        op = AdditionalPage(
            course=draft_course,
            menu_slug='course_info',
            title='Overview',
            description='',
            slug='overview',
            index=0,
            mode='draft',
        )
        op.save()
        op.create_ready_instance()
    
    
        #Create the CurrentTermMap table entry (note we still do not automatically update the DNS in Route 53)
        redir_entry, created = CurrentTermMap.objects.get_or_create(course_prefix = request.POST.get('prefix'))
        redir_entry.course_suffix = request.POST.get('suffix')
        redir_entry.save()
    
        request.session['course_mode'] = 'draft'
        return redirect('courses.views.main', course_prefix = request.POST.get('prefix'), course_suffix = request.POST.get('suffix'))
        
    else:
        now = datetime.datetime.now()
        date = "%02d-%02d-%04d" %(now.month, now.day, now.year)
        
        # List of institutions
        institutions = Institution.objects.all()
        
        return render_to_response('courses/new.html', {'request': request, 'date': date, 'institutions': institutions }, context_instance=RequestContext(request))
예제 #5
0
def setup_course(handle, user, start_date, end_date, title, contact, term,
                 year, prefix, suffix, twitter_tag, logo_filename,
                 institution_only, pre_enroll_only, preview_only):

    # Verify that there is no course with the same handle
    num_courses_with_same_handle = Course.objects.filter(handle=handle).count()
    if num_courses_with_same_handle > 0:
        return HttpResponse(
            'A course with the same prefix and suffix already exists. Please choose a different prefix and/or suffix.'
        )

    #Create groups
    r = randrange(0, 100000000)
    student_group = Group.objects.create(
        name="Student Group for class2go course " + handle + " %d" % r)
    instructor_group = Group.objects.create(
        name="Instructor Group for class2go course " + handle + " %d" % r)
    tas_group = Group.objects.create(name="TAS Group for class2go course " +
                                     handle + " %d" % r)
    readonly_tas_group = Group.objects.create(
        name="Readonly TAS Group for class2go course " + handle + " %d" % r)

    #Add the professor to the instructor group
    instructor_group.user_set.add(user)

    #Setup dates
    start_date_elements = start_date.split('-')
    start_date_month = int(start_date_elements[0])
    start_date_day = int(start_date_elements[1])
    start_date_year = int(start_date_elements[2])

    end_date_elements = end_date.split('-')
    end_date_month = int(end_date_elements[0])
    end_date_day = int(end_date_elements[1])
    end_date_year = int(end_date_elements[2])

    #Get the !!!single!!! (Stanford) institution and relate the course to it.
    institution = Institution.objects.all()[0]

    # Create the course
    draft_course = Course(
        student_group_id=student_group.id,
        instructor_group_id=instructor_group.id,
        tas_group_id=tas_group.id,
        readonly_tas_group_id=readonly_tas_group.id,
        title=title,
        contact=contact,
        term=term,
        year=year,
        calendar_start=datetime.datetime(start_date_year, start_date_month,
                                         start_date_day),
        calendar_end=datetime.datetime(end_date_year, end_date_month,
                                       end_date_day),
        list_publicly=0,
        mode='draft',
        handle=handle,
        institution_id=institution.id,
        twitter_tag=twitter_tag,
        logo=logo_filename,
        institution_only=True if institution_only else False,
        preenroll_only=True if pre_enroll_only else False,
        preview_only_mode=True if preview_only else False)
    draft_course.save()

    draft_course.create_ready_instance()

    op = AdditionalPage(
        course=draft_course,
        menu_slug='course_info',
        title='Overview',
        description='',
        slug='overview',
        index=0,
        mode='draft',
    )
    op.save()
    op.create_ready_instance()

    #Create the CurrentTermMap table entry (note we still do not automatically update the DNS in Route 53)
    redir_entry, created = CurrentTermMap.objects.get_or_create(
        course_prefix=prefix)
    redir_entry.course_suffix = suffix
    redir_entry.save()
예제 #6
0
from django.http import HttpResponse
예제 #7
0
from django.http import HttpResponse
예제 #8
0
def new(request):
    if request.method == "POST":
        # inst_id = request.POST.get('institution')
        # We are disabling the institutions functionality temporarily
        handle = request.POST.get("prefix") + "--" + request.POST.get("suffix")

        ### Sanity checks ###
        # Verify that the user is marked as staff member and, thus, has privilege to create a course
        if not request.user.is_staff:
            return HttpResponse(
                "You are not allowed to create courses on Class2Go. If you feel this is an error, please contact the Class2Go team."
            )

        # Verify that there is no course with the same handle
        num_courses_with_same_handle = Course.objects.filter(handle=handle).count()
        if num_courses_with_same_handle > 0:
            return HttpResponse(
                "A course with the same prefix and suffix already exists. Please choose a different prefix and/or suffix."
            )

        ### Create the new Course ###
        r = randrange(0, 100000000)
        student_group = Group.objects.create(name="Student Group for class2go course " + handle + " %d" % r)
        instructor_group = Group.objects.create(name="Instructor Group for class2go course " + handle + " %d" % r)
        tas_group = Group.objects.create(name="TAS Group for class2go course " + handle + " %d" % r)
        readonly_tas_group = Group.objects.create(name="Readonly TAS Group for class2go course " + handle + " %d" % r)

        # Add the professor to the instructor group
        instructor_group.user_set.add(request.user)

        start_date_elements = request.POST.get("start_date").split("-")
        start_date_month = int(start_date_elements[0])
        start_date_day = int(start_date_elements[1])
        start_date_year = int(start_date_elements[2])

        end_date_elements = request.POST.get("end_date").split("-")
        end_date_month = int(end_date_elements[0])
        end_date_day = int(end_date_elements[1])
        end_date_year = int(end_date_elements[2])

        # Get the !!!single!!! (Stanford) institution and relate the course to it.
        institution = Institution.objects.all()[0]

        # Create the course
        draft_course = Course(
            student_group_id=student_group.id,
            instructor_group_id=instructor_group.id,
            tas_group_id=tas_group.id,
            readonly_tas_group_id=readonly_tas_group.id,
            title=request.POST.get("title"),
            contact=request.POST.get("contact"),
            term=request.POST.get("term"),
            year=int(request.POST.get("year")),
            calendar_start=datetime.datetime(start_date_year, start_date_month, start_date_day),
            calendar_end=datetime.datetime(end_date_year, end_date_month, end_date_day),
            list_publicly=0,
            mode="draft",
            handle=handle,
            institution_id=institution.id,
        )
        draft_course.save()

        draft_course.create_ready_instance()

        op = AdditionalPage(
            course=draft_course,
            menu_slug="course_info",
            title="Overview",
            description="",
            slug="overview",
            index=0,
            mode="draft",
        )
        op.save()
        op.create_ready_instance()

        request.session["course_mode"] = "draft"
        return redirect(
            "courses.views.main", course_prefix=request.POST.get("prefix"), course_suffix=request.POST.get("suffix")
        )

    else:
        now = datetime.datetime.now()
        date = "%02d-%02d-%04d" % (now.month, now.day, now.year)

        # List of institutions
        institutions = Institution.objects.all()

        return render_to_response(
            "courses/new.html",
            {"request": request, "date": date, "institutions": institutions},
            context_instance=RequestContext(request),
        )
예제 #9
0
def new(request):
    if request.method == 'POST':
        #inst_id = request.POST.get('institution')
        # We are disabling the institutions functionality temporarily
        handle = request.POST.get('prefix') + '--' + request.POST.get('suffix')

        ### Sanity checks ###
        # Verify that the user is marked as staff member and, thus, has privilege to create a course
        if not request.user.is_staff:
            return HttpResponse(
                'You are not allowed to create courses on Class2Go. If you feel this is an error, please contact the Class2Go team.'
            )

        # Verify that there is no course with the same handle
        num_courses_with_same_handle = Course.objects.filter(
            handle=handle).count()
        if num_courses_with_same_handle > 0:
            return HttpResponse(
                'A course with the same prefix and suffix already exists. Please choose a different prefix and/or suffix.'
            )

        ### Create the new Course ###
        r = randrange(0, 100000000)
        student_group = Group.objects.create(
            name="Student Group for class2go course " + handle + " %d" % r)
        instructor_group = Group.objects.create(
            name="Instructor Group for class2go course " + handle + " %d" % r)
        tas_group = Group.objects.create(
            name="TAS Group for class2go course " + handle + " %d" % r)
        readonly_tas_group = Group.objects.create(
            name="Readonly TAS Group for class2go course " + handle +
            " %d" % r)

        #Add the professor to the instructor group
        instructor_group.user_set.add(request.user)

        start_date_elements = request.POST.get('start_date').split('-')
        start_date_month = int(start_date_elements[0])
        start_date_day = int(start_date_elements[1])
        start_date_year = int(start_date_elements[2])

        end_date_elements = request.POST.get('end_date').split('-')
        end_date_month = int(end_date_elements[0])
        end_date_day = int(end_date_elements[1])
        end_date_year = int(end_date_elements[2])

        #Get the !!!single!!! (Stanford) institution and relate the course to it.
        institution = Institution.objects.all()[0]

        # Create the course
        draft_course = Course(
            student_group_id=student_group.id,
            instructor_group_id=instructor_group.id,
            tas_group_id=tas_group.id,
            readonly_tas_group_id=readonly_tas_group.id,
            title=request.POST.get('title'),
            contact=request.POST.get('contact'),
            term=request.POST.get('term'),
            year=int(request.POST.get('year')),
            calendar_start=datetime.datetime(start_date_year, start_date_month,
                                             start_date_day),
            calendar_end=datetime.datetime(end_date_year, end_date_month,
                                           end_date_day),
            list_publicly=0,
            mode='draft',
            handle=handle,
            institution_id=institution.id,
            preview_only_mode=True,
        )
        draft_course.save()

        draft_course.create_ready_instance()

        op = AdditionalPage(
            course=draft_course,
            menu_slug='course_info',
            title='Overview',
            description='',
            slug='overview',
            index=0,
            mode='draft',
        )
        op.save()
        op.create_ready_instance()

        #Create the CurrentTermMap table entry (note we still do not automatically update the DNS in Route 53)
        redir_entry, created = CurrentTermMap.objects.get_or_create(
            course_prefix=request.POST.get('prefix'))
        redir_entry.course_suffix = request.POST.get('suffix')
        redir_entry.save()

        request.session['course_mode'] = 'draft'
        return redirect('courses.views.main',
                        course_prefix=request.POST.get('prefix'),
                        course_suffix=request.POST.get('suffix'))

    else:
        now = datetime.datetime.now()
        date = "%02d-%02d-%04d" % (now.month, now.day, now.year)

        # List of institutions
        institutions = Institution.objects.all()

        return render_to_response('courses/new.html', {
            'request': request,
            'date': date,
            'institutions': institutions
        },
                                  context_instance=RequestContext(request))
예제 #10
0
def setup_course(handle, user, start_date, end_date, title, contact, term, year, prefix, suffix, 
                 twitter_tag, logo_filename, institution_only, pre_enroll_only, preview_only):
    
    # Verify that there is no course with the same handle
    num_courses_with_same_handle = Course.objects.filter(handle=handle).count()
    if num_courses_with_same_handle > 0:
        return HttpResponse('A course with the same prefix and suffix already exists. Please choose a different prefix and/or suffix.')
    
    #Create groups
    r = randrange(0,100000000)
    student_group = Group.objects.create(name="Student Group for class2go course " + handle + " %d" % r)
    instructor_group = Group.objects.create(name="Instructor Group for class2go course " + handle + " %d" % r)
    tas_group = Group.objects.create(name="TAS Group for class2go course " + handle + " %d" % r)
    readonly_tas_group = Group.objects.create(name="Readonly TAS Group for class2go course " + handle + " %d" % r)
    
    #Add the professor to the instructor group
    instructor_group.user_set.add(user)

    #Setup dates
    start_date_elements = start_date.split('-')
    start_date_month = int(start_date_elements[0])
    start_date_day = int(start_date_elements[1])
    start_date_year = int(start_date_elements[2])

    end_date_elements = end_date.split('-')
    end_date_month = int(end_date_elements[0])
    end_date_day = int(end_date_elements[1])
    end_date_year = int(end_date_elements[2])    
    
    #Get the !!!single!!! (Stanford) institution and relate the course to it.
    institution = Institution.objects.all()[0]
        
    # Create the course
    draft_course = Course(
            student_group_id = student_group.id,
            instructor_group_id = instructor_group.id,
            tas_group_id = tas_group.id,
            readonly_tas_group_id = readonly_tas_group.id,
            title = title,
            contact = contact,
            term = term,
            year = year,
            calendar_start = datetime.datetime(start_date_year, start_date_month, start_date_day),
            calendar_end = datetime.datetime(end_date_year, end_date_month, end_date_day),
            list_publicly = 0,
            mode='draft',
            handle=handle,
            institution_id = institution.id,
            twitter_tag = twitter_tag,
            logo = logo_filename,
            institution_only = True if institution_only else False,
            preenroll_only = True if pre_enroll_only else False,
            preview_only_mode = True if preview_only else False
        )
    draft_course.save()
    
    draft_course.create_ready_instance()
        
    op = AdditionalPage(
                        course=draft_course,
                        menu_slug='course_info',
                        title='Overview',
                        description='',
                        slug='overview',
                        index=0,
                        mode='draft',
                       )
    op.save()
    op.create_ready_instance()
    
    #Create the CurrentTermMap table entry (note we still do not automatically update the DNS in Route 53)
    redir_entry, created = CurrentTermMap.objects.get_or_create(course_prefix = prefix)
    redir_entry.course_suffix = suffix
    redir_entry.save()