diff --git a/h/routes.py b/h/routes.py index a53154761d6..2bb4a831979 100644 --- a/h/routes.py +++ b/h/routes.py @@ -54,6 +54,10 @@ def includeme(config): # noqa: PLR0915 ) config.add_route("admin.mailer", "/admin/mailer") config.add_route("admin.mailer_test", "/admin/mailer/test") + config.add_route( + "admin.mailer.preview.mention_notification", + "/admin/mailer/preview/mention-notification", + ) config.add_route("admin.nipsa", "/admin/nipsa") config.add_route("admin.oauthclients", "/admin/oauthclients") config.add_route("admin.oauthclients_create", "/admin/oauthclients/new") diff --git a/h/views/admin/mailer.py b/h/views/admin/mailer.py index 3754e120393..df04af9c07b 100644 --- a/h/views/admin/mailer.py +++ b/h/views/admin/mailer.py @@ -1,3 +1,5 @@ +from datetime import datetime + from pyramid.httpexceptions import HTTPSeeOther from pyramid.view import view_config @@ -33,3 +35,24 @@ def mailer_test(request): result = mailer.send.delay(*mail) index = request.route_path("admin.mailer", _query={"taskid": result.task_id}) return HTTPSeeOther(location=index) + + +@view_config( + route_name="admin.mailer.preview.mention_notification", + request_method="GET", + permission=Permission.AdminPage.LOW_RISK, + renderer="h:templates/emails/mention_notification.html.jinja2", +) +def preview_mention_notification(request): + return { + "user_url": "https://example.com/user", # TODO + "user_display_name": "Jane Doe", + "annotation_url": "https://example.com/bouncer", # TODO Bouncer link -> annotation deeplink + "document_title": "The title", + "document_url": "https://example.com/document", # TODO Document public URL + "annotation": { + "updated": datetime.now(), + "text": 'Hello @user, how are you?', + "text_rendered": 'Hello @user, how are you?', + }, + }