remove service letter contact model

This commit is contained in:
stvnrlly
2023-02-17 22:56:54 -05:00
parent 007741fe44
commit c34b24014a
16 changed files with 57 additions and 469 deletions

View File

@@ -512,10 +512,6 @@ class Service(db.Model, Versioned):
default_reply_to = [x for x in self.reply_to_email_addresses if x.is_default]
return default_reply_to[0].email_address if default_reply_to else None
def get_default_letter_contact(self):
default_letter_contact = [x for x in self.letter_contacts if x.is_default]
return default_letter_contact[0].contact_block if default_letter_contact else None
def has_permission(self, permission):
return permission in [p.permission for p in self.permissions]
@@ -916,34 +912,20 @@ class TemplateBase(db.Model):
redact_personalisation = association_proxy('template_redacted', 'redact_personalisation')
@declared_attr
def service_letter_contact_id(cls):
return db.Column(UUID(as_uuid=True), db.ForeignKey('service_letter_contacts.id'), nullable=True)
@declared_attr
def service_letter_contact(cls):
return db.relationship('ServiceLetterContact', viewonly=True)
# TODO: possibly unnecessary after removing letters
@property
def reply_to(self):
if self.template_type == LETTER_TYPE:
return self.service_letter_contact_id
else:
return None
return None
@reply_to.setter
def reply_to(self, value):
if self.template_type == LETTER_TYPE:
self.service_letter_contact_id = value
elif value is None:
if value is None:
pass
else:
raise ValueError('Unable to set sender for {} template'.format(self.template_type))
def get_reply_to_text(self):
if self.template_type == LETTER_TYPE:
return self.service_letter_contact.contact_block if self.service_letter_contact else None
elif self.template_type == EMAIL_TYPE:
if self.template_type == EMAIL_TYPE:
return self.service.get_default_reply_to_email_address()
elif self.template_type == SMS_TYPE:
return try_validate_and_format_phone_number(self.service.get_default_sms_sender())
@@ -983,7 +965,6 @@ class TemplateBase(db.Model):
}
for key in self._as_utils_template().placeholders
},
"letter_contact_block": self.service_letter_contact.contact_block if self.service_letter_contact else None,
}
return serialized
@@ -1924,32 +1905,6 @@ class ServiceEmailReplyTo(db.Model):
}
class ServiceLetterContact(db.Model):
__tablename__ = "service_letter_contacts"
id = db.Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)
service_id = db.Column(UUID(as_uuid=True), db.ForeignKey('services.id'), unique=False, index=True, nullable=False)
service = db.relationship(Service, backref=db.backref("letter_contacts"))
contact_block = db.Column(db.Text, nullable=False, index=False, unique=False)
is_default = db.Column(db.Boolean, nullable=False, default=True)
archived = db.Column(db.Boolean, nullable=False, default=False)
created_at = db.Column(db.DateTime, nullable=False, default=datetime.datetime.utcnow)
updated_at = db.Column(db.DateTime, nullable=True, onupdate=datetime.datetime.utcnow)
def serialize(self):
return {
'id': str(self.id),
'service_id': str(self.service_id),
'contact_block': self.contact_block,
'is_default': self.is_default,
'archived': self.archived,
'created_at': self.created_at.strftime(DATETIME_FORMAT),
'updated_at': get_dt_string_or_none(self.updated_at),
}
class AuthType(db.Model):
__tablename__ = 'auth_type'