♻️(email) adapt email when no title
Default title is not set when we create a document anymore. We need to adapt the email to handle this case.
This commit is contained in:
@@ -697,6 +697,7 @@ class Document(MP_Node, BaseModel):
|
|||||||
"document": self,
|
"document": self,
|
||||||
"domain": domain,
|
"domain": domain,
|
||||||
"link": f"{domain}/docs/{self.id}/",
|
"link": f"{domain}/docs/{self.id}/",
|
||||||
|
"document_title": self.title or str(_("Untitled Document")),
|
||||||
"logo_img": settings.EMAIL_LOGO_IMG,
|
"logo_img": settings.EMAIL_LOGO_IMG,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@@ -738,8 +739,12 @@ class Document(MP_Node, BaseModel):
|
|||||||
'{name} invited you with the role "{role}" on the following document:'
|
'{name} invited you with the role "{role}" on the following document:'
|
||||||
).format(name=sender_name_email, role=role.lower()),
|
).format(name=sender_name_email, role=role.lower()),
|
||||||
}
|
}
|
||||||
subject = _("{name} shared a document with you: {title}").format(
|
subject = (
|
||||||
name=sender_name, title=self.title
|
context["title"]
|
||||||
|
if not self.title
|
||||||
|
else _("{name} shared a document with you: {title}").format(
|
||||||
|
name=sender_name, title=self.title
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
self.send_email(subject, [email], context, language)
|
self.send_email(subject, [email], context, language)
|
||||||
|
|||||||
@@ -636,6 +636,37 @@ def test_models_documents__email_invitation__success():
|
|||||||
assert f"docs/{document.id}/" in email_content
|
assert f"docs/{document.id}/" in email_content
|
||||||
|
|
||||||
|
|
||||||
|
def test_models_documents__email_invitation__success_empty_title():
|
||||||
|
"""
|
||||||
|
The email invitation is sent successfully.
|
||||||
|
"""
|
||||||
|
document = factories.DocumentFactory(title=None)
|
||||||
|
|
||||||
|
# pylint: disable-next=no-member
|
||||||
|
assert len(mail.outbox) == 0
|
||||||
|
|
||||||
|
sender = factories.UserFactory(full_name="Test Sender", email="sender@example.com")
|
||||||
|
document.send_invitation_email(
|
||||||
|
"guest@example.com", models.RoleChoices.EDITOR, sender, "en"
|
||||||
|
)
|
||||||
|
|
||||||
|
# pylint: disable-next=no-member
|
||||||
|
assert len(mail.outbox) == 1
|
||||||
|
|
||||||
|
# pylint: disable-next=no-member
|
||||||
|
email = mail.outbox[0]
|
||||||
|
|
||||||
|
assert email.to == ["guest@example.com"]
|
||||||
|
email_content = " ".join(email.body.split())
|
||||||
|
|
||||||
|
assert "Test sender shared a document with you!" in email.subject
|
||||||
|
assert (
|
||||||
|
"Test Sender (sender@example.com) invited you with the role "editor" "
|
||||||
|
"on the following document: Untitled Document" in email_content
|
||||||
|
)
|
||||||
|
assert f"docs/{document.id}/" in email_content
|
||||||
|
|
||||||
|
|
||||||
def test_models_documents__email_invitation__success_fr():
|
def test_models_documents__email_invitation__success_fr():
|
||||||
"""
|
"""
|
||||||
The email invitation is sent successfully in french.
|
The email invitation is sent successfully in french.
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
<!-- Main Message -->
|
<!-- Main Message -->
|
||||||
<mj-text>
|
<mj-text>
|
||||||
{{message|capfirst}}
|
{{message|capfirst}}
|
||||||
<a href="{{link}}">{{document.title}}</a>
|
<a href="{{link}}">{{document_title}}</a>
|
||||||
</mj-text>
|
</mj-text>
|
||||||
<mj-button
|
<mj-button
|
||||||
href="{{link}}"
|
href="{{link}}"
|
||||||
|
|||||||
Reference in New Issue
Block a user