mirror of
https://github.com/meichthys/church.git
synced 2026-05-03 12:47:45 +00:00
better handle spouse linking/unlinking
This commit is contained in:
parent
c69d1b6df1
commit
575fd1e789
@ -11,9 +11,7 @@ class ChurchPerson(Document):
|
||||
def before_save(self):
|
||||
# We set this here since virtual fields do not work with
|
||||
# View Settings -> Title Field as of 2025-08-26
|
||||
self.full_name = f"{self.first_name}" + (
|
||||
(" " + self.last_name) if self.last_name else ""
|
||||
)
|
||||
self.full_name = f"{self.first_name}" + ((" " + self.last_name) if self.last_name else "")
|
||||
|
||||
def validate(self):
|
||||
if self.is_head_of_household:
|
||||
@ -35,26 +33,27 @@ class ChurchPerson(Document):
|
||||
head_doc.save()
|
||||
|
||||
# Sync spouses
|
||||
if self.spouse:
|
||||
if self.spouse and self.is_married:
|
||||
# Sync spouses
|
||||
spouse = frappe.get_doc("Church Person", self.spouse)
|
||||
if spouse.spouse != self.name:
|
||||
# Unlink spouse's old spouse if there was one
|
||||
frappe.db.set_value("Church Person", spouse.spouse, "spouse", None)
|
||||
frappe.db.set_value("Church Person", spouse.spouse, "anniversary", None)
|
||||
frappe.db.set_value("Church Person", spouse.spouse, "is_married", False)
|
||||
# Link spouses
|
||||
frappe.db.set_value("Church Person", spouse.name, "spouse", self.name)
|
||||
frappe.db.set_value("Church Person", spouse.name, "is_married", True)
|
||||
frappe.msgprint(
|
||||
f"Spouses have been linked:<br>"
|
||||
f"{self.full_name} 👩❤️👨 {spouse.full_name}"
|
||||
)
|
||||
frappe.msgprint(f"Spouses have been linked:<br>{self.full_name} 👩❤️👨 {spouse.full_name}")
|
||||
else:
|
||||
if self._doc_before_save and self._doc_before_save.spouse:
|
||||
if self._doc_before_save and self._doc_before_save.is_married and self._doc_before_save.spouse:
|
||||
spouse = frappe.get_doc("Church Person", self._doc_before_save.spouse)
|
||||
frappe.db.set_value("Church Person", spouse.name, "is_married", False)
|
||||
frappe.db.set_value("Church Person", spouse.name, "spouse", None)
|
||||
frappe.db.set_value("Church Person", spouse.name, "is_married", False)
|
||||
self.spouse = None
|
||||
self.anniversary = None
|
||||
self.is_married = False
|
||||
frappe.msgprint(
|
||||
f"Spouses have been unlinked:<br>"
|
||||
f"{self.full_name} 💔 {spouse.full_name}"
|
||||
)
|
||||
frappe.msgprint(f"Spouses have been unlinked:<br>{self.full_name} 💔 {spouse.full_name}")
|
||||
|
||||
@frappe.whitelist()
|
||||
def new_family_from_person(self):
|
||||
@ -73,10 +72,7 @@ class ChurchPerson(Document):
|
||||
frappe.utils.get_datetime(role.start_date)
|
||||
< datetime.now()
|
||||
< frappe.utils.get_datetime(role.end_date)
|
||||
) or (
|
||||
not role.end_date
|
||||
and frappe.utils.get_datetime(role.start_date) < datetime.now()
|
||||
):
|
||||
) or (not role.end_date and frappe.utils.get_datetime(role.start_date) < datetime.now()):
|
||||
role.is_current_role = 1
|
||||
else:
|
||||
role.is_current_role = 0
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user