Exemplo n.º 1
0
def student_create():
        if not request.json or not 'name' in request.json:
            abort(400)

        student = Student(request.json['name'])
        db.session.add(student)
        db.session.commit()
        return jsonify(student.dict())
Exemplo n.º 2
0
 def new_user(self, first_name, last_name, email, password, is_verified,
              is_premium):
     user = Student(first_name=first_name,
                    last_name=last_name,
                    email=email,
                    password=password,
                    is_verified=is_verified,
                    is_premium=is_premium)
     user.save()
     return user
Exemplo n.º 3
0
def update_group(gr, name, stud_id):
    if name == gr.groupname and (
        (gr.starosta is None and stud_id == 0) or
        (gr.starosta is not None and stud_id == gr.starosta.id)):
        req = 'нечего изменять'
    else:
        if stud_id != 0:
            stud = Student.get_by_id(stud_id)
        else:
            stud = None

        str_star = ''
        if stud is not None:
            if stud.group != gr:
                str_star = (f' студент {str(stud)} не задан старостой \
                т.к. находится в другой группе')
                stud = None
                if name == '':
                    return (f'нечего изменять, {str_star}')
        else:
            str_star = f' староста по id {stud_id} не найден'
        oldname = str(gr)
        if name != '':
            gr.groupname = name
        if stud != None:
            gr.starosta = stud
        gr.save()
        req = ((f'Группа {oldname} успешно обновлена') +
               (f'{str_star}' if str_star != '' else ''))

    return req
Exemplo n.º 4
0
def get_member():
    with Student.auto_commit():
        member = Member("Mario", 3.0, '*****@*****.**', 'A', '123456')
        # 数据库的insert操作
        Student.session.add(member)

    return 'hello member'
Exemplo n.º 5
0
 def csv_import(cls, reader):
     for row in csv.DictReader(reader):
         teacher_id = row['teacher_id']
         student_id = row['student_id']
         start_time = make_local_dt(row['date'], row['start_time'])
         teacher = Teacher.key_for_sis_id(teacher_id)
         if teacher is None:
             logging.warn("no such teacher %s" % teacher_id)
             continue
         if student_id and Student.query(Student.sis_id == student_id).count == 0:
             logging.warn("no such student %s" % student_id)
             continue
         appointment = cls.query(cls.start_time == start_time, ancestor=teacher).get()
         if appointment is None:
             appointment = cls(
                 parent=teacher,
                 student_id=student_id,
                 start_time=start_time,
                 duration=int(row['duration']),
                 location=row['location'],
                 teacher_name=row['teacher_name'],
                 is_active=bool_from_string(row['active'])
             )
             appointment.put()
             logging.info("inserted appointment: %s" % row)
         else:
             appointment.student_id = student_id
             appointment.start_time = start_time
             appointment.duration = int(row['duration'])
             appointment.location = row['location']
             appointment.teacher_name = row['teacher_name']
             appointment.is_active = bool_from_string(row['active'])
             appointment.put()
             logging.info("updated appointment: %s" % row)
Exemplo n.º 6
0
def studentform():
    gr = Group.gr_select()
    arg_id = request.args.get('id')
    if arg_id is not None:
        stud = Student.get_by_id(arg_id)
        form = StudentForm(request.form or None, obj=stud)
        form.group.choices = gr
        form.group.data = stud.group.id
    else:
        form = StudentForm(request.form or None)
        form.group.choices = gr

    if request.method == 'POST' and form.validate():
        studinfo = get_stud_info(form)
        if arg_id is not None:
            req = update_stud(stud, studinfo)
        else:
            req = add_student(studinfo)
        flash(req)
        return redirect(url_for('students.get_students'))
    else:
        elsereq = render_template('studentform.html',
                                  form=form,
                                  title='Изменить студента')
        return elsereq
Exemplo n.º 7
0
def groupform():
    arg_id = request.args.get('id')
    if arg_id is not None:
        group = Group.get_by_id(arg_id)
        form = GroupForm(request.form or None, obj=group)
        stud = Student.stud_select(arg_id)
        form.star.choices = stud
        if group.starosta is not None:
            form.star.data = group.starosta.id
        else:
            form.star.data = 0
        title = 'Изменить группу'
    else:
        group = None
        form = GroupForm(request.form or None)
        #без этого не отрабатывала валидация. ругалость, что не выбран староста
        form.star.choices = [(0,'')]
        form.star.data = 0
        #
        title = 'Добавить группу'
    
    if request.method == 'POST' and form.validate():
        if arg_id is not None:
            req = update_group(group, form.groupname.data, form.star.data)
        else:
            req = add_group(form.groupname.data)
        flash(req)
        return redirect(url_for('groups.get_groups'))
    else:
        return render_template('groupform.html', group=group, 
                    form=form, title=title)
Exemplo n.º 8
0
 def csv_import(cls, reader):
     for row in csv.DictReader(reader):
         teacher_id = row['teacher_id']
         student_id = row['student_id']
         start_time = make_local_dt(row['date'], row['start_time'])
         teacher = Teacher.key_for_sis_id(teacher_id)
         if teacher is None:
             logging.warn("no such teacher %s" % teacher_id)
             continue
         if student_id and Student.query(
                 Student.sis_id == student_id).count == 0:
             logging.warn("no such student %s" % student_id)
             continue
         appointment = cls.query(cls.start_time == start_time,
                                 ancestor=teacher).get()
         if appointment is None:
             appointment = cls(parent=teacher,
                               student_id=student_id,
                               start_time=start_time,
                               duration=int(row['duration']),
                               location=row['location'],
                               teacher_name=row['teacher_name'],
                               is_active=bool_from_string(row['active']))
             appointment.put()
             logging.info("inserted appointment: %s" % row)
         else:
             appointment.student_id = student_id
             appointment.start_time = start_time
             appointment.duration = int(row['duration'])
             appointment.location = row['location']
             appointment.teacher_name = row['teacher_name']
             appointment.is_active = bool_from_string(row['active'])
             appointment.put()
             logging.info("updated appointment: %s" % row)
Exemplo n.º 9
0
def create_student(*, account: Account, firstname: str, lastname: str, dateofbirth: str, gender: str, **kwargs) -> Student:
    student_account_check(account)
    if student_exist(account.id, raise_exception=False):
        raise InvalidInputFormat(
            "Account {} already has a student.".format(account.id))
    profile_picture = None
    if gender.lower() == "male":
        profile_picture = 'profile/student_default_male.jpg'
    elif gender.lower() == "female":
        profile_picture = 'profile/student_default_female.jpg'
    else:
        profile_picture = 'profile/student_default_male.jpg'
        print("Gender {} ???".format(gender))
    s = Student(account=account, firstname=firstname, lastname=lastname,
                dateofbirth=dateofbirth, gender=gender, profile_picture=profile_picture, **kwargs)
    s.save()
    return s
Exemplo n.º 10
0
    def get(self, student_name):
        err = "Nonexistent Profile"
        session = main_db.session
        response = Student.get_first_or_abort_on_none(
            session, Student.student_name == student_name, message=err)
        response = response.as_dict()

        return response, 200
Exemplo n.º 11
0
    def get(self):
        session = main_db.session
        response = {"list": [], "code": ""}
        result = Student.get_all(session, None)
        for project in result:
            response["list"].append(project.as_dict())

        return response, 200
Exemplo n.º 12
0
def ImportIndivaidual():
    if session.get("id") is None:
        return redirect("/user/login")
    name = session.get("name")
    courseId = request.args.get("id")

    if request.method == "GET":

        return render_template("teacher_templates/importindividual.html",
                               courseId=courseId,
                               name=name)
    else:
        name = request.form.get("name")
        password = request.form.get("password")
        gpa = request.form.get("gpa")
        email = request.form.get("email")
        programme = request.form.get("programme")
        id = request.form.get("id")

        if email == "" or password == "" or gpa == "" or programme == "" or name == "" or id == "":
            return render_template("teacher_templates/importindividual.html",
                                   courseId=courseId,
                                   name=name,
                                   message="参数不完全")

        student = Student.query.filter_by(email=email).first()
        if student:
            return render_template("teacher_templates/importindividual.html",
                                   courseId=courseId,
                                   name=name,
                                   message="该学生已经存在")
        student = Student.query.filter_by(id=id).first()
        if student:
            return render_template("teacher_templates/importindividual.html",
                                   courseId=courseId,
                                   name=name,
                                   message="该学生已经存在")

        with db.auto_commit():
            student = Student(name, id, gpa, email, password, programme)

            # 数据库的insert操作
            db.session.add(student)

        student = Student.query.filter_by(email=email).first()
        if student is not None:
            with db.auto_commit():
                courseAndStudent = CourseAndStudent()
                courseAndStudent.CourseId = courseId
                courseAndStudent.studentId = student.id
                db.session.add(courseAndStudent)

        return render_template("teacher_templates/importindividual.html",
                               courseId=courseId,
                               name=name,
                               message="学生提交成功")
Exemplo n.º 13
0
def student_register():
    form = StudentRegisterForm()

    if form.validate_on_submit():
        student = Student(name=form.name.data,
                          email=form.email.data,
                          phone=form.phone.data,
                          grade_level=form.grade_level.data,
                          parent_code=form.parent_code.data)

        student.generate_password_hash(form.password.data)

        db.session.add(student)
        db.session.commit()

        flash('Successful! You Can Login', 'success')

    return render_template('views/auth/student_register.html',
                           title='Student Register',
                           form=form)
Exemplo n.º 14
0
def ImportClass():
    if session.get("id") is None:
        return redirect("/user/login")
    name = session.get("name")
    courseId = request.args.get("courseId")

    if request.method == "GET":

        return render_template("teacher_templates/importclassinfo.html",
                               name=name,
                               courseId=courseId)
    else:
        file = request.files.get("files")
        f = file.read()  # 文件内容
        data = xlrd.open_workbook(file_contents=f)
        table = data.sheets()[0]
        names = data.sheet_names()  # 返回book中所有工作表的名字
        status = data.sheet_loaded(names[0])  # 检查sheet1是否导入完毕
        nrows = table.nrows  # 获取该sheet中的有效行数

        for i in range(0, nrows):
            s = table.row_values(i)  # 第1列数据
            student = Student.query.filter_by(email=s[5]).first()
            if student:
                continue
            student = Student.query.filter_by(id=s[3]).first()
            if student:
                continue
            with db.auto_commit():
                # name password programme id gpa email contribution
                try:
                    student = Student(s[0], s[4], s[3], s[5], s[2], s[1])
                    # 数据库的insert操作
                    db.session.add(student)
                except:
                    continue

            student = Student.query.filter_by(email=s[5]).first()
            if student is not None:
                with db.auto_commit():
                    courseAndStudent = CourseAndStudent()
                    courseAndStudent.CourseId = courseId
                    courseAndStudent.studentId = student.id

                    db.session.add(courseAndStudent)

        return render_template("teacher_templates/importclassinfo.html",
                               message="添加成功",
                               courseId=courseId,
                               name=name)
Exemplo n.º 15
0
def delete_group(arg_id):
    gr = Group.get_by_id(arg_id)
    oldname = gr.groupname
    stud_in_gr = Student.stud_select(arg_id)
    if len(stud_in_gr) == 1 and stud_in_gr[0][0] == 0:
        result = Group.delete_by_id(arg_id)
        if result != 0:
            req = f'группа {oldname} успешно удалена'
    else:
        req = 'Невозможно удалить группу т.к. в ней есть студенты: '
        st = ''
        for s in stud_in_gr:
            if s[0] != 0:
                st = f'{st} {s[1]}; '
        req = f'{req} {st} '
    return req
Exemplo n.º 16
0
    def post(self):
        response = {}
        session = main_db.session
        student_name = request.form["student_name"]
        admission_grade = request.form["student_grade"]
        project_name = request.form["student_name"]
        project_image = request.form["student_image"].encode()
        content = request.form["content"]

        new_student = Student(student_name, admission_grade, project_name,
                              project_image, content)
        session.add(new_student)
        session.commit()
        session.refresh(new_student)
        response["msg"] = "Success"

        return response, 200
Exemplo n.º 17
0
 def csv_import(cls, reader):
     for row in csv.DictReader(reader):
         school = School.key_for_sis_id(row['school_id'])
         student_id = row['student_id']
         if Student.query(Student.sis_id == student_id).count() == 0:
             logging.warn("no such student %s" % student_id)
             continue
         teacher_id = row['teacher_id']
         if Teacher.query(Teacher.sis_id == teacher_id).count() == 0:
             logging.warn("no such teacher %s" % teacher_id)
             continue
         enrollment = cls(
             parent=school,
             student_id=student_id,
             teacher_id=teacher_id,
             course_id=row['course_id'],
             section_id=row['section_id'],
             period=row['period'],
             is_homeroom=bool_from_string(row['homeroom']),
             is_active=True
         )
         enrollment.put()
         logging.info("inserted enrollment: %s" % row)
Exemplo n.º 18
0
    def upsert_student_level_attentiveness(student_id, observed_at, session,
                                           param):
        student = Student.objects(school_id=student_id).first()
        if student:
            # print(student_id, observed_at, session, param)
            ssp = SessionPulseStudent.objects(
                Q(student=student) & Q(session=session)
                & Q(datetime_sequence=observed_at))

            if not ssp:
                ssp_obj = SessionPulseStudent()
                ssp_obj.session = session
                ssp_obj.datetime_sequence = observed_at
                ssp_obj.student = student
                ssp_obj.attentiveness = param
                ssp_obj.save()
            else:
                ssp_obj = ssp.first()
                ssp_obj.attentiveness = param
                ssp_obj.save()
            # print("attentiveness", ssp_obj.session, ssp_obj.datetime_sequence, ssp_obj.student, ssp_obj.attentiveness)
        else:
            print("Unrecognised student", student_id)
Exemplo n.º 19
0
def populate(populate):
    """
	Populate the database
	"""
    skills = ["Javascript", "HTML", "CSS", "SASS", "PHP", "Python"]

    for name in skills:
        skill = Skill(name=name)
        db.session.add(skill)

    student_1 = Student(name="Lucia",
                        last_name="Cardenas",
                        age=18,
                        email="*****@*****.**")

    student_2 = Student(name="Maria Gracia",
                        last_name="Silva",
                        age=22,
                        email="*****@*****.**")
    db.session.add_all([student_1, student_2])
    company = Company(name="Athelas",
                      address="Recavarren esquina con pardo",
                      phone="+51961738608",
                      website="https://www.athelas.pe")
    db.session.add(company)
    company2 = Company(name=u"Lucuma Labs",
                       address="Cerca al faro de miraflores",
                       phone="+511 681 0041",
                       website="https://lucumalabs.com/")
    db.session.add(company2)
    company3 = Company(name=u"Codepicnic",
                       address="Por todo el mundo",
                       phone="+48652689522",
                       website="https://codepicnic.com/")
    db.session.add(company3)

    db.session.commit()

    skills = db.session.query(Skill).all()
    company.skills.append(skills[0])
    company.skills.append(skills[1])
    company.skills.append(skills[2])
    company.skills.append(skills[3])

    company2.skills.append(skills[4])
    company2.skills.append(skills[5])
    company2.skills.append(skills[1])

    company3.skills.append(skills[3])
    company3.skills.append(skills[5])
    company3.skills.append(skills[1])

    student_1.skills.append(skills[0])
    student_1.skills.append(skills[1])
    student_1.skills.append(skills[2])

    student_2.skills.append(skills[0])
    student_2.skills.append(skills[1])
    student_2.skills.append(skills[2])
    student_2.skills.append(skills[3])

    db.session.commit()
def find_workout_by_user_id(user_id):
    student = Student.objects(user_id=user_id).first()
    return student.workouts_ids[0].to_json()
Exemplo n.º 21
0
 def add_workout_post():
     data = request.json
     s = Student.objects(user_id=ObjectId(data["user_id"])).first()
     s.add_workout(json_to_workout_obj(data))
     return "ok"
Exemplo n.º 22
0
 def add_workout_id_post():
     data = request.json
     s = Student.objects(user_id=ObjectId(data["user_id"])).first()
     s.add_workout(find_workout_by_id(data["id"]))
     return "ok"
Exemplo n.º 23
0
from app.models.teacher import Teacher
from app.models.student import Student
from app.models.course import Course
from app.models.exam import Exam

db.drop_all()
db.create_all()

teacher = Teacher()
teacher.name = 'Ömer Çulha'
teacher.email = '*****@*****.**'
teacher.phone = '0000 000 00 00'
teacher.generate_password_hash('123456')
db.session.add(teacher)

student = Student()
student.name = 'Yunus Emre'
student.email = '*****@*****.**'
student.phone = '0000 000 00 00'
student.grade_level = 1
student.parent_code = "11111111111"
student.generate_password_hash('123456')
db.session.add(student)

course = Course()
course.name = 'Fen Bilgisi'
course.grade_level = 1
course.teacher = teacher
course.price = "25"
db.session.add(course)