Пример #1
0
    def setUp(self):
        super(AddLectureApiTest, self).setUp()

        self.simon = Lecturer('simon', '1234', 'Simon', 'McCallum')
        db.session.add(self.simon)

        imt3601 = Course('IMT3601 - Game Programming', self.simon)
        db.session.add(imt3601)

        imt3601_l1 = Lecture('Lecture 1', imt3601)
        db.session.add(imt3601_l1)

        self.frode = Lecturer('frode', '1234', 'Frode', 'Haug')
        db.session.add(self.frode)

        self.imt1031 = Course('IMT1031 - Grunnleggende Programmering',
                              self.frode)
        db.session.add(self.imt1031)

        self.imt1031_l1 = Lecture('Lecture 1', self.imt1031)
        db.session.add(self.imt1031_l1)

        self.imt1031_l2 = Lecture('Lecture 2', self.imt1031)
        db.session.add(self.imt1031_l2)

        self.imt1031_l3 = Lecture('Lecture 3', self.imt1031)
        db.session.add(self.imt1031_l3)

        db.session.flush()
Пример #2
0
    def setup_course(self):
        """Creates:

        * A course (self.course)
        * An assignment (self.assignment) in that course
        * 5 users (self.user1, self.user2, etc.) enrolled as students
        """
        self.course = Course(offering='cal/cs61a/sp16',
                             institution='UC Berkeley',
                             display_name='CS 61A')
        self.assignment = Assignment(name='cal/cs61a/sp16/proj1',
                                     course=self.course,
                                     display_name='Hog',
                                     due_date=datetime.datetime.now(),
                                     lock_date=datetime.datetime.now() +
                                     datetime.timedelta(days=1),
                                     max_group_size=4)
        db.session.add(self.assignment)

        def make_student(n):
            user = User(email='student{0}@aol.com'.format(n))
            participant = Enrollment(user=user, course=self.course)
            db.session.add(participant)
            return user

        self.user1 = make_student(1)
        self.user2 = make_student(2)
        self.user3 = make_student(3)
        self.user4 = make_student(4)
        self.user5 = make_student(5)
        db.session.commit()
Пример #3
0
def parse_course_list(request):
    if not request.user.is_authenticated():
        return HttpResponse("Not authenticated.")
    session = HTMLSession()
    course_list_r = session.request(url='https://ocw.mit.edu/courses/',
                                    method='get')
    courses = course_list_r.html.find('.course_title')
    # Clear out old courses
    Course.objects.all().delete()
    sequence_sql = connection.ops.sequence_reset_sql(no_style(), [Course])
    with connection.cursor() as cursor:
        for sql in sequence_sql:
            cursor.execute(sql)
    for course in courses:
        course_db_obj = Course(url=course.absolute_links.pop())
        course_db_obj.save()

    return HttpResponse("Successfully added all ")
Пример #4
0
def get_course(offering):
    """Get a course with the given name. If the user is not enrolled, flash
    a warning message.
    """
    course = Course.by_name(offering)
    if not course:
        abort(404)
    check_enrollment(course)
    return course
Пример #5
0
def get_course(offering):
    """Get a course with the given name. If the user is not enrolled, flash
    a warning message.
    """
    course = Course.by_name(offering)
    if not course:
        abort(404)
    check_enrollment(course)
    return course
Пример #6
0
def gen_course():
    return Course(
        offering='{0}/{1}/{2}{3}'.format('cal',
                                         random.choice(['cs61a', 'ds88']),
                                         random.choice(['sp', 'su', 'fa']),
                                         str(random.randrange(100)).zfill(2)),
        institution='UC Berkeley',
        display_name='{0} {1}{2}'.format(random.choice(['CS', 'Data Science']),
                                         random.randrange(100),
                                         random.choice(['', 'A'])),
        active=gen_bool(0.6))
Пример #7
0
    def setUp(self):
        super(AddEngagementApiTest, self).setUp()

        simon = Lecturer('simon', '1234', 'Simon', 'McCallum')
        db.session.add(simon)

        imt3601 = Course('IMT3601 - Game Programming', simon)
        db.session.add(imt3601)

        imt3601_l1 = Lecture('Lecture 1', imt3601)
        db.session.add(imt3601_l1)

        db.session.flush()
Пример #8
0
def mock_db():
    """ Insert mock data into database """
    init_db()

    simon = Lecturer('*****@*****.**',
                     sha256('1234'.encode('utf-8')).hexdigest(), 'Simon',
                     'McCallum')
    simon.admin = True
    db.session.add(simon)

    magnus = Lecturer('*****@*****.**',
                      sha256('12345'.encode('utf-8')).hexdigest(), 'Magnus',
                      'Vik')
    db.session.add(magnus)

    imt3601 = Course('IMT3601 - Game Programming', simon)
    db.session.add(imt3601)

    imt3601_l1 = Lecture('Lecture 1', imt3601)
    db.session.add(imt3601_l1)

    imt3601_l1_c1 = Comment('This is boring', datetime(2015, 11, 26, 10, 30),
                            imt3601_l1)
    db.session.add(imt3601_l1_c1)
    imt3601_l1_c2 = Comment('This is fun!', datetime(2015, 11, 26, 10, 40),
                            imt3601_l1)
    db.session.add(imt3601_l1_c2)
    imt3601_l1_c3 = Comment('Help?', datetime(2015, 11, 26, 10, 50),
                            imt3601_l1)
    db.session.add(imt3601_l1_c3)
    imt3601_l1_c4 = Comment('A bit longer comment for your convenience',
                            datetime(2015, 11, 26, 10, 10), imt3601_l1)
    db.session.add(imt3601_l1_c4)

    imt3601_l1_r1 = CommentRating(1, 1, imt3601_l1_c1, imt3601_l1)
    db.session.add(imt3601_l1_r1)
    imt3601_l1_r2 = CommentRating(1, 2, imt3601_l1_c1, imt3601_l1)
    db.session.add(imt3601_l1_r2)
    imt3601_l1_r3 = CommentRating(1, 3, imt3601_l1_c1, imt3601_l1)
    db.session.add(imt3601_l1_r3)

    imt3601_l1_r4 = CommentRating(-1, 1, imt3601_l1_c3, imt3601_l1)
    db.session.add(imt3601_l1_r4)

    imt3601_l1_r5 = CommentRating(1, 1, imt3601_l1_c4, imt3601_l1)
    db.session.add(imt3601_l1_r5)

    db.session.flush()
Пример #9
0
    def post(self):
        argparser = reqparse.RequestParser()
        argparser.add_argument('name', required=True)
        argparser.add_argument('lecturerId', type=int, required=True)
        args = argparser.parse_args()

        if args.lecturerId != current_user.id:
            abort(403, message="lectureId must be the ID of the logged in lecturer")

        course = Course(args.name, current_user)
        db.session.add(course)
        db.session.flush()

        return {
            'id': course.id
        }
Пример #10
0
def setup_default():
    admin = User(email="*****@*****.**", is_admin=True)
    db.session.add(admin)
    admin = User(email="*****@*****.**", is_admin=True)
    db.session.add(admin)
    db.session.commit()
    course = Course(offering='cal/cs61a/sp16',
                    institution='UC Berkeley',
                    display_name='CS 61A',
                    active=True)
    db.session.add(course)

    url = 'https://github.com/Cal-CS-61A-Staff/ok-client/releases/download/v1.5.5/ok'
    ok = Version(name='ok-client', current_version='v1.5.4', download_link=url)
    db.session.add(ok)
    db.session.commit()
Пример #11
0
    def setUp(self):
        super(SetCommentRatingApiTest, self).setUp()

        simon = Lecturer('simon', '1234', 'Simon', 'McCallum')
        db.session.add(simon)

        imt3601 = Course('IMT3601 - Game Programming', simon)
        db.session.add(imt3601)

        imt3601_l1 = Lecture('Lecture 1', imt3601)
        db.session.add(imt3601_l1)

        imt3601_l1_c1 = Comment('This is boring', datetime.utcnow(),
                                imt3601_l1)
        db.session.add(imt3601_l1_c1)

        db.session.flush()
Пример #12
0
def create_course():
    courses, current_course = get_courses()
    form = forms.NewCourseForm()
    if form.validate_on_submit():
        new_course = Course()
        form.populate_obj(new_course)

        # Add user as instructor, can be changed later
        enroll = Enrollment(course=new_course, user_id=current_user.id,
                            role=INSTRUCTOR_ROLE)
        db.session.add(new_course)
        db.session.add(enroll)

        db.session.commit()

        flash(new_course.offering + " created successfully.", "success")
        return redirect(url_for(".course", cid=new_course.id))
    return render_template('staff/course/course.new.html', form=form,
                           courses=courses)
Пример #13
0
def create():
    user = session.get('user')
    if not user or user['account_type'] != 'admin':
        return redirect('/')
    if request.method == 'GET':
        return render_template('create.html', user=user)
    form = request.form
    # indefinitely required to create courses as its used for identification
    if not all([x in form for x in ['name', 'semester']]):
        return "Missing parameters"

    if bool(
            Course.query.filter_by(name=form['name'].strip(),
                                   semester=form['semester'].strip()).first()):
        return "Course already exists"
    try:
        sem = form["semester"].split("-")
        type = sem[1].upper()
        int(sem[0])
        if not (type == "SS" or type == "WS"):
            return "Semester type must either be SS or WS", 500
    except:
        return "Invalid semester passed", 500
        # specific code
    if not gitea_add_course(form['semester'].strip().lower(),
                            form['name'].strip().lower()):
        return "Could not create user for course in Gitea. Abort."

    try:
        db.session.add(
            Course(name=form['name'].strip(),
                   web_url=form['web'].strip(),
                   semester=form['semester'].strip(),
                   joinable='joinable' in form and form['joinable'] == 'on',
                   ci='ci' in form and form['ci'] == 'on',
                   gitea_user=(form['semester'].strip() + "-" +
                               form['name'].strip()).lower()))
        db.session.commit()
    except IntegrityError:
        pass

    return redirect("/")
Пример #14
0
    def setUp(self):
        super(GetCommentRatingApiTest, self).setUp()
        simon = Lecturer('simon', '1234', 'Simon', 'McCallum')
        db.session.add(simon)

        imt3601 = Course('IMT3601 - Game Programming', simon)
        db.session.add(imt3601)

        imt3601_l1 = Lecture('Lecture 1', imt3601)
        db.session.add(imt3601_l1)

        comment = Comment('This is boring', datetime.utcnow(), imt3601_l1)
        db.session.add(comment)

        db.session.flush()

        self.lecture = imt3601_l1

        # Using the POST API is required to make server use the correct
        # client_id. See API doc for info about the client_id Cookie.
        self.client.post('/api/0/lectures/1/comments/1/rating',
                         data=dict(rating=1))
Пример #15
0
    def setUp(self):
        super(GetCommentsApiTest, self).setUp()

        simon = Lecturer('simon', '1234', 'Simon', 'McCallum')
        db.session.add(simon)

        imt3601 = Course('IMT3601 - Game Programming', simon)
        db.session.add(imt3601)

        imt3601_l1 = Lecture('Lecture 1', imt3601)
        db.session.add(imt3601_l1)

        self.submissionTime = datetime.utcnow()

        imt3601_l1_c1 = Comment('This is boring', self.submissionTime,
                                imt3601_l1)
        imt3601_l1_c2 = Comment('This is fun!', self.submissionTime,
                                imt3601_l1)
        db.session.add(imt3601_l1_c1)
        db.session.add(imt3601_l1_c2)

        db.session.flush()
Пример #16
0
    def setup_course(self):
        """Creates:

        * A course (self.course)
        * 2 assignments (self.assignment) in that course
        * 5 users (self.user1, self.user2, etc.) enrolled as students
        * 2 staff members (self.staff1, self.staff2) as TAs
        * 1 lab assistant (self.lab_assistant1) as lab assistants
        * 1 Admin ([email protected])
        """
        self.admin = User(email='*****@*****.**', is_admin=True)
        db.session.add(self.admin)
        db.session.commit()

        self.course = Course(offering='cal/cs61a/sp16',
                             institution='UC Berkeley',
                             display_name='CS 61A')
        self.assignment = Assignment(
            name='cal/cs61a/sp16/proj1',
            creator_id=self.admin.id,
            course=self.course,
            display_name='Hog',
            due_date=dt.datetime.now(),
            lock_date=dt.datetime.now() + dt.timedelta(days=1),
            max_group_size=4,
            autograding_key='test')  # AG responds with a 200 if ID = 'test'
        db.session.add(self.assignment)

        self.assignment2 = Assignment(
            name='cal/cs61a/sp16/proj2',
            creator_id=self.admin.id,
            course=self.course,
            display_name='Maps',
            due_date=dt.datetime.now() + dt.timedelta(days=2),
            lock_date=dt.datetime.now() + dt.timedelta(days=3),
            max_group_size=3)
        db.session.add(self.assignment2)

        def make_student(n):
            user = User(email='student{0}@aol.com'.format(n))
            participant = Enrollment(user=user, course=self.course)
            db.session.add(participant)
            return user

        def make_staff(n, role=constants.STAFF_ROLE):
            user = User(email='staff{0}@bitdiddle.net'.format(n))
            participant = Enrollment(user=user, course=self.course, role=role)
            db.session.add(participant)
            return user

        def make_lab_assistant(n, role=constants.LAB_ASSISTANT_ROLE):
            user = User(email='lab_assistant{0}@labassist.net'.format(n))
            participant = Enrollment(user=user, course=self.course, role=role)
            db.session.add(participant)
            return user

        self.user1 = make_student(1)
        self.user2 = make_student(2)
        self.user3 = make_student(3)
        self.user4 = make_student(4)
        self.user5 = make_student(5)

        self.staff1 = make_staff(1)
        self.staff2 = make_staff(2)

        self.lab_assistant1 = make_lab_assistant(1)

        db.session.commit()
Пример #17
0
from server.models import Course
from server.models import University
from datetime import datetime

u = University.objects.get(name="University of Victoria")
c = Course(name="CSc 111",
           start_date=datetime(2014, 5, 1),
           end_date=datetime(2014, 8, 31),
           university=u)
c.save()
Пример #18
0
from server.models import Course
from server.models import University
from datetime import datetime

u = University.objects.get(name="University of Victoria")
c = Course(name="CSc 111", start_date=datetime(2014, 5, 1), end_date=datetime(2014, 8, 31), university=u)
c.save()