mirror of
https://github.com/pretix/pretix.git
synced 2026-02-24 09:42:27 +00:00
Compare commits
1 Commits
error-back
...
mail-perf
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a883f709d0 |
@@ -409,6 +409,18 @@ def mail_send_task(self, **kwargs) -> bool:
|
|||||||
outgoing_mail.inflight_since = now()
|
outgoing_mail.inflight_since = now()
|
||||||
outgoing_mail.save(update_fields=["status", "inflight_since"])
|
outgoing_mail.save(update_fields=["status", "inflight_since"])
|
||||||
|
|
||||||
|
# Performance optimization, saves database queries later on if we resolve the known relationships
|
||||||
|
if outgoing_mail.event_id:
|
||||||
|
assert outgoing_mail.event.organizer_id == outgoing_mail.organizer.pk
|
||||||
|
outgoing_mail.event.organizer = outgoing_mail.organizer
|
||||||
|
if outgoing_mail.order_id:
|
||||||
|
assert outgoing_mail.order.event_id == outgoing_mail.event_id
|
||||||
|
outgoing_mail.order.event = outgoing_mail.event
|
||||||
|
outgoing_mail.order.organizer = outgoing_mail.organizer
|
||||||
|
if outgoing_mail.orderposition_id:
|
||||||
|
assert outgoing_mail.orderposition.order_id == outgoing_mail.order_id
|
||||||
|
outgoing_mail.orderposition.order = outgoing_mail.order
|
||||||
|
|
||||||
headers = dict(outgoing_mail.headers)
|
headers = dict(outgoing_mail.headers)
|
||||||
headers.setdefault('X-PX-Correlation', str(outgoing_mail.guid))
|
headers.setdefault('X-PX-Correlation', str(outgoing_mail.guid))
|
||||||
email = CustomEmail(
|
email = CustomEmail(
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ import logging
|
|||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
from decimal import Decimal
|
from decimal import Decimal
|
||||||
|
|
||||||
|
from django.db.models import Prefetch, prefetch_related_objects
|
||||||
from django.dispatch import receiver
|
from django.dispatch import receiver
|
||||||
from django.utils.formats import date_format
|
from django.utils.formats import date_format
|
||||||
from django.utils.html import escape, mark_safe
|
from django.utils.html import escape, mark_safe
|
||||||
@@ -35,6 +36,7 @@ from pretix.base.forms.widgets import format_placeholders_help_text
|
|||||||
from pretix.base.i18n import (
|
from pretix.base.i18n import (
|
||||||
LazyCurrencyNumber, LazyDate, LazyExpiresDate, LazyNumber,
|
LazyCurrencyNumber, LazyDate, LazyExpiresDate, LazyNumber,
|
||||||
)
|
)
|
||||||
|
from pretix.base.models import EventMetaValue
|
||||||
from pretix.base.reldate import RelativeDateWrapper
|
from pretix.base.reldate import RelativeDateWrapper
|
||||||
from pretix.base.settings import PERSON_NAME_SCHEMES, get_name_parts_localized
|
from pretix.base.settings import PERSON_NAME_SCHEMES, get_name_parts_localized
|
||||||
from pretix.base.signals import (
|
from pretix.base.signals import (
|
||||||
@@ -752,6 +754,11 @@ def base_placeholders(sender, **kwargs):
|
|||||||
name_scheme['sample'][f]
|
name_scheme['sample'][f]
|
||||||
))
|
))
|
||||||
|
|
||||||
|
prefetch_related_objects(
|
||||||
|
[sender],
|
||||||
|
Prefetch('meta_values', queryset=EventMetaValue.objects.select_related("property"), to_attr="meta_values_cached")
|
||||||
|
)
|
||||||
|
prefetch_related_objects([sender.organizer], Prefetch('meta_properties'))
|
||||||
for k, v in sender.meta_data.items():
|
for k, v in sender.meta_data.items():
|
||||||
ph.append(MarkdownTextPlaceholder(
|
ph.append(MarkdownTextPlaceholder(
|
||||||
'meta_%s' % k, ['event'], lambda event, k=k: event.meta_data[k],
|
'meta_%s' % k, ['event'], lambda event, k=k: event.meta_data[k],
|
||||||
|
|||||||
Reference in New Issue
Block a user