mirror of
https://github.com/GSA/notifications-api.git
synced 2026-01-23 11:01:59 -05:00
Dissociate letter contact blocks before archiving
Otherwise you can’t archive it.
This commit is contained in:
@@ -73,25 +73,21 @@ def archive_letter_contact(service_id, letter_contact_id):
|
||||
service_id=service_id
|
||||
).one()
|
||||
|
||||
if _is_template_default(letter_contact_id):
|
||||
raise ArchiveValidationError("You cannot delete the default letter contact block for a template")
|
||||
if letter_contact_to_archive.is_default:
|
||||
raise ArchiveValidationError("You cannot delete a default letter contact block")
|
||||
|
||||
Template.query.filter_by(
|
||||
service_letter_contact_id=letter_contact_id
|
||||
).update({
|
||||
'service_letter_contact_id': None
|
||||
})
|
||||
|
||||
letter_contact_to_archive.archived = True
|
||||
|
||||
db.session.add(letter_contact_to_archive)
|
||||
return letter_contact_to_archive
|
||||
|
||||
|
||||
def _is_template_default(letter_contact_id):
|
||||
template_defaults = Template.query.filter_by(
|
||||
service_letter_contact_id=letter_contact_id
|
||||
).all()
|
||||
|
||||
return any(template_defaults)
|
||||
|
||||
|
||||
def _get_existing_default(service_id):
|
||||
letter_contacts = dao_get_letter_contacts_by_service_id(service_id=service_id)
|
||||
if letter_contacts:
|
||||
|
||||
Reference in New Issue
Block a user