from datetime import date from flask_security import hash_password from advlabdb import app, db, user_datastore from advlabdb.models import * with app.app_context(): db.drop_all() db.create_all() sem1 = Semester(label="WS2021") sem2 = Semester(label="SS21") db.session.add(sem1) db.session.add(sem2) sem1.transferPartsFrom(None) sem2.transferPartsFrom(sem1) parta1 = sem2.parts[0] partb2 = sem2.parts[1] student1 = Student(student_number=123, first_name="Mo", last_name="Bit", uni_email="m@test.com") student2 = Student(student_number=1232, first_name="Mo2", last_name="Bit", uni_email="m2@test.com") student3 = Student(student_number=1233, first_name="Mo3", last_name="Bit3", uni_email="m3@test.com") db.session.add(student1) db.session.add(student2) db.session.add(student3) g1 = Group(number=1, part=parta1) g2 = Group(number=2, part=partb2) db.session.add(g1) db.session.add(g2) ps1 = PartStudent(student=student1, part=parta1, group=g1) ps2 = PartStudent(student=student2, part=parta1, group=g1) ps3 = PartStudent(student=student3, part=partb2, group=g2) db.session.add(ps1) db.session.add(ps2) db.session.add(ps3) ex1 = Experiment( label="B1", title="exp", room="123", building="phy", responsibility="none", duration_in_days=2, oral_weighting=0.5, protocol_weighting=0.5, final_weighting=1, ) ex2 = Experiment( label="B2", title="exp2", room="123", building="phy", responsibility="none", duration_in_days=2, oral_weighting=0.5, protocol_weighting=0.5, final_weighting=1, ) db.session.add(ex1) db.session.add(ex2) sx1 = SemesterExperiment(experiment=ex1, semester=sem2) sx2 = SemesterExperiment(experiment=ex2, semester=sem2) db.session.add(sx1) db.session.add(sx2) gx1 = GroupExperiment(semester_experiment=sx1, group=g1) gx2 = GroupExperiment(semester_experiment=sx2, group=g2) db.session.add(gx1) db.session.add(gx2) user_datastore.create_role(name="admin") user_datastore.create_role(name="assistant") user_datastore.create_user(email="admin@protonmail.com", password=hash_password("admin"), roles=["admin"]) us1 = user_datastore.create_user(email="test@protonmail.com", password=hash_password("h1"), roles=["assistant"]) us2 = user_datastore.create_user(email="test2@protonmail.com", password=hash_password("h2"), roles=["assistant"]) as1 = Assistant( first_name="As1", last_name="l", phone_number="012333212", mobile_phone_number="012334123", user=us1, ) as2 = Assistant(first_name="As2", last_name="l", user=us2) as1.semester_experiments.append(sx1) as2.semester_experiments.append(sx2) db.session.add(as1) db.session.add(as2) ap1 = Appointment(date=date(2021, 3, 21), special=True, group_experiment=gx1, assistant=as1) ap2 = Appointment(date=date(2021, 3, 22), special=True, group_experiment=gx2, assistant=as2) db.session.add(ap1) db.session.add(ap2) em1 = ExperimentMark(oral_mark=11, protocol_mark=14, part_student=ps1, group_experiment=gx1, assistant=as1) em2 = ExperimentMark(oral_mark=12, protocol_mark=14, part_student=ps2, group_experiment=gx1, assistant=as1) em3 = ExperimentMark(oral_mark=13, protocol_mark=14, part_student=ps3, group_experiment=gx2, assistant=as2) db.session.add(em1) db.session.add(em2) db.session.add(em3) db.session.commit()