Ejemplo n.º 1
0
    def setUpCourses(self):
        self.all_courses = []

        self.course = Course(
            title='Active test course',
            active=True,
            owner=self.teacher.user,
            max_authors=3,
        )
        self.course.save()
        self.course.tutors.add(self.tutor.user)
        for student in self.enrolled_students:
            self.course.participants.add(student.profile)
        self.all_courses.append(self.course)

        self.anotherCourse = Course(
            title='Another active test course',
            active=True,
            owner=self.another_teacher.user,
            max_authors=1,
        )
        self.anotherCourse.save()
        self.all_courses.append(self.anotherCourse)

        self.inactiveCourse = Course(
            title='Inactive test course',
            active=False,
            owner=self.another_teacher.user,
            max_authors=1,
        )
        self.inactiveCourse.save()
        self.all_courses.append(self.inactiveCourse)
Ejemplo n.º 2
0
    def handle(self, *args, **options):

        # create demo users
        users = {}
        for name in ['demo_student', 'demo_tutor', 'demo_owner']:
            user = User.objects.filter(username=name).delete()
            user = User.objects.create_user(username=name,
                                            email='*****@*****.**',
                                            password=name)
            UserProfile(user=user).save()
            users[name] = user

        # create demo grading
        passGrade = Grading(title='passed', means_passed=True)
        passGrade.save()
        failGrade = Grading(title='failed', means_passed=False)
        failGrade.save()
        passFailGrading = GradingScheme(
            title='Pass/Fail Grading Scheme (Demo)')
        passFailGrading.save()
        passFailGrading.gradings.add(passGrade)
        passFailGrading.gradings.add(failGrade)
        passFailGrading.save()

        # create demo course
        course = Course(
            title='Demo Course',
            active=True,
            owner=users['demo_owner'],
            max_authors=3,
        )
        course.save()
        course.tutors.add(users['demo_tutor'])
        course.participants.add(users['demo_student'].profile)

        # create demo assignment
        today = timezone.now()
        last_week = today - datetime.timedelta(weeks=1)
        tomorrow = today + datetime.timedelta(days=1)
        next_week = today + datetime.timedelta(weeks=1)
        ass = Assignment(title='Demo Assignment 1',
                         course=course,
                         download='http://example.org/assignments1.pdf',
                         gradingScheme=passFailGrading,
                         publish_at=last_week,
                         soft_deadline=tomorrow,
                         hard_deadline=next_week,
                         has_attachment=False)
        ass.save()

        # create demo submission
        Submission(assignment=ass,
                   submitter=users['demo_student'],
                   notes="This is a demo submission.",
                   state=Submission.SUBMITTED_TESTED).save()
Ejemplo n.º 3
0
def create_course(owner, tutor=None, students=None):
    c = Course(
        title=uccrap + 'Active test course',
        active=True,
        owner=owner
    )
    c.save()
    if tutor:
        c.tutors.add(tutor)
    if students:
        for student in students:
            c.participants.add(student.profile)
    c.save()
    return c
Ejemplo n.º 4
0
    def handle(self, *args, **options):

        print("Adding demo data ...")

        # create demo users
        users = {}
        for name in ['demo_student', 'demo_cheater', 'demo_tutor', 'demo_owner']:
            user = User.objects.filter(username=name).delete()
            user = User.objects.create_user(username=name,
                                            email='*****@*****.**',
                                            password=name,
                                            first_name=name,
                                            last_name=name)
            users[name] = user

        # create demo grading
        Grading.objects.filter(title='passed (demo)').delete()
        passGrade = Grading(title='passed (demo)', means_passed=True)
        passGrade.save()
        Grading.objects.filter(title='failed (demo)').delete()
        failGrade = Grading(title='failed (demo)', means_passed=False)
        failGrade.save()
        GradingScheme.objects.filter(
            title='Pass/Fail Grading Scheme (Demo)').delete()
        passFailGrading = GradingScheme(
            title='Pass/Fail Grading Scheme (Demo)')
        passFailGrading.save()
        passFailGrading.gradings.add(passGrade)
        passFailGrading.gradings.add(failGrade)
        passFailGrading.save()

        # create demo course
        Course.objects.filter(title='Demo Course').delete()
        course = Course(
            title='Demo Course',
            active=True,
            owner=users['demo_owner'],
            homepage="http://www.open-submit.org"
        )
        course.save()
        course.tutors.add(users['demo_tutor'])
        course.participants.add(users['demo_student'].profile)
        course.participants.add(users['demo_cheater'].profile)

        today = timezone.now()
        last_week = today - datetime.timedelta(weeks=1)
        tomorrow = today + datetime.timedelta(days=1)
        next_week = today + datetime.timedelta(weeks=1)

        # create demo assignment
        ass1 = Assignment(
            title='Demo A1: Graded group work with deadline',
            course=course,
            download='http://example.org/assignments1.pdf',
            gradingScheme=passFailGrading,
            publish_at=last_week,
            soft_deadline=tomorrow,
            hard_deadline=next_week,
            has_attachment=True,
            max_authors=3
        )
        ass1.save()

        # create demo assignment without grading
        ass2 = Assignment(
            title='Demo A2: Non-graded group work with deadline',
            course=course,
            download='http://example.org/assignments2.pdf',
            gradingScheme=None,
            publish_at=last_week,
            soft_deadline=tomorrow,
            hard_deadline=next_week,
            has_attachment=True,
            max_authors=3
        )
        ass2.save()

        # create demo assignment without deadlines
        ass3 = Assignment(
            title='Demo A3: Graded group work without deadline, only notes',
            course=course,
            download='http://example.org/assignments1.pdf',
            gradingScheme=passFailGrading,
            publish_at=last_week,
            soft_deadline=None,
            hard_deadline=None,
            has_attachment=False,
            max_authors=3
        )
        ass3.save()

        # create demo assignment without deadlines
        ass4 = Assignment(
            title='Demo A4: Graded group work with deadline being over',
            course=course,
            download='http://example.org/assignments1.pdf',
            gradingScheme=passFailGrading,
            publish_at=last_week,
            soft_deadline=last_week,
            hard_deadline=last_week,
            has_attachment=False,
            max_authors=3
        )
        ass4.save()

        # create demo submission
        Submission(
            assignment=ass1,
            submitter=users['demo_student'],
            notes="Demo submission for A1.",
            state=Submission.SUBMITTED_TESTED,
            file_upload=createSubmissionFile()
        ).save()

        # create cheater submission in course 1
        Submission(
            assignment=ass1,
            submitter=users['demo_cheater'],
            notes="Demo duplicate submission for A1.",
            state=Submission.SUBMITTED_TESTED,
            file_upload=createSubmissionFile()
        ).save()