diff --git a/bookwyrm/emailing.py b/bookwyrm/emailing.py index c6a197f2..dbf2369e 100644 --- a/bookwyrm/emailing.py +++ b/bookwyrm/emailing.py @@ -10,14 +10,9 @@ from bookwyrm.settings import DOMAIN def email_data(): """fields every email needs""" site = models.SiteSettings.objects.get() - if site.logo_small: - logo_path = f"/images/{site.logo_small.url}" - else: - logo_path = "/static/images/logo-small.png" - return { "site_name": site.name, - "logo": logo_path, + "logo": site.logo_small_url, "domain": DOMAIN, "user": None, } @@ -46,6 +41,18 @@ def password_reset_email(reset_code): send_email.delay(reset_code.user.email, *format_email("password_reset", data)) +def moderation_report_email(report): + """a report was created""" + data = email_data() + data["reporter"] = report.reporter.localname or report.reporter.username + data["reportee"] = report.user.localname or report.user.username + data["report_link"] = report.remote_id + + for admin in models.User.objects.filter(permissions="moderate_user"): + data["user"] = admin.display_name + send_email.delay(admin.email, *format_email("moderation_report", data)) + + def format_email(email_name, data): """render the email templates""" subject = get_template(f"email/{email_name}/subject.html").render(data).strip() diff --git a/bookwyrm/models/site.py b/bookwyrm/models/site.py index 8338fff8..a5d2df4e 100644 --- a/bookwyrm/models/site.py +++ b/bookwyrm/models/site.py @@ -1,5 +1,6 @@ """ the particulars for this instance of BookWyrm """ import datetime +from urllib.parse import urljoin from django.db import models, IntegrityError from django.dispatch import receiver @@ -7,9 +8,10 @@ from django.utils import timezone from model_utils import FieldTracker from bookwyrm.preview_images import generate_site_preview_image_task -from bookwyrm.settings import DOMAIN, ENABLE_PREVIEW_IMAGES +from bookwyrm.settings import DOMAIN, ENABLE_PREVIEW_IMAGES, STATIC_FULL_URL from .base_model import BookWyrmModel, new_access_code from .user import User +from .fields import get_absolute_url class SiteSettings(models.Model): @@ -66,6 +68,13 @@ class SiteSettings(models.Model): default_settings.save() return default_settings + @property + def logo_small_url(self): + """ helper to build the lgoo url """ + if self.logo_small: + return get_absolute_url(self.logo_small) + return urljoin(STATIC_FULL_URL, "images/logo-small.png") + class SiteInvite(models.Model): """gives someone access to create an account on the instance""" diff --git a/bookwyrm/templates/email/html_layout.html b/bookwyrm/templates/email/html_layout.html index 02527ff5..01e2f35c 100644 --- a/bookwyrm/templates/email/html_layout.html +++ b/bookwyrm/templates/email/html_layout.html @@ -2,7 +2,7 @@