diff --git a/DB.drawio b/DB.drawio index aef895d..e20a472 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/README.md b/README.md index 44adc63..02b8008 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,6 @@ This URL leads to the home page where you can login with this testing admin acco # To-Do: - Rest of admin model views - Calculate final experiment and part mark -- Check if passed in GroupExperiment.checkAndInit - Assistants space - Deactivate assistants account after a while if not assigned to experiments - Homepage text changeable diff --git a/advlabdb/modelViews.py b/advlabdb/modelViews.py index 863038a..97bc7a9 100644 --- a/advlabdb/modelViews.py +++ b/advlabdb/modelViews.py @@ -124,7 +124,7 @@ class SemesterView(SecureModelView): ), "transfer_assistants": BooleanField( "Transfer Assistants", - description="This option transfers assistants of your active semester to active experiments in the new semester. Make sure that your semester is the last semester before creating a new one (recommended)! Active experiments are transfered anyway. If you don't want an experiment to be transfered, set it to inactive before creating the new semester. Experiments which are switched to active before creating the new semester will be created in the new semester without assistants. It is important to check the assistants of all experiments after creating a new semester.", + description="This option transfers assistants of your active semester to active experiments in the new semester. Make sure that your semester is the last semester before creating a new one (recommended)! Active experiments are transfered anyway. If you do not want an experiment to be transfered, set it to inactive before creating the new semester. Experiments which are switched to active before creating the new semester will be created in the new semester without assistants. It is important to check the assistants of all experiments after creating a new semester.", default=True, ), } @@ -254,7 +254,7 @@ class PartStudentView(SecureModelView): column_filters = ["part", "student", "group"] - partGroupPartMismatchException = "Part and groups part don't match!" + partGroupPartMismatchException = "Student's part and group's part do not match!" def create_form(self, obj=None): form = self.CreateForm @@ -299,7 +299,7 @@ class GroupView(SecureModelView): column_list = ["number", "part", "part_students", "group_experiments"] column_filters = ["number", "part"] - partStudentPartPartMismatchException = "Part and StudentParts part don't match!" + partStudentPartPartMismatchException = "Group's part and student's part do not match!" def create_model(self, form): try: @@ -384,7 +384,7 @@ class SemesterExperimentView(SecureModelView): class AssistantView(SecureModelView): can_view_details = True - column_list = ["first_name", "last_name", "email", "user", "semester_experiments"] + column_list = ["first_name", "last_name", "user", "semester_experiments"] column_details_list = column_list + [ "phone_number", "mobile_phone_number", diff --git a/advlabdb/models.py b/advlabdb/models.py index b826325..dd93f3d 100644 --- a/advlabdb/models.py +++ b/advlabdb/models.py @@ -149,7 +149,6 @@ class Assistant(db.Model): id = db.Column(db.Integer, primary_key=True) first_name = db.Column(db.String(100), nullable=False) last_name = db.Column(db.String(100), nullable=False) - email = db.Column(db.String(200), nullable=False) phone_number = db.Column(db.String(50), nullable=True) mobile_phone_number = db.Column(db.String(50), nullable=True) room = db.Column(db.String(100), nullable=True) diff --git a/testDB.py b/testDB.py index e6b04de..bdc582a 100644 --- a/testDB.py +++ b/testDB.py @@ -93,12 +93,11 @@ with app.app_context(): as1 = Assistant( first_name="As1", last_name="l", - email="test@test.com", phone_number="012333212", mobile_phone_number="012334123", user=us1, ) - as2 = Assistant(first_name="As2", last_name="l", email="test2@test.com", user=us2) + as2 = Assistant(first_name="As2", last_name="l", user=us2) as1.semester_experiments.append(sx1) as2.semester_experiments.append(sx2)