From b3e10dad91f7f21a48f5ac1365c1695cd1a93ba6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexis=20M=C3=A9taireau?= Date: Sun, 12 Nov 2023 20:35:40 +0100 Subject: [PATCH] Keep member's activation when not specified. --- ihatemoney/api/common.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/ihatemoney/api/common.py b/ihatemoney/api/common.py index caf8148b..06cfc74a 100644 --- a/ihatemoney/api/common.py +++ b/ihatemoney/api/common.py @@ -103,10 +103,12 @@ class APIMemberForm(MemberForm): But we want Member.enabled to be togglable via the API. """ - activated = BooleanField(false_values=("false", "", "False")) + activated = BooleanField(false_values=("false", "False")) def save(self, project, person): - person.activated = self.activated.data + # Check for raw data, otherwise no value will make it default to False + if self.activated.raw_data: + person.activated = self.activated.data return super(APIMemberForm, self).save(project, person) @@ -136,9 +138,10 @@ class MemberHandler(Resource): return member def put(self, project, member_id): - form = APIMemberForm(project, meta={"csrf": False}, edit=True) + member = Person.query.get(member_id, project) + form = APIMemberForm(project, obj=member, meta={"csrf": False}, edit=True) + if form.validate(): - member = Person.query.get(member_id, project) form.save(project, member) db.session.commit() return member