From 93fef08b4cefbe25c57557e8bae2d3ebe2c5e4b6 Mon Sep 17 00:00:00 2001 From: Mo8it Date: Thu, 8 Sep 2022 01:12:13 +0200 Subject: [PATCH] contact_email only when different also in forms --- advlabdb/adminModelViews.py | 6 ++++++ advlabdb/models.py | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) 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)