Example #1
0
def dummy_data():
    student_1 = Student('Student 1', 'Economics')
    student_2 = Student('Student 2', 'Sports')
    working_student_1 = Working_student('Working Student 1', 'Web Dev',
                                        'Full stack developer', 25000)
    working_student_2 = Working_student('Working Student 2', 'Web Dev',
                                        'Junior Python Developer', 17000)
    student_1.add_grade(80)
    student_1.add_grade(70)
    student_1.add_grade(86)
    student_2.add_grade(90)
    student_2.add_grade(93)
    student_2.add_grade(91)
    working_student_1.add_grade(65)
    working_student_1.add_grade(70)

    students.extend(
        [student_1, student_2, working_student_1, working_student_2])

    teacher_1 = Teacher('Corey Schaufer', 'Python')
    teacher_2 = Teacher('Pretty Printed', 'Django')
    teacher_3 = Teacher('The Net Ninja', 'Javascript')

    teachers.extend([teacher_1, teacher_2, teacher_3])

    print('Dummy data created sucessfully! \n')
Example #2
0
def teacher_page():  # teacher sign in page
    if request.method == "POST":
        user = Teacher("", "", "", "", "")
        user.email = request.form['email']
        user.password = request.form['password']
        result = db.get_teacher(user.email)

        if result:
            password2 = result['teacher_password']
            if hasher.verify(user.password, password2):
                session['logged_in'] = True
                session['email'] = user.email
                session['name'] = result['teacher_name']
                session['surname'] = result['teacher_surname']
                session['id'] = result['teacher_id']

                flash('You are now logged in', 'success')  #??

                return redirect(url_for('teacher_main_page'))
            else:
                error = " wrong password !"
                return render_template('teacher_sign.html', error=error)

        else:
            error = " email not found !"
            return render_template('teacher_sign.html', error=error)

    return render_template('teacher_sign.html')
Example #3
0
    def test_assign_quiz_to_student(self):
        self.student = Student(name='ramadan')
        self.quiz1 = Quiz()
        self.quiz2 = Quiz()

        self.assertEqual([], self.student.quizzes)

        Teacher.assign_quiz_to_student(self.student, self.quiz1)
        self.assertEqual([self.quiz1], self.student.quizzes)

        Teacher.assign_quiz_to_student(self.student, self.quiz2)
        self.assertEqual([self.quiz1, self.quiz2], self.student.quizzes)
Example #4
0
def generate(config):
	subjects = []
	teachers = []

	for round in range(config.rounds):
		semester = 1 + round % 2  # alterante between 1 and 2
		print("Entering round %d/%d (Semester: %d, maxDiff: %d)" % (round + 1, config.rounds, semester, config.maxDiff))

		# create the main subject that defines how this round will occur
		roundSubject = Subject.generateSubject(config, semester)
		# create the main teacher for (at least) the theoretical of roundSubject
		currentTeacher = Teacher.generateTeacher(config, roundSubject.field)
		# add the theoretical hours to this teacher (clears the roundSubject.tHours)
		currentTeacher.addTHours(roundSubject)

		# create teachers until the roundSubject's practical hours are filled
		roundTeachers = []
		# until there are no hours to fill in the roundSubject
		while True: # do-while
			roundTeachers.append(currentTeacher)
			# print("Old: %d" % roundSubject.pHours)
			currentTeacher.addPHoursMax(config, roundSubject) #add as many hours as possible
			# print("New: %d" % roundSubject.pHours)
			if roundSubject.pHours == 0: # enough teachers found to fill the practical hours
				break
			currentTeacher = Teacher.generateTeacher(config) # generate as many extra teachers (any field) as necessary

		# calculate debt of this round (hours each teacher needs to respect the maxDiff) and generate a subject to fill them
		debtSubject = Subject.generateDebtSubject(config, roundTeachers, semester)

		# add the subjects created in this round to the final results lists
		subjects.append(roundSubject)
		if debtSubject: # if debt == 0 then this is None
			subjects.append(debtSubject)

		# add the teachers created in this round to the final results lists
		teachers.extend(roundTeachers)

	return subjects, teachers
Example #5
0
def make_teachers(file_name):
    """
    Create all teacher objects from the Teacher csv file
    :param file_name: The file to extract data from using the csv module's DictReader
    :returns: A list of Teacher objects
    """
    teacher_list = []
    teachers = csv.DictReader(
        open(file_name, encoding='utf-8-sig'
             ))  # Need encoding field to delete the Byte Order Mark (BOM)
    for teacher in teachers:
        email = teacher['Email Address'].strip()
        name = teacher['Teacher\'s Full Name'].strip()
        school = teacher['District/Entity']
        subject = teacher['Subject']
        grade = teacher['Grade']
        principal_email = teacher['Principal\'s email'].strip()
        principal_name = teacher['Principal\'s name'].strip()
        school_name = teacher['School Name'].strip()
        stage_3_times = teacher['Stage 3 Lab']
        other_stage_3_times = teacher[
            'If Other, indicate Stage 3 lab time'].strip()
        stage_1_and_2_times = teacher['Stage 1 & 2 Lab']
        other_stage_1_and_2_times = teacher[
            'If Other, indicate Stage 1 & 2 lab time'].strip()

        new_teacher = Teacher(
            email=email,
            name=name,
            school=school,
            school_name=school_name,
            certification=Certification(subject=subject,
                                        grades=convert_grade(grade)),
            principal_email=principal_email,
            principal_name=principal_name,
            stage2_times=create_times(stage_1_and_2_times,
                                      other_stage_1_and_2_times),
            stage3_times=create_times(stage_3_times, other_stage_3_times))

        teacher_list.append(new_teacher)

    return teacher_list
Example #6
0
def signUp():
    if request.method == "POST":
        form_name = request.form["fname"]
        form_surname = request.form["lname"]
        form_id = request.form["ownid"]
        form_email = request.form["Email"]
        form_password = hasher.hash(request.form["password"])
        form_person = request.form["person"]
        db = current_app.config["db"]
        if request.form["password"] != request.form[
                "confirm_password"]:  #for error
            password_error = "Passwords not matching! Try Again"
            return render_template('signup.html',
                                   password_error=password_error)

        if db.check_exists_student_id(form_id) or db.check_exists_teacher_id(
                form_id):  #for error
            error = "The ID exists! Try Again"
            return render_template('signup.html', error=error)

        if db.check_exists_student_email(
                form_email) or db.check_exists_teacher_email(
                    form_email):  #for error
            error = "The email has already used!"
            return render_template('signup.html', error=error)

        if form_person == "teacher":
            teacher = Teacher(form_id, form_name, form_surname, form_email,
                              form_password)
            teacher_key = db.add_teacher(teacher)
            return redirect(url_for("successful", teacher_key=teacher_key))

        elif form_person == "student":
            student = Student(form_id, form_name, form_surname, form_email,
                              form_password)
            student_key = db.add_student(student)
            return redirect(url_for("successful", student_key=student_key))
        else:
            return "person is not chosen!"
    else:
        return render_template('signup.html')
Example #7
0
def Full_teacher(path) -> [Teacher]:
    xlsx_file = Path(path)
    wb_obj = openpyxl.load_workbook(xlsx_file)
    sheet = wb_obj['параметры преподавателей']
    pr = []
    NUMBERS_OF_PROGRAMS = []
    for row in sheet.iter_rows(min_row=2):
        pr.append(str(row[3].value).split(';'))
    flatten = lambda l: [item for sublist in l for item in sublist]
    for i in list(set(flatten(pr))):
        NUMBERS_OF_PROGRAMS.append(i)
    del pr
    teachers = []
    for _, row in enumerate(sheet.iter_rows(min_row=2)):
        azaza = []
        [
            azaza.append(j) for j in NUMBERS_OF_PROGRAMS
            if j not in str(row[3].value).split(';')
        ]
        tch = Teacher(row[0].value, row[1].value,
                      str(row[3].value).split(';'), azaza, row[4].value,
                      row[7].value, row[2].value)
        teachers.append(tch)
    return teachers
Example #8
0
# <course>, <course>, ..."`. The list of courses should be comma seperated
# without one at the end. Use `super()` to access base method.
#
#
# Create a new instance of the class Teacher. Initiate it with the name
# `Skorstten` and ssn `578118-6946`.
# Use the add_course method to add the following courses, `htmlphp`, `webgl`
# and `ramverk2`.
#
#
# Answer with the Teacher object's string representation.
#
# Write your code below and put the answer into the variable ANSWER.
#

teacher = Teacher("Skorstten", "578118-6946")
teacher.add_course("htmlphp")
teacher.add_course("webgl")
teacher.add_course("ramverk2")

ANSWER = str(teacher)

# I will now test your answer - change false to true to get a hint.
dbwebb.assert_equal("1.3", ANSWER, True)

# """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
# Exercise 1.4 (2 points)
#
# Create a new class name **Student** make it inherit from class "Person".
# Add the instance attribute "courses_grades" and initiate it to and empty
# list.
Example #9
0
from classes import Teacher, Student, Course

compsci = Course("Computer Science 101", "CS101")
maria = Student("Maria", "Martinez")
joe = Student("Joe", "Smith")
ashven = Student("Ashven", "Matthew")

imani = Teacher("Imani", "Matthews")

compsci.add([maria, joe, ashven])
compsci.set_teacher(imani)

print(compsci.teacher, compsci.students)

joe.addgrade(compsci, 80)
joe.addgrade(compsci, 89)
joe.addgrade(compsci, 100)

print()
print("GPA for {} is {:.2f}.".format(joe, joe.gpa_for(compsci)))
Example #10
0
     first_name
Методы:
    create_homework - текст задания и количество дней на это задание,
    возвращает экземпляр Homework
    Обратите внимание, что для работы этого метода не требуется сам объект.

PEP8 соблюдать строго, проверку делаю автотестами и просмотром кода.
Всем перечисленным выше атрибутам и методам классов сохранить названия.
К названием остальных переменных, классов и тд. подходить ответственно -
давать логичные подходящие имена.
"""

from classes import Student, Teacher

if __name__ == '__main__':
    teacher = Teacher('Daniil', 'Shadrin')
    student = Student('Roman', 'Petrov')
    teacher.last_name  # Shadrin
    student.first_name  # Roman

    expired_homework = teacher.create_homework('Learn functions', 0)
    expired_homework.created  # Example: 2019-05-26 16:44:30.688762
    expired_homework.deadline  # 0:00:00
    expired_homework.text  # 'Learn functions'

    # create function from method and use it
    create_homework_too = teacher.create_homework
    oop_homework = create_homework_too('create 2 simple classes', 5)
    oop_homework.deadline  # 5 days, 0:00:00

    student.do_homework(oop_homework)
Example #11
0
 def test_create_quiz(self, add_question):
     quiz = Teacher.create_quiz([self.question])
     self.assertIsInstance(quiz, Quiz)
     self.assertTrue(add_question.called)
Example #12
0
 def test_create_quiz_empty(self, add_question):
     self.assertIsInstance(Teacher.create_quiz([]), Quiz)
     self.assertFalse(add_question.called)
Example #13
0
 def setUp(self):
     self.teacher = Teacher(name='ramadan')
     self.question = Question('', '', '')