diff --git a/DB.drawio b/DB.drawio index 93a8c56..abe18c4 100644 --- a/DB.drawio +++ b/DB.drawio @@ -1 +1 @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/advlabdb/models.py b/advlabdb/models.py index 0332e45..d3b1e2a 100644 --- a/advlabdb/models.py +++ b/advlabdb/models.py @@ -34,12 +34,15 @@ class Student(db.Model): class PartStudent(db.Model): # A student doing a specific part id = db.Column(db.Integer, primary_key=True) - final_part_mark = db.Column(db.Integer, nullable=True) + final_part_mark = db.Column(db.Float, nullable=True) student_id = db.Column(db.Integer, db.ForeignKey("student.id"), nullable=False) part_id = db.Column(db.Integer, db.ForeignKey("part.id"), nullable=False) group_id = db.Column(db.Integer, db.ForeignKey("group.id"), nullable=True) experiment_marks = db.relationship("ExperimentMark", backref="part_student", lazy=True) + def __repr__(self): + return f"" + class Group(db.Model): id = db.Column(db.Integer, primary_key=True) @@ -159,8 +162,8 @@ class Semester(db.Model): class ExperimentMark(db.Model): # A mark for a student after a specific experiment id = db.Column(db.Integer, primary_key=True) - oral_mark = db.Column(db.Integer, nullable=True) - protocol_mark = db.Column(db.Integer, nullable=True) + oral_mark = db.Column(db.Float, nullable=True) + protocol_mark = db.Column(db.Float, nullable=True) part_student_id = db.Column(db.Integer, db.ForeignKey("part_student.id"), nullable=False) group_experiment_id = db.Column(db.Integer, db.ForeignKey("group_experiment.id"), nullable=False) assistant_id = db.Column( diff --git a/poetry.lock b/poetry.lock index 6924b40..32f017a 100644 --- a/poetry.lock +++ b/poetry.lock @@ -323,9 +323,20 @@ category = "dev" optional = false python-versions = "*" +[[package]] +name = "rope" +version = "0.19.0" +description = "a python refactoring library..." +category = "dev" +optional = false +python-versions = "*" + +[package.extras] +dev = ["pytest"] + [[package]] name = "sqlalchemy" -version = "1.4.19" +version = "1.4.20" description = "Database Abstraction Library" category = "main" optional = false @@ -392,7 +403,7 @@ locale = ["Babel (>=1.3)"] [metadata] lock-version = "1.1" python-versions = "^3.9" -content-hash = "6a893e3ebd4bf4ad943714d6187c0b34a988665318819b5bda514dc0eb0ad6da" +content-hash = "cbd384282803742bf8329353f02d15b5512c5ce72eb075cc1c3158045b9e50df" [metadata.files] appdirs = [ @@ -622,37 +633,40 @@ regex = [ {file = "regex-2021.4.4-cp39-cp39-win_amd64.whl", hash = "sha256:97f29f57d5b84e73fbaf99ab3e26134e6687348e95ef6b48cfd2c06807005a07"}, {file = "regex-2021.4.4.tar.gz", hash = "sha256:52ba3d3f9b942c49d7e4bc105bb28551c44065f139a65062ab7912bef10c9afb"}, ] +rope = [ + {file = "rope-0.19.0.tar.gz", hash = "sha256:64e6d747532e1f5c8009ec5aae3e5523a5bcedf516f39a750d57d8ed749d90da"}, +] sqlalchemy = [ - {file = "SQLAlchemy-1.4.19-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:ddbce8fe4d0190db21db602e38aaf4c158c540b49f1ef7475323ec682a9fbf2d"}, - {file = "SQLAlchemy-1.4.19-cp27-cp27m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:942ca49b7ec7449d2473a6587825c55ad99534ddfc4eee249dd42be3cc1aa8c9"}, - {file = "SQLAlchemy-1.4.19-cp27-cp27m-win32.whl", hash = "sha256:9c0945c79cbe507b49524e31a4bb8700060bbccb60bb553df6432e176baff3d5"}, - {file = "SQLAlchemy-1.4.19-cp27-cp27m-win_amd64.whl", hash = "sha256:6fd1b745ade2020a1a7bf1e22536d8afe86287882c81ca5d860bdf231d5854e9"}, - {file = "SQLAlchemy-1.4.19-cp27-cp27mu-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:0fb3f73e5009f5a4c9b24469939d3d57cc3ad8099a09c0cfefc47fe45ab7ffbe"}, - {file = "SQLAlchemy-1.4.19-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:64eab458619ef759f16f0f82242813d3289e829f8557fbc7c212ca4eadf96472"}, - {file = "SQLAlchemy-1.4.19-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:311051c06f905774427b4a92dcb3924d6ee563dea3a88176da02fdfc572d0d1d"}, - {file = "SQLAlchemy-1.4.19-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a34a7fd3353ee61a1dca72fc0c3e38d4e56bdc2c343e712f60a8c70acd4ef5bf"}, - {file = "SQLAlchemy-1.4.19-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ace9ab2af9d7d7b0e2ff2178809941c56ab8921e38128278192a73a8a1c08a2"}, - {file = "SQLAlchemy-1.4.19-cp36-cp36m-win32.whl", hash = "sha256:96d3d4a7ead376d738775a1fa9786dc17a31975ec664cea284e53735c79a5686"}, - {file = "SQLAlchemy-1.4.19-cp36-cp36m-win_amd64.whl", hash = "sha256:20f4bf1459548a74aade997cb045015e4d72f0fde1789b09b3bb380be28f6511"}, - {file = "SQLAlchemy-1.4.19-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:8cba69545246d16c6d2a12ce45865947cbdd814bacddf2e532fdd4512e70728c"}, - {file = "SQLAlchemy-1.4.19-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:57ba8a96b6d058c7dcf44de8ac0955b7a787f7177a0221dd4b8016e0191268f5"}, - {file = "SQLAlchemy-1.4.19-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8f1e7f4de05c15d6b46af12f3cf0c2552f2940d201a49926703249a62402d851"}, - {file = "SQLAlchemy-1.4.19-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5c92d9ebf4b38c22c0c9e4f203a80e101910a50dc555b4578816932015b97d7f"}, - {file = "SQLAlchemy-1.4.19-cp37-cp37m-win32.whl", hash = "sha256:c6efc7477551ba9ce632d5c3b448b7de0277c86005eec190a1068fcc7115fd0e"}, - {file = "SQLAlchemy-1.4.19-cp37-cp37m-win_amd64.whl", hash = "sha256:e2761b925fda550debfd5a8bc3cef9debc9a23c6a280429c4ec3a07c35c6b4b3"}, - {file = "SQLAlchemy-1.4.19-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:58d4f79d119010fdced6e7fd7e4b9f2230dbf55a8235d7c58b1c8207ef74791b"}, - {file = "SQLAlchemy-1.4.19-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cefd44faca7c57534503261f6fab49bd47eb9c2945ee0bab09faaa8cb047c24f"}, - {file = "SQLAlchemy-1.4.19-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:9133635edcec1e7fbfc16eba5dc2b5b3b11818d25b7a57cfcbfa8d3b3e9594fd"}, - {file = "SQLAlchemy-1.4.19-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3cf5f543d048a7c8da500133068c5c90c97a2c4bf0c027928a85028a519f33d"}, - {file = "SQLAlchemy-1.4.19-cp38-cp38-win32.whl", hash = "sha256:d04160462f874eaa4d88721a0d5ecca8ebf433616801efe779f252ef87b0e216"}, - {file = "SQLAlchemy-1.4.19-cp38-cp38-win_amd64.whl", hash = "sha256:45b0f773e195d8d51e2fd67cb5b5fb32f5a1f5e7f0752016207091bed108909a"}, - {file = "SQLAlchemy-1.4.19-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:93ba458b3c279581288a10a55df2aa6ac3509882228fcbad9d9d88069f899337"}, - {file = "SQLAlchemy-1.4.19-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6317701c06a829b066c794545512bb70b1a10a74574cfa5658a0aaf49f31aa93"}, - {file = "SQLAlchemy-1.4.19-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:95a9fd0a11f89a80d8815418eccba034f3fec8ea1f04c41b6b8decc5c95852e9"}, - {file = "SQLAlchemy-1.4.19-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9014fd1d8aebcb4eb6bc69a382dd149200e1d5924412b1d08b4443f6c1ce526f"}, - {file = "SQLAlchemy-1.4.19-cp39-cp39-win32.whl", hash = "sha256:fa05a77662c23226c9ec031638fd90ae767009e05cd092b948740f09d10645f0"}, - {file = "SQLAlchemy-1.4.19-cp39-cp39-win_amd64.whl", hash = "sha256:d7b21a4b62921cf6dca97e8f9dea1fbe2432aebbb09895a2bd4f527105af41a4"}, - {file = "SQLAlchemy-1.4.19.tar.gz", hash = "sha256:89a5a13dcf33b7e47c7a9404a297c836965a247c7f076a0fe0910cae2bee5ce2"}, + {file = "SQLAlchemy-1.4.20-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:525dd3c2205b11a2bc6d770bf1ec63bde0253fd754b4c19c399d27ddc9dad0d3"}, + {file = "SQLAlchemy-1.4.20-cp27-cp27m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:4a67371752fd86d1d03a3b82d4e75404608f6f4d579b9676124079a22a40c79f"}, + {file = "SQLAlchemy-1.4.20-cp27-cp27m-win32.whl", hash = "sha256:7150e5b543b466f45f668b352f7abda27998cc8035f051d1b7e9524ca9eb2f5f"}, + {file = "SQLAlchemy-1.4.20-cp27-cp27m-win_amd64.whl", hash = "sha256:6da83225a23eaf7b3f48f3d5f53c91b2cf00fbfa48b24a7a758160112dd3e123"}, + {file = "SQLAlchemy-1.4.20-cp27-cp27mu-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:9841762d114018c49483c089fa2d47f7e612e57666323f615913d7d7f46e9606"}, + {file = "SQLAlchemy-1.4.20-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:eaee5dd378f6f0d7c3ec49aeeb26564d55ac0ad73b9b4688bf29e66deabddf73"}, + {file = "SQLAlchemy-1.4.20-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9eb25bcf9161e2fcbe9eebe8e829719b2334e849183f0e496bf4b83722bcccfa"}, + {file = "SQLAlchemy-1.4.20-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8d860c62e3f51623ccd528d8fac44580501df557d4b467cc5581587fcf057719"}, + {file = "SQLAlchemy-1.4.20-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f6d467b67a7e5048f1408e8ea60d6caa70be5b386d0eebbf1185ab49cb8c7e4"}, + {file = "SQLAlchemy-1.4.20-cp36-cp36m-win32.whl", hash = "sha256:ff8bebc7a9d297dff2003460e01db2c20c63818b45fb19170f388b1a72fe5a14"}, + {file = "SQLAlchemy-1.4.20-cp36-cp36m-win_amd64.whl", hash = "sha256:46361690f1e1c5385994a4caeb6e8126063ff593a5c635700bbc1245de793c1e"}, + {file = "SQLAlchemy-1.4.20-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:c0eb2cd3ad4967fcbdd9e066e8cd91fe2c23c671dbae9952f0b4d3d42832cc5f"}, + {file = "SQLAlchemy-1.4.20-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76fbc24311a3d039d6cd147d396719f606d96d1413f3816c028a48e29367f646"}, + {file = "SQLAlchemy-1.4.20-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f14acb0fd16d404fda9370f93aace682f284340c89c3442ac747c5466ac7e2b5"}, + {file = "SQLAlchemy-1.4.20-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fcd84e4d46a86291495d131a7824ba38d2e8278bda9425c50661a04633174319"}, + {file = "SQLAlchemy-1.4.20-cp37-cp37m-win32.whl", hash = "sha256:2f60a2e599cf5cf5e5327ce60f2918b897e42ad9f405d10dd01e37869c0ce6fc"}, + {file = "SQLAlchemy-1.4.20-cp37-cp37m-win_amd64.whl", hash = "sha256:f6fc526bd70898489d02bf52c8f0632ab377592ae954d0c0a5bb38d618dddaa9"}, + {file = "SQLAlchemy-1.4.20-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:25c0e0f3a7e8c19350086b3c0fe93c4def045cec053d749ef15da710c4d54c81"}, + {file = "SQLAlchemy-1.4.20-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e0d48456e1aa4f0537f9c9af7be71e1f0659ff68bc1cd538ebc785f6b007bd0d"}, + {file = "SQLAlchemy-1.4.20-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:9675d5bc7e4f96a7bb2b54d14e9b269a5fb6e5d36ecc7d01f0f65bb9af3185f9"}, + {file = "SQLAlchemy-1.4.20-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b502b5e2f08500cc4b8d29bfc4f51d805adcbc00f8d149e98fda8aae85ddb644"}, + {file = "SQLAlchemy-1.4.20-cp38-cp38-win32.whl", hash = "sha256:aad3234a41340e9cf6184e621694e2a7233ba3f8aef9b1e6de8cba431b45ebd2"}, + {file = "SQLAlchemy-1.4.20-cp38-cp38-win_amd64.whl", hash = "sha256:6c8406c3d8c1c7d15da454de15d77f7bb48d14ede5db994f74226c348cf1050e"}, + {file = "SQLAlchemy-1.4.20-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:238d78b3110b7f7cffdb70bf9cda686e0d876a849bc78ba4d471aa7b1461f306"}, + {file = "SQLAlchemy-1.4.20-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:854a7b15750e617e16f8d65dbc004f065a7963544b253b923f16109557648777"}, + {file = "SQLAlchemy-1.4.20-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ff38ecf89c69a531a7326c2dae71982edfe2f805f3c016cdc5bfd1a04ebf80cb"}, + {file = "SQLAlchemy-1.4.20-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86c079732328f1add097b0b8079cd532b5d28e207fac93e9d6ea5f487506deef"}, + {file = "SQLAlchemy-1.4.20-cp39-cp39-win32.whl", hash = "sha256:46b99eab618cdc1c871ea707b7c52edc23cfea6c750740cd242ba62b5c84de7f"}, + {file = "SQLAlchemy-1.4.20-cp39-cp39-win_amd64.whl", hash = "sha256:b86d83fefc8a8c394f3490c37e1953bc16c311a3d1d1cf91518793bfb9847fb4"}, + {file = "SQLAlchemy-1.4.20.tar.gz", hash = "sha256:38ee3a266afef2978e82824650457f70c5d74ec0cadec1b10fe5ed6f038eb5d0"}, ] toml = [ {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, diff --git a/pyproject.toml b/pyproject.toml index ed77ad8..61d5cca 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -17,6 +17,7 @@ Flask-Admin = ">=1.5.8" flake8 = "*" black = "*" isort = "*" +rope = "^0.19.0" [build-system] requires = ["poetry-core>=1.0.0"]