diff --git a/advlabdb/adminModelViews.py b/advlabdb/adminModelViews.py index 1f44abd..8364ea7 100644 --- a/advlabdb/adminModelViews.py +++ b/advlabdb/adminModelViews.py @@ -482,6 +482,12 @@ class StudentView(SecureAdminModelView): "part_students": part_students_export_formatter, } + def on_model_change(self, form, model, is_created): + # Don't save contact_email if it is similar to uni_email + # No need to strip strings because of email form validation + if model.contact_email is not None and model.contact_email == model.uni_email: + model.contact_email = None + def partQueryFactory(): return Part.query.where(Part.semester == current_user.active_semester) diff --git a/advlabdb/models.py b/advlabdb/models.py index 2304d2e..2243bfe 100644 --- a/advlabdb/models.py +++ b/advlabdb/models.py @@ -61,7 +61,8 @@ class Student(db.Model): part_students = db.relationship("PartStudent", back_populates="student", lazy=True) def __init__(self, uni_email, contact_email=None, **kwargs): - if contact_email is not None and uni_email.strip() == contact_email.strip(): + # Don't save contact_email if it is similar to uni_email + if contact_email is not None and contact_email.strip() == uni_email.strip(): contact_email = None super().__init__(uni_email=uni_email, contact_email=contact_email, **kwargs)