Ejemplo n.º 1
0
 def setUp(self):
     sys.path.insert(0, "../../src")
     from models import Student
     self.genghis = Student(1, "Genghis", "Khan", "*****@*****.**",
                            "Shinai")
     self.dropping = Student(2, "Dropping", "Soon", "*****@*****.**",
                             "Goodby3")
Ejemplo n.º 2
0
    def setUp(self):
        print('\r')
        # drop all tables in the database
        db.session.remove()
        db.drop_all()
        # crete all tables in the database
        db.create_all()

        # adding users
        user_1 = User('*****@*****.**', encrypt('password'), 'student_1')
        student_1 = Student(user_1, 'U00000000A')
        db.session.add(student_1)

        user_2 = User('*****@*****.**', encrypt('password'), 'student_2')
        student_2 = Student(user_2, 'U00000000B')
        db.session.add(student_2)

        user_3 = User('*****@*****.**', encrypt('password'), 'teacher_1')
        staff_1 = Staff(user_3)
        db.session.add(staff_1)

        # adding topics
        topic = Topic(name='seng')
        db.session.add(topic)

        # adding lessons
        lesson = Lesson(1, 1, 'lesson_1', 'content')
        db.session.add(lesson)

        # adding quizzes
        quiz = Quiz(3, 'quiz_1', True, '2020-03-30', '2020-03-31')
        db.session.add(quiz)

        db.session.commit()
Ejemplo n.º 3
0
def test_student():
    from models import Student
    Student(first_name='John',
            last_name='Doe',
            email='*****@*****.**',
            password='******',
            gender='M').save()
    Student(first_name='James',
            last_name='Bond',
            email='*****@*****.**',
            password='******',
            gender='M',
            aka='007').save()
    Student(first_name='Jane',
            last_name='Doe',
            email='*****@*****.**',
            password='******',
            gender='F',
            req_for_courses=[]).save()

    # TODO add a nonempty `req_for_courses` test case
    pass

    assert Student.objects(req_for_courses__size=0).count() == 3

    # missing gender
    with pytest.raises(ValidationError):
        Student(first_name='John2',
                last_name='Doe2',
                email='*****@*****.**',
                password='******').save()

    clean_up()
Ejemplo n.º 4
0
 def create_data1(self):
     obj = Course(title='英语')
     obj.student_list = [
         Student(name='小杰'),
         Student(name='小工'),
     ]
     session.add(obj)
     session.commit()
Ejemplo n.º 5
0
    def setUp(self):
        # set up the test DB
        self.db = tested_db
        self.db.create_all()
        self.db.session.add(Student(id=1, username="******"))
        self.db.session.add(Student(id=2, username="******"))
        self.db.session.commit()

        self.app = tested_app.test_client()
Ejemplo n.º 6
0
def temrunadd():
    s1 = Student(sno='17240130',
                 sid='44058319990123042X',
                 sname='王钰婷',
                 ssex='女',
                 sbirth='1999-01-23',
                 sdept='人工智能学院',
                 sspecial='计算机信息管理',
                 sclass='4班',
                 saddr='广东省汕头市澄海区')
    s2 = Student(sno='17240224',
                 sid='440111199803073156',
                 sname='曾禹祥',
                 ssex='男',
                 sbirth='1998-03-07',
                 sdept='人工智能学院',
                 sspecial='计算机信息管理',
                 sclass='2班',
                 saddr='广东省广州市白云区')
    s3 = Student(sno='17140143',
                 sid='440304199810266877',
                 sname='陈逸轩',
                 ssex='男',
                 sbirth='1998-10-26',
                 sdept='电子与通信工程学院',
                 sspecial='电子信息工程技术',
                 sclass='1班',
                 saddr='广东省深圳市福田区')
    s4 = Student(sno='17340111',
                 sid='444522419981111607',
                 sname='李晓璇',
                 ssex='女',
                 sbirth='1998-11-11',
                 sdept='建筑与环境工程学院',
                 sspecial='房地产经营与管理',
                 sclass='3班',
                 saddr='广东省揭阳市惠来县')
    s5 = Student(sno='17440134',
                 sid='440306199902024130',
                 sname='许奕涵',
                 ssex='男',
                 sbirth='1999-02-02',
                 sdept='机电工程学院',
                 sspecial='建筑智能化工程技术',
                 sclass='2班',
                 saddr='广东省深圳市宝安区')
    db.session.add_all([s1, s2, s3, s4, s5])
    db.session.commit()

    c1 = Card(sid=s1.sid, cardstate='可用', cardmoney=340.00, sno=s1.sno)
    c2 = Card(sid=s2.sid, cardstate='可用', cardmoney=200.00, sno=s2.sno)
    c3 = Card(sid=s3.sid, cardstate='可用', cardmoney=0.00, sno=s3.sno)
    c4 = Card(sid=s4.sid, cardstate='可用', cardmoney=20.00, sno=s4.sno)
    c5 = Card(sid=s5.sid, cardstate='可用', cardmoney=18.00, sno=s5.sno)
    db.session.add_all([c1, c2, c3, c4, c5])
    db.session.commit()
    print("添加成功")
Ejemplo n.º 7
0
def addUsers():
    """Currently adds whole user data scraped from swd site along with scores of the course.
       However, the intended purpose is to add a single user when the user signs up along with his scores and other data to the database
    :returns does not return anything"""

    from bs4 import BeautifulSoup
    data = open("html_doc.html", 'r').read()

    soup = BeautifulSoup(data, "lxml")
    gender = 'Male'

    errors = 0
    # Populate the DB with Data scraped from SWD site
    for i in soup.find_all('tr'):
        t = [j.string for j in i.find_all('td')]
        if len(t) > 2:
            id = t[0].lstrip('\n').strip(" ")
            name = t[1].strip(" ").strip(" .").strip("\n")
            try:
                db_session.add(Student(id=id, name=name, gender=gender))
                db_session.commit()
                id = id_format(id)
                print "------------------Added------------------- "
                print "ID :", id
                print "Name :", name
                print "Scores:", generateMarkList(id)
                print "------------------------------------------ "
            except IntegrityError:
                print "Unique Constraint failed!"
                errors += 1
                print "Errors found: ", errors
                db_session.rollback()
            except InvalidRequestError:
                print "Invalid Request at", id, name
                errors += 1
                print "Errors found: ", errors
    marks_data.reset_index()

    # Update the DB with scores from the uploaded csv file
    # If user is not present then then add the user
    for i in range(len(marks_data)):
        name = marks_data.loc[i]['Name']
        id = marks_data.loc[i]['ID Number']
        student_id = id_format(id)
        try:
            print "User present"
            resultCheck = db_session.query(Student).filter_by(id=student_id).first()
            resultCheck.scores = generateMarkList(i)
            db_session.commit()
        except:
            print "User not present"
            print student_id
            student = Student(id=student_id, name=name, gender=gender, scores=generateMarkList(i))
            db_session.add(student)
            db_session.commit()
            print "Added ", id, " ", name
Ejemplo n.º 8
0
    async def process(self, payload, data):
        self.sdk.log(
            "State Menu processor fired with payload {}".format(payload))

        text = payload["text"]

        if text in self.response_phrases["EGE_calc"]:
            student = Student(self.sdk, payload, chat=payload['chat'])

            scores = student.scores

            # Show programs for user by scores
            return await self.controller.goto(payload, "calc", scores)

        elif text in self.response_phrases["ratings"]:
            return await self.controller.goto(payload, "ratings")

        # elif text in self.response_phrases["notifications"]:
        #     return await self.controller.goto(payload, "settings")

        elif text in self.response_phrases["logout"]:
            # Remove student data from database
            Student(self.sdk, payload, chat=payload["chat"]).remove()

            # Remove checking for User's positions in ratings
            self.sdk.log("Scheduler for chat {} was removed".format(
                payload['chat']))
            self.sdk.scheduler.remove(payload)

            # Send message
            message = "Если понадоблюсь, выполни команду /itmo_start."

            await self.sdk.send_text_to_chat(payload["chat"],
                                             message,
                                             remove_keyboard=True,
                                             bot=payload.get('bot', None))

            # Go to start state
            return await self.controller.goto(payload, "start")

        # Response to undefined user reply
        message = "Не понимаю"

        await self.sdk.send_text_to_chat(payload["chat"],
                                         message,
                                         remove_keyboard=True,
                                         bot=payload.get('bot', None))

        return await self.controller.goto(payload, "menu")
Ejemplo n.º 9
0
def index():
    from models import Student

    post_form_class = model_form(Student,
                                 base_class=FlaskForm,
                                 db_session=db.session)

    if request.method == 'POST':
        form = post_form_class(request.form)
        if form.validate():
            try:
                post = Student(**form.data)
                db.session.add(post)
                db.session.commit()
                flash('Student created!')

            except IntegrityError:
                db.session.rollback()
                flash("User {} is already exists".format(post.studentID))

        else:
            flash('Form is not valid! Student was not created.')

    else:
        form = post_form_class()

    posts = Student.query.all()
    q = Student.query.filter(
        or_(and_(Student.sex == 'male', Student.age > 21),
            (and_(Student.sex == 'female', Student.faculty
                  == 'Philology')))).order_by(Student.age)

    return render_template('index.html', form=form, posts=posts, q=q)
Ejemplo n.º 10
0
def render_booking_done():
    form = userForm()
    name = form.name.data
    phone = form.phone.data
    day = form.day.data
    time = form.time.data
    teacher_id = form.teacher_id.data
    teacher_name = form.teacher_name.data
    timetable_id = form.timetable_id.data

    print(50 * '*')
    print(form.timetable_id.data)

    student = Student.query.filter(Student.phone == phone).first()

    if not student:
        student = Student(name=name, phone=phone)
        db.session.add(student)
        db.session.commit()

    booking = Booking(student_id=student.id,
                      teacher_id=teacher_id,
                      timetable_id=timetable_id)

    db.session.add(booking)
    db.session.commit()

    return render_template('booking_done.html',
                           name=name,
                           phone=phone,
                           time=time,
                           day=day)
Ejemplo n.º 11
0
def create_student():
    classes_list = Classes.get_obj_list()
    for k, obj in enumerate(classes_list):
        print(
            k, '\033[33;1m班级名:[%s] 学校:[%s] 地址:[%s] 课程:[%s] 讲师:[%s]\033[0m ' %
            (obj.name, obj.school_id.get_obj_uuid().name,
             obj.school_id.get_obj_uuid().addr,
             obj.course_teacher_id.get_obj_uuid().
             course_id.get_obj_uuid().name, obj.course_teacher_id.get_obj_uuid(
             ).teacher_id.get_obj_uuid().name))
    choose = input('选择班级 >> ').strip()
    if choose.isdigit():
        choose = int(choose)
        if choose < len(Classes.get_obj_list()):
            choose_classes = classes_list[choose]
            name = input('输入学生名字 >> ').strip()
            pas = input('输入学生密码 >> ').strip()
            age = input('输入学生年龄 >> ').strip()
            student_list = [obj.name for obj in Student.get_obj_list()]
            if name in student_list:
                print('\033[31;学生 [%s] 已存在,不可重复创建0m\033[0m' % name)
            else:
                student = Student(name, pas, age,
                                  choose_classes.nid)  # 需要存一个nid
                student.save()
                print('\033[32;1m学生 [%s] 创建成功\033[0m' % name)
        else:
            print('\033[31;1m 没有此班级,请重新选择\033[0m')
Ejemplo n.º 12
0
def users():
    if request.method == 'POST':
        data = request.get_json()
        userid = data.get('userid')
        username = data.get('username')
        number = data.get('number')
        re_number = data.get('re-number')

        if not (userid and username and number and re_number):
            return jsonify({'error': 'No arguments'}), 400

        if number != re_number:
            return jsonify({'error': 'Wrong password'}), 400

        student = Student()
        student.userid = userid
        student.username = username
        student.number = number

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

        return jsonify(), 201

    users = Student.query.all()
    app = Flask(__name__)
    app.config['JSON_AS_ASCII'] = False
    return jsonify([user.serialize for user in users])
Ejemplo n.º 13
0
    def setUp(self):
        self.school = School(name='Minnesota')
        db.session.add(self.school)
        db.session.commit()

        self.tch = Teacher(first_name='Jess',
                           last_name='Christensen',
                           title='K4-2nd Sped',
                           school_id=self.school.id,
                           username='******',
                           password='******')
        db.session.add(self.tch)
        db.session.commit()

        self.stu = Student(first_name='Fake',
                           last_name='Kid',
                           dob=date(2012, 1, 24),
                           grade=1,
                           teacher_id=self.tch.id,
                           dis_area='OHI')
        db.session.add(self.stu)
        db.session.commit()

        self.iep = IEP(student_id=self.stu.id, teacher_id=self.tch.id)

        db.session.add(self.iep)
        db.session.commit()
Ejemplo n.º 14
0
def signup():
    if request.method == 'POST':
        if request.form['UserType'] == 'Landlord':
            FirstName = request.form['FirstName']
            LastName = request.form['LastName']
            PhoneNum = request.form['PhoneNum']
            Email = request.form['NewEmail']
            Password = request.form['Password']
            user = Landlord(FirstName, LastName, Email, Password, PhoneNum,
                            True, datetime.now(), datetime.now())
            db.session.add(user)
        elif request.form['UserType'] == 'Student':
            FirstName = request.form['FirstName']
            LastName = request.form['LastName']
            PhoneNum = request.form['PhoneNum']
            Email = request.form['NewEmail']
            Password = request.form['Password']
            user = Student(FirstName, LastName, Email, Password, PhoneNum,
                           True, datetime.now(), datetime.now())
            db.session.add(user)
        #Handling SQLalchemy errors when a user added has the same email address (already exists)
        # http://docs.sqlalchemy.org/en/latest/core/exceptions.html
        try:
            db.session.commit()
        except exc.IntegrityError:
            db.session.rollback()
            return jsonify([{
                'status': 400,
                'message': 'A user with this email already exists.'
            }])
        return jsonify([{'status': 201}])
    else:
        return render_template('signup.html')
Ejemplo n.º 15
0
 def post(self):
     """
     新增数据
     """
     parser = reqparse.RequestParser()
     parser.add_argument('sid', type=int)
     parser.add_argument('sname', type=str)
     parser.add_argument('sex', type=str)
     parser.add_argument('birthplace', type=str)
     parser.add_argument('birthdate', type=str)
     parser.add_argument('department', type=str)
     parser.add_argument('sclass', type=str)
     args = parser.parse_args()
     #判断输入完整性
     for key,value in args.iteritems():
         if value is None:
             return {'error': "Please input field: %s" % key }, 400
     stu = Student(**args)
     try:
         insert_row = stu.insert()
         #判断是否插入成功
         if insert_row == 1:
             return stu, 201
     except  IntegrityError ,e:
         #insert duplicate primary_key entry
         if e[0] == 1062:
             return {'primary error': e[1]}, 400
Ejemplo n.º 16
0
def test_student_has_name_attribute():
    """
    Student must have a name atribute

    """
    with pytest.raises(TypeError):
        Student()
Ejemplo n.º 17
0
 def __init__(self, student_base_info: dict):
     self.student_list = [
         Student(
             base_info[0],
             base_info[1],
         ) for base_info in student_base_info
     ]
Ejemplo n.º 18
0
def studentRegistration():

    if(session['logged_in'] == True): #if user login
        if(request.method == 'GET'):
            return render_template('studentRegistration.html')

        elif(request.method == 'POST'):
            try:
                userId  = request.json['user_id']
                name    = request.json['name']
                grade   = request.json['grade']
                student = Student(userId, name, grade)

                newUser = Login(userId, userId,"student") #Create new user
                DataPipelineObj.insert_data(newUser) #Add details to the database (Into login table)

                DataPipelineObj.insert_data(student)#Add details to the database(Into Student table

                return jsonify({'status':"Student successfully registered"})

            except:
                return jsonify({'status':"Fill the required details"})
        else:
            abort(405)
    else: #if user not login
        return render_template('showSignIn.html')
Ejemplo n.º 19
0
    def setUp(self):
        print('\r')
        # drop all tables in the database
        db.session.remove()
        db.drop_all()
        # crete all tables in the database
        db.create_all()

        # adding courses
        course = Course(index='cz3003')
        db.session.add(course)

        # adding users
        user = User(
            email='*****@*****.**',
            encrypted_password=encrypt('password'),
            name='std'
        )
        std = Student(user,"U1722")
        db.session.add(std)

        # adding RsStudentCourseEnrol
        rs = initializeRsStudentCourseEnrol(1,'cz3003')
        db.session.add(rs)
        
        db.session.commit()
Ejemplo n.º 20
0
def dict_to_student(d):
    """
    Convert dictionary to Student object
    :param d: dictionary
    :return: Student object
    """
    st_obj = Student()
    st_obj.username = d[
        'username'] if 'username' in d else ''  # each student has a unique username
    st_obj.first_name = d['first_name'] if 'first_name' in d else ''
    st_obj.last_name = d['last_name'] if 'last_name' in d else ''
    st_obj.email = d['email']
    st_obj.password = d['password']
    st_obj.linkedin_token = d['linkedin_token'] if 'linkedin_token' in d else ''
    st_obj.github_token = d['github_token'] if 'github_token' in d else ''
    st_obj.skills = d['skills'] if 'skills' in d else []  # list of strings
    st_obj.need_visa = d[
        'need_visa'] if 'need_visa' in d else 'no'  # boolean STRING
    st_obj.location = d['location'] if 'location' in d else 'New York'  # string
    st_obj.looking_for = d['looking_for'] if 'looking_for' in d else [
        'Internship', 'Full-Time', 'Co-op'
    ]  # list
    st_obj.job_matches = d['job_matches'] if 'job_matches' in d else []  # list
    st_obj.favorited_jobs = d['favorited_jobs'] if 'favorited_jobs' in d else [
    ]  # list
    st_obj.declined_jobs = d['declined_jobs'] if 'declined_jobs' in d else [
    ]  # list

    return st_obj
Ejemplo n.º 21
0
    def setUp(self):
        print('\r')
        # drop all tables in the database
        db.session.remove()
        db.drop_all()
        # crete all tables in the database
        db.create_all()

        # adding users
        user = User(
            email='*****@*****.**',
            encrypted_password=encrypt('password'),
            name='john_doe'
        )
        student = Student(user, 'U1722')
        db.session.add(student)

        # adding topics
        topic = Topic(name='seng')
        db.session.add(topic)

        # adding lessons
        lesson = Lesson(topic_id=1, id=1, name='se', content='test')
        db.session.add(lesson)

        # adding questions
        qn_1 = Question(1, 1,'easy')
        db.session.add(qn_1)

        qn_2 = Question(1, 1,'medium')
        db.session.add(qn_2)
        
        db.session.commit()
Ejemplo n.º 22
0
def get(student_ID):
    query = "SELECT * FROM dbo.[STUDENTS] WHERE ID = ?"
    cursor.execute(query, student_ID)
    raw = cursor.fetchall()
    student = Student.Student(raw[0])
    students = [student]
    return json.dumps([student.__dict__ for student in students])
Ejemplo n.º 23
0
def create_list(filename):
    cols_dict = dict(numara="A", ad="C")
    cols_lesson_dict = dict()
    wb = load_workbook(filename=filename)
    ws = wb[wb.sheetnames[0]]

    for harf in string.ascii_uppercase[5:]:
        if bool(ws[f"{harf}1"].value) == 0:
            break
        cols_lesson_dict[ws[f"{harf}1"].value.lower()] = harf

    students = list()

    for row in range(3, ws.max_row + 1):
        data = dict()
        data["satir"] = row

        for col_name, col_id in cols_lesson_dict.items():
            data[col_name] = ws[f"{col_id}{row}"].value

        for col_name, col_id in cols_dict.items():
            data[col_name] = ws[f"{col_id}{row}"].value

        students.append(Student(data, cols_lesson_dict))

    students = sorted(students, key=lambda i: i.numara)

    olustur_set = set()
    for student in students:
        for lesson_name, lesson_class in student:
            if lesson_class:
                olustur_set.add(lesson_name + lesson_class)

    return dict(lists=sorted(list(olustur_set)), students=students)
Ejemplo n.º 24
0
def load_objects():
    with open('processed_data/student_objects.json', 'r', encoding='utf-8') as student_objects_file:
        data = json.load(student_objects_file)
        [Student(datum) for datum in data]
    with open('processed_data/course_objects.json', 'r', encoding='utf-8') as course_objects_file:
        data = json.load(course_objects_file)
        [Course(datum) for datum in data]
Ejemplo n.º 25
0
def student():
    if request.method == 'POST':
        student_name = request.form.get('student_name')
        student_id = request.form.get('student_id')
        student_section = request.form.get('student_section')
        student_photo = request.files['file']
        try:
            filepath = os.path.join(app.config['students'],
                                    secure_filename(student_photo.filename))
            student_photo.save(filepath)
            picture_of_student = face_recognition.load_image_file(filepath)
            face_encoding = face_recognition.face_encodings(
                picture_of_student)[0]
            face_encoding = face_encoding.tolist()
            face_encoding = str(face_encoding)

            new_student = Student(
                student_name=student_name,
                student_photo=student_photo.filename,
                student_id=student_id,
                student_section=student_section,
                encodings=face_encoding)  #based on init function
            db.session.add(new_student)
            db.session.commit()

            return jsonify('{} was created'.format(new_student))
        except Exception as e:
            return (str(e))
    if request.method == 'GET':
        return render_template('student_reg.html')
Ejemplo n.º 26
0
def upload_courses(prid, filename):
    book = xlrd.open_workbook(filename)
    coursesNum = book.nsheets
    coursesNames = book.sheet_names()

    for i in range(coursesNum):
        thisSheet = book.sheet_by_index(i)
        #print thisSheet.col_values(0)
        cs = thisSheet.col_values(0)
        course_name = coursesNames[i]
        course = Course(name=course_name)
        course.save()
        pr = Project.objects.get(id=prid)
        print pr.name
        course.project = pr
        course.save()

        for st in cs:

            st = Student(stdnom=str(int(st)))
            st.save()

            course.students.add(st)
            course.save()
    return projects(request)
Ejemplo n.º 27
0
 def save(self, role=1):
     user = Account(**self.data)
     user.role = role
     user.save()
     stuusr = Student(stuid=user.username, grade="20" + user.username[0:2])
     stuusr.save()
     return user
Ejemplo n.º 28
0
def create_student(ano_para):
    if request.json["type"] == "3.2as":  #待修改
        student = Student()
        snounique = 1
        snolist = db.session.execute('SELECT sno FROM StudentInfo;').fetchall()
        for sno in snolist:
            if request.json['sno'] == sno[0]:
                snounique = 0
        if snounique == 1:
            student.sno = request.json['sno']
            student.sname = request.json['sname']
            student.sex = request.json['sex']
            student.age = request.json['age']
            student.classno = request.json['classno']
            db.session.add(student)
            db.session.commit()
            return jsonify({  #待修改
                'type': '3.2ar',
                'success': 'true'
            })
        else:
            return jsonify({  #待修改
                'type': '3.2ar',
                'success': 'false'
            })
Ejemplo n.º 29
0
def register():
    form = RegistrationForm()
    if form.validate_on_submit():
        student = Student(
            index=form.index.data,
            name=form.name.data,
            surname=form.surname.data,
            faculty=form.faculty.data,
            major=form.major.data,
            year=form.year.data,
            group=form.group.data,
        )
        user = User(username=form.username.data,
                    email=form.email.data,
                    password=form.password.data,
                    confirmed=False,
                    admin=False)
        db.session.add(user)
        db.session.add(student)
        db.session.commit()

        token = generate_confirmation_token(user.email)
        confirm_url = url_for('confirm_email', token=token, _external=True)
        html = render_template('user/activate.html', confirm_url=confirm_url)
        subject = "Please confirm your email"
        send_email(user.email, subject, html)

        login_user(user)

        flash('A confirmation email has been sent via email.', 'success')
        return redirect('/unconfirmed')

    return render_template('user/register.html', form=form)
Ejemplo n.º 30
0
def submit():
    rf = request.form

    if not rf.get("stid").isdigit:
        flash("The student ID is incorrect")
        return redirect("/")

    haspaid = None
    if rf.get("paid") == "Yes":
        haspaid=True
    if rf.get("paid") == "No":
        haspaid=False
    if haspaid is None:
        flash("Please choose yes or no!")
        return redirect("/")

    formvs = (int(rf.get("stid")), rf.get("fname"), rf.get("lname"), rf.get("cname"), rf.get("teacher"), haspaid)
    if not formsvalidated(*formvs):
        return redirect("/")
    if Student.query.get(formvs[0]):
        flash("Somebody already registered with that ID")
        return redirect("/")
    add_student = Student(*formvs)
    db.session.add(add_student)
    db.session.commit()
    return render_template("success.html", info=formvs)