Пример #1
0
def SchoolFactory(data):
    # if the school is not secondary, skip it
    if 'mainlevel_code' in data and data[
            'mainlevel_code'] != 'SECONDARY' and data[
                'mainlevel_code'] != 'MIXED LEVEL':
        return OtherSchool(**data)
    else:
        return School(**data)
Пример #2
0
	def testSchool(self):
		db.create_all()
		school = School(name="Duquesne University",
			location="Pittsburgh, Pennsylvania", gpa=3.24, act=24,
			sat=1350, grad_rate=78, avg_salary=50000, grad_time=4,
			school_size=10000)
		db.session.add(school)
		db.session.commit()
Пример #3
0
def initialize_table():
	if School.query.first() is None:
		with open(os.path.join(os.path.abspath(os.path.dirname(__file__)), "app\static\schools.json"), "r") as read_file:
			school_data = json.load(read_file)
			for s in school_data:
				if type(s['scale']) is not list: 
					school = School(name=s['name'], scale=s['scale'])
					db.session.add(school)
					db.session.commit()
				else:
					scale = s['scale'][0] * 10 + s['scale'][1]
					school = School(name=s['name'], scale=scale)
					db.session.add(school)
					db.session.commit()
	
	Grade.query.delete()
	db.session.commit()
Пример #4
0
 def test_department_in_school(self):
     s = School(name='tsxy')
     db.session.add(s)
     db.session.commit()
     d = Department(name='cs')
     d.school = s
     db.session.add(d)
     db.session.commit()
     self.assertTrue(d in s.departments)
Пример #5
0
 def test_teacher_is_school_admin(self):
     t = Teacher(telephone='13700000001')
     s = School(name='aschool', admin='13700000001')
     db.session.add_all([t, s])
     db.session.commit()
     self.assertFalse(t.is_teacher_admin(s.id))
     t.schools.append(s)
     db.session.commit()
     self.assertTrue(t.is_teacher_admin(s.id))
Пример #6
0
 def test_teacher_is_employ_and_dissmiss(self):
     t = Teacher(telephone='13700000000')
     s = School(name='aschool')
     t.schools.append(s)
     db.session.add_all([t, s])
     db.session.commit()
     self.assertTrue(t.is_employ(s.id))
     t.dismiss_school(s.id)
     self.assertFalse(t.is_employ(s.id))
Пример #7
0
    def test_school_should_not_be_visible_if_logged_out(self):
        school = School()
        school.name = 'hogwarts'
        db.session.add(school)
        db.session.commit()

        response = self.client.get(url_for('main.school', id=school.id), follow_redirects=True)

        self.assertTrue(re.search(b'Login', response.data))
Пример #8
0
 def test_student_join_school(self):
     sc = School(name='aschool')
     st = Student(nickname='astudent')
     db.session.add_all([sc, st])
     db.session.commit()
     co = Course(course_name='acourse', school_id=sc.id)
     db.session.add(co)
     db.session.commit()
     st.join_school(sc.id)
     self.assertTrue(st.is_school_joined(sc.id))
Пример #9
0
 def test_teacher_bind_school(self):
     t = Teacher(telephone='13700000000')
     s = School(name='aschool')
     db.session.add_all([t, s])
     db.session.commit()
     Tcode.generate_code(10, s.id)
     tcode = Tcode.query.all()[0].code
     t.bind_school(tcode)
     self.assertTrue(t.schools[0].id == s.id)
     self.assertTrue(Tcode.query.filter_by(code=tcode).first() is None)
Пример #10
0
 def test_add_teacher(self):
     s = School(name="Test")
     u = User(username="******")
     with self.assertRaises(ValidationError):
         s.add_teacher(u)
     u.role = Role.get('Teacher')
     s.add_teacher(u)
     db.session.add(s)
     db.session.commit()
     self.assertEquals([u], s.teachers.all())
Пример #11
0
def add_school():
    form = SchoolForm()
    if form.validate_on_submit():
        db.session.add(School(name=form.name.data))
        flash('школа {} создана'.format(form.name.data))
        return redirect(url_for('.schools_list'))
    return render_template('structure/form_add_edit.html',
                           form=form,
                           class_name='школы',
                           creating=True)
Пример #12
0
def make_schools():
    schools = [
        "University of California, Los Angeles",
        "University of Maryland, College Park", "University of Pennsylvania"
    ]

    for school in schools:
        s = School(name=school)
        db.session.add(s)
        db.session.commit()
Пример #13
0
 def test_generate_tcode(self):
     s = School(name='aschool')
     db.session.add(s)
     db.session.commit()
     Tcode.generate_code(10, s.id)
     self.assertTrue(s.tcodes.count() == 10)
     try:
         Tcode.generate_code(10, s.id)
     except Exception as e:
         print("是的,拒绝生成新邀请码")
     self.assertTrue(s.tcodes.count() == 10)
Пример #14
0
    def test_stats(self, client, db):
        ni_schools = [School(id=f"NI-{i}") for i in range(10)]
        be_schools = [School(id="BE-1")]
        for school in ni_schools + be_schools:
            db.add(school)
        db.commit()

        response = client.get("/stats")

        assert response.status_code == 200
        assert response.json() == [
            {
                "state": "BE",
                "count": 1
            },
            {
                "state": "NI",
                "count": 10
            },
        ]
Пример #15
0
def school_create():
    form = SchoolFormCreate()
    if form.validate_on_submit():
        school = School(
            name=form.name.data, 
            description=form.description.data
        )
        db.session.add(school)
        db.session.commit()
        flash('Created and Saved Successfully.', 'alert-success')
        return redirect(url_for('school_view', id=school.id))
    return render_template('basic-forms/school/create.html', title='School Create', form=form)
Пример #16
0
 def fake_school(self):
     """
     获得一个伪造的学校
     :return: 伪造的学校
     """
     school_name = "逗比中学"
     school_address = "逗比路"
     try:
         school = School.objects.get(name=school_name)
     except School.DoesNotExist:
         school = School(name=school_name,
                         address=school_address, region=Region.objects.get(name="其他"),
                         center=True, longitude=0, latitude=0, opened=False)
         school.save()
     return school
Пример #17
0
 def test_students_only_returns_students(self):
     s = School(name="Test")
     u1 = User(username="******", email='*****@*****.**')
     u2 = User(username="******", email='*****@*****.**')
     u3 = User(username="******", email='*****@*****.**')
     u3.role = Role.get('Teacher')
     u4 = User(username="******", email='*****@*****.**')
     u4.role = Role.get('Teacher')
     s.add_student(u1)
     s.add_student(u2)
     s.add_teacher(u3)
     s.add_teacher(u4)
     db.session.add(s)
     db.session.commit()
     self.assertListEqual([u1, u2], s.students.all())
Пример #18
0
def add_or_get(db, name):
    if name in Schools:
        x = School.query.filter_by(name=name)
    else:
        x = Course.query.filter_by(name=name)
    if len(list(x)) == 0:
        if name in Schools:
            temp = School(name=name)
        else:
            temp = Course(name=name)
        db.session.add(temp)
        x = temp
    else:
        try:
            assert (len(list(x)) == 1)
        except Exception:
            raise Exception(
                'Something has gone horribly wrong with the database, an admin has been emailed'
            )
        x = x[0]
    return x
Пример #19
0
def get_full_school():
    return School(
        id="NW-112586",
        name="Städt. Gem. Grundschule - Primarstufe -",
        address="Pfälzer Str. 30-34",
        city="Köln",
        email="*****@*****.**",
        fax="0221355007718",
        legal_status="in öffentlicher Trägerschaft",
        phone="022135500770",
        provider="Stadt Köln",
        school_type="Grundschule",
        website="http://www.ggs-pfaelzer-strasse-koeln.de",
        zip="50677",
        raw={
            "Schulnummer": "112586",
            "Schulform": "02",
            "Schulbezeichnung_1": "Städt. Gem. Grundschule",
            "Schulbezeichnung_2": "- Primarstufe -",
            "Schulbezeichnung_3": "",
            "Kurzbezeichnung": "Köln, GG Pfälzer Str.",
            "PLZ": "50677",
            "Ort": "Köln",
            "Strasse": "Pfälzer Str. 30-34",
            "Telefonvorwahl": "0221",
            "Telefon": "35500770",
            "Faxvorwahl": "0221",
            "Fax": "355007718",
            "E-Mail": "*****@*****.**",
            "Homepage": "http://www.ggs-pfaelzer-strasse-koeln.de",
            "Rechtsform": "1",
            "Traegernummer": "10182",
            "Gemeindeschluessel": "05315000",
            "Schulbetriebsschluessel": "1",
            "Schulbetriebsdatum": "01.08.1973",
            "EPSG": "EPSG:25832",
            "UTMRechtswert": "355389",
            "UTMHochwert": "5643630",
        },
    )
Пример #20
0
    def test_student_can_ask(self):
        sc01 = School(name='school01')
        st01 = Student(nickname='student01')
        sc02 = School(name='school02')
        st02 = Student(nickname='student02')
        sc03 = School(name='school03')
        st03 = Student(nickname='student03')
        sc04 = School(name='school04')
        st04 = Student(nickname='student04')
        sc05 = School(name='school05')
        st05 = Student(nickname='student05')
        db.session.add_all(
            [sc01, st01, sc02, st02, sc03, st03, sc04, st04, sc05, st05])
        db.session.commit()
        # time True
        co01 = Course(course_name='acourse01',
                      school_id=sc01.id,
                      nomal_times=0,
                      vip_times=-1)
        # time False
        co02 = Course(course_name='acourse02',
                      school_id=sc02.id,
                      nomal_times=0,
                      vip_times=-1)
        co03 = Course(course_name='acourse03',
                      school_id=sc03.id,
                      nomal_times=0,
                      vip_times=0)
        co04 = Course(course_name='acourse04',
                      school_id=sc04.id,
                      nomal_times=0,
                      vip_times=1)
        co05 = Course(course_name='acourse05',
                      school_id=sc05.id,
                      nomal_times=1,
                      vip_times=0)
        db.session.add_all([co01, co02, co03, co04, co05])
        db.session.commit()
        st01.join_school(sc01.id)
        st02.join_school(sc02.id)
        st03.join_school(sc03.id)
        st04.join_school(sc04.id)
        st05.join_school(sc05.id)
        member_info01 = SchoolStudent.query.filter_by(
            school_id=sc01.id, student_id=st01.id).first()
        member_info02 = SchoolStudent.query.filter_by(
            school_id=sc02.id, student_id=st02.id).first()
        member_info03 = SchoolStudent.query.filter_by(
            school_id=sc03.id, student_id=st03.id).first()
        member_info04 = SchoolStudent.query.filter_by(
            school_id=sc04.id, student_id=st04.id).first()
        member_info05 = SchoolStudent.query.filter_by(
            school_id=sc05.id, student_id=st05.id).first()

        member_info01.vip_expire = datetime.utcnow() + timedelta(days=1)
        db.session.add(member_info01)
        db.session.commit()
        self.assertTrue(st01.can_ask(sc01.id))

        member_info02.vip_expire = datetime.utcnow() - timedelta(days=1)
        db.session.add(member_info02)
        db.session.commit()
        self.assertFalse(st02.can_ask(sc02.id))

        member_info03.vip_expire = datetime.utcnow() + timedelta(days=1)
        db.session.add(member_info03)
        db.session.commit()
        self.assertFalse(st03.can_ask(sc03.id))

        member_info04.vip_expire = datetime.utcnow() + timedelta(days=1)
        db.session.add(member_info04)
        db.session.commit()
        self.assertTrue(st04.can_ask(sc04.id))

        member_info05.vip_expire = datetime.utcnow() - timedelta(days=1)
        db.session.add(member_info05)
        db.session.commit()
        self.assertTrue(st05.can_ask(sc05.id))

        self.assertFalse(st05.can_ask(sc04.id))
Пример #21
0
def seed_schools():
    montclair = School(name='Montclair State University',
                       logo_id=21,
                       latitude=40.864235224079394,
                       longitude=-74.1985918444289)
    tcnj = School(name='TCNJ',
                  logo_id=22,
                  latitude=40.268512677240786,
                  longitude=-74.7769878969077)
    rowan = School(name='Rowan University',
                   logo_id=23,
                   latitude=39.71020663560062,
                   longitude=-75.11956089440088)
    sch1 = School(logo_id=24,
                  name='Johns Hopkins University',
                  latitude=39.328888,
                  longitude=-76.620277)
    sch2 = School(logo_id=25,
                  name='Utah Valley University',
                  latitude=40.277779,
                  longitude=-111.713890)
    sch3 = School(logo_id=26,
                  name='Indiana University of Pennsylvania',
                  latitude=40.617001,
                  longitude=-79.160004)
    sch4 = School(logo_id=27,
                  name='University of Illinois',
                  latitude=40.110558,
                  longitude=-88.228333)
    sch5 = School(logo_id=28,
                  name='Massachusetts Institute of Technology',
                  latitude=42.360001,
                  longitude=-71.092003)
    sch6 = School(logo_id=29,
                  name='Stanford University',
                  latitude=37.428230,
                  longitude=-122.168861)
    sch7 = School(logo_id=30,
                  name='Harvard University',
                  latitude=42.374443,
                  longitude=-71.116943)
    sch8 = School(logo_id=31,
                  name='California Institute of Technology',
                  latitude=34.138000,
                  longitude=-118.125000)
    sch9 = School(logo_id=32,
                  name='University of Chicago',
                  latitude=41.789722,
                  longitude=-87.599724)
    sch11 = School(logo_id=33,
                   name='Eastern University',
                   latitude=40.051529,
                   longitude=-75.370407)
    sch12 = School(logo_id=34,
                   name='University of Michigan',
                   latitude=42.278046,
                   longitude=-83.738220)
    sch13 = School(logo_id=35,
                   name='The University of Massachusetts',
                   latitude=42.391155,
                   longitude=-72.526711)
    sch14 = School(logo_id=36,
                   name='Penn State University',
                   latitude=40.798214,
                   longitude=-77.859909)
    sch15 = School(logo_id=37,
                   name='Lawrence University',
                   latitude=44.260445,
                   longitude=-88.397713)
    sch16 = School(logo_id=38,
                   name='Quinnipiac',
                   latitude=41.421440,
                   longitude=-72.894005)
    sch18 = School(logo_id=39,
                   name='Villanova University',
                   latitude=40.034901,
                   longitude=-75.337349)
    sch19 = School(logo_id=40,
                   name='Boise State University',
                   latitude=43.603600,
                   longitude=-116.208710)
    sch21 = School(logo_id=41,
                   name='University of North Carolina at Chapel Hill',
                   latitude=35.904613,
                   longitude=-79.046761)

    db.session.bulk_save_objects([
        montclair,
        tcnj,
        rowan,
        sch1,
        sch2,
        sch3,
        sch4,
        sch5,
        sch6,
        sch7,
        sch8,
        sch9,
        sch11,
        sch12,
        sch13,
        sch14,
        sch15,
        sch16,
        sch18,
        sch19,
        sch21,
    ])

    db.session.commit()
Пример #22
0
 def test_password_salt_are_random(self):
     u = School(password='******')
     u2 = School(password='******')
     self.assertTrue(u.password_hash != u2.password_hash)
Пример #23
0
 def test_password_verification(self):
     u = School(password='******')
     self.assertTrue(u.verify_password('cat'))
     self.assertFalse(u.verify_password('dog'))
Пример #24
0
 def test_no_password_getter(self):
     u = School(password='******')
     with self.assertRaises(AttributeError):
         u.password
Пример #25
0
 def test_password_setter(self):
     u = School(password='******')
     self.assertTrue(u.password_hash is not None)
Пример #26
0
 def setUp(self):
     self.assertTrue(settings.FAKE_SMS_SERVER)
     # 创建老师
     teacher_user = User.objects.create(username=self.teacher_name)
     teacher_user.password = make_password(self.teacher_password,
                                           self.teacher_salt)
     teacher_user.email = self.teacher_email
     teacher_user.save()
     profile = Profile(user=teacher_user, phone=self.teacher_phone)
     profile.save()
     teacher = Teacher(user=teacher_user)
     teacher.save()
     teacher_group = Group.objects.get(name="老师")
     teacher_user.groups.add(teacher_group)
     teacher_user.save()
     profile.save()
     teacher.save()
     teacher_account = Account(user=teacher_user)
     teacher_account.save()
     # 为老师创建能力
     grade = Grade.objects.get(name="高三")
     subject = Subject.objects.get(name="英语")
     ability = Ability.objects.get(grade=grade, subject=subject)
     teacher.abilities.add(ability)
     # 设置面试记录
     teacher.status = Teacher.INTERVIEW_OK
     teacher.status_confirm = True
     # 设置性别
     profile.gender = "f"
     profile.save()
     # 设置区域
     other_region = Region.objects.get(name="其他")
     teacher.region = other_region
     # 设置老师级别
     teacher_level = Level.objects.all()[0]
     teacher.level = teacher_level
     # 为老师创建对应价格
     price = Price(region=other_region,
                   ability=ability,
                   level=teacher_level,
                   price=1,
                   salary=2,
                   commission_percentage=3)
     price.save()
     # 设置老师名称
     teacher.name = self.teacher_name
     teacher.save()
     # 创建家长
     parent_user = User.objects.create(username=self.parent_name)
     parent_user.password = make_password(self.parent_password,
                                          self.parent_salt)
     parent_user.email = self.parent_email
     parent_user.save()
     parent_profile = Profile(user=parent_user, phone=self.parent_phone)
     parent_profile.save()
     parent_group = Group.objects.get(name="家长")
     parent_user.groups.add(parent_group)
     parent_user.save()
     parent_profile.save()
     parent = Parent(user=parent_user)
     parent.save()
     # 创建订单
     school = School(name="逗比中学",
                     address="逗比路",
                     region=Region.objects.get(name="其他"),
                     center=True,
                     longitude=0,
                     latitude=0,
                     opened=False)
     school.save()
     school.init_prices()
     # 为老师添加学校
     teacher.schools.add(school)
     order = Order(parent=parent,
                   teacher=teacher,
                   school=school,
                   grade=Grade.objects.get(name="一年级"),
                   subject=Subject.objects.get(name="数学"),
                   coupon=None,
                   price=200,
                   hours=50,
                   total=100,
                   paid_at=make_aware(datetime.datetime.now()),
                   status=Order.PAID)
     order.save()
     # 创建订单里的课程
     one_time_slot = TimeSlot(
         order=order,
         start=make_aware(datetime.datetime(2016, 1, 1, 8, 0, 0)),
         end=make_aware(datetime.datetime(2016, 1, 1, 10, 0, 0)))
     one_time_slot.save()
     one_time_slot = TimeSlot(
         order=order,
         start=make_aware(datetime.datetime(2015, 12, 30, 15, 0, 0)),
         end=make_aware(datetime.datetime(2015, 12, 30, 17, 0, 0)))
     one_time_slot.save()
     one_time_slot = TimeSlot(
         order=order,
         start=make_aware(datetime.datetime(2015, 12, 20, 11, 0, 0)),
         end=make_aware(datetime.datetime(2015, 12, 20, 12, 0, 0)))
     one_time_slot.save()
     # 检查订单的数目是否正确
     order = Order.objects.get(teacher=teacher)
     self.assertEqual(3, len(order.timeslot_set.filter(deleted=False)))
Пример #27
0
def somedata():
    admin01 = Admin(name='user', password='******')
    db.session.add(admin01)
    db.session.commit()

    school01 = School(name='这是学校01', admin=13700000001)
    school02 = School(name='这是学校02', admin=13700000004)
    school03 = School(name='这是学校03', admin=13700000007)

    teacher01 = Teacher(telephone=13700000001, password='******')
    teacher02 = Teacher(telephone=13700000002, password='******')
    teacher03 = Teacher(telephone=13700000003, password='******')
    teacher04 = Teacher(telephone=13700000004, password='******')
    teacher05 = Teacher(telephone=13700000005, password='******')
    teacher06 = Teacher(telephone=13700000006, password='******')
    teacher07 = Teacher(telephone=13700000007, password='******')
    teacher08 = Teacher(telephone=13700000008, password='******')
    teacher09 = Teacher(telephone=13700000009, password='******')

    teacher01.schools.append(school01)
    teacher01.schools.append(school02)

    teacher02.schools.append(school01)
    teacher02.schools.append(school02)

    teacher03.schools.append(school02)
    teacher03.schools.append(school03)

    teacher04.schools.append(school02)
    teacher04.schools.append(school03)

    teacher05.schools.append(school01)
    teacher05.schools.append(school02)

    teacher06.schools.append(school01)
    teacher07.schools.append(school03)
    teacher08.schools.append(school03)
    teacher09.schools.append(school01)

    student01 = Student(telephone=15900000001, password='******')
    student02 = Student(telephone=15900000002, password='******')
    student03 = Student(telephone=15900000003, password='******')
    student04 = Student(telephone=15900000004, password='******')
    student05 = Student(telephone=15900000005, password='******')
    student06 = Student(telephone=15900000006, password='******')
    student07 = Student(telephone=15900000007, password='******')
    student08 = Student(telephone=15900000008, password='******')
    student09 = Student(telephone=15900000009, password='******')
    student10 = Student(telephone=15900000010, password='******')
    student11 = Student(telephone=15900000011, password='******')
    student12 = Student(telephone=15900000012, password='******')
    student13 = Student(telephone=15900000013, password='******')
    student14 = Student(telephone=15900000014, password='******')
    student15 = Student(telephone=15900000015, password='******')

    db.session.add_all([
        school01, school02, school03, teacher01, teacher02, teacher03,
        teacher04, teacher05, teacher06, teacher07, teacher08, teacher09,
        student01, student02, student03, student04, student05, student06,
        student07, student08, student09, student10, student11, student12,
        student13, student14, student15
    ])

    db.session.commit()

    course01 = Course(course_name='课程01', school_id=school01.id)
    course02 = Course(course_name='课程02', school_id=school02.id)
    course03 = Course(course_name='课程03', school_id=school03.id)

    db.session.add_all([course01, course02, course03])
    db.session.commit()

    student01.join_school(school01.id)
    student02.join_school(school01.id)
    student03.join_school(school01.id)
    student04.join_school(school01.id)
    student05.join_school(school01.id)
    student06.join_school(school02.id)
    student07.join_school(school02.id)
    student08.join_school(school02.id)
    student09.join_school(school02.id)
    student10.join_school(school02.id)
    student11.join_school(school03.id)
    student12.join_school(school03.id)
    student13.join_school(school03.id)
    student14.join_school(school03.id)
    student15.join_school(school03.id)
Пример #28
0
def create_stub_models():
    create_system_roles()
    create_default_citizenships()
    create_schedule_times()
    create_developer()
    create_bot()

    role_master = SystemRole.query.filter_by(name=role_master_name).first()
    user_master = SystemUser(login='******',
                             password='******',
                             system_role=role_master,
                             enabled=True)
    master = Master(fio='Руководитель Иван Иванович', system_user=user_master)
    db.session.add(user_master)
    db.session.add(master)

    role_teacher = SystemRole.query.filter_by(name=role_teacher_name).first()
    user_teacher = SystemUser(login='******',
                              password='******',
                              system_role=role_teacher,
                              enabled=True)
    teacher = Teacher(fio='Учитель Петр Петрович',
                      system_user=user_teacher,
                      phone='89012223344')
    db.session.add(user_teacher)
    db.session.add(teacher)

    school = School(name='школа №42')

    role_student = SystemRole.query.filter_by(name=role_student_name).first()
    user_student = SystemUser(login='******',
                              password='******',
                              system_role=role_student,
                              enabled=True)
    student = Student(fio='Ученик Алексей Алексеевич',
                      system_user=user_student,
                      birth_place='birth place',
                      birth_date='2002-08-31',
                      registration_place='reg place',
                      actual_address='act addr',
                      citizenship_id=1,
                      school=school,
                      grade='1',
                      shift=1,
                      contact_phone=contact_phone_student,
                      phone='89023334455')
    db.session.add(user_student)
    db.session.add(student)

    section1 = Section(name='робо', price=800)
    section2 = Section(name='веб', price=900)
    db.session.add(section1)
    db.session.add(section2)

    group = Group(name='робо-71',
                  section=section1,
                  teacher=teacher,
                  start_month=8,
                  end_month=16)
    db.session.add(group)
    db.session.add(
        Group(name='веб-61',
              section=section2,
              teacher=teacher,
              start_month=8,
              end_month=16))

    student_in_group = StudentInGroup(student=student,
                                      group=group,
                                      discount=100,
                                      enter_month=8,
                                      exit_month=16)
    db.session.add(student_in_group)
    db.session.add(
        Payment(student_in_group=student_in_group,
                month=9,
                value=400,
                comment='comment'))

    db.session.commit()