mirror of
https://github.com/pretix/pretix.git
synced 2026-03-09 13:32:27 +00:00
Compare commits
1 Commits
master
...
improve-pd
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0ce7f580da |
@@ -77,7 +77,7 @@ dependencies = [
|
||||
"phonenumberslite==9.0.*",
|
||||
"Pillow==12.1.*",
|
||||
"pretix-plugin-build",
|
||||
"protobuf==7.34.*",
|
||||
"protobuf==6.33.*",
|
||||
"psycopg2-binary",
|
||||
"pycountry",
|
||||
"pycparser==3.0",
|
||||
@@ -92,7 +92,7 @@ dependencies = [
|
||||
"redis==7.1.*",
|
||||
"reportlab==4.4.*",
|
||||
"requests==2.32.*",
|
||||
"sentry-sdk==2.54.*",
|
||||
"sentry-sdk==2.53.*",
|
||||
"sepaxml==2.7.*",
|
||||
"stripe==7.9.*",
|
||||
"text-unidecode==1.*",
|
||||
|
||||
@@ -148,10 +148,6 @@ class NumberedCanvas(Canvas):
|
||||
self.restoreState()
|
||||
|
||||
|
||||
class InvoiceNotReadyException(Exception):
|
||||
pass
|
||||
|
||||
|
||||
class BaseInvoiceRenderer:
|
||||
"""
|
||||
This is the base class for all invoice renderers.
|
||||
|
||||
@@ -815,13 +815,17 @@ class Renderer:
|
||||
if content not in ('dark', 'white'):
|
||||
content = 'dark'
|
||||
img = finders.find('pretixpresale/pdf/powered_by_pretix_{}.png'.format(content))
|
||||
if not img:
|
||||
logger.exception('Can not find image pretixpresale/pdf/powered_by_pretix_{}.png'.format(content))
|
||||
return
|
||||
|
||||
ir = ThumbnailingImageReader(img)
|
||||
try:
|
||||
width, height = ir.resize(None, float(o['size']) * mm, 300)
|
||||
except:
|
||||
logger.exception("Can not resize image")
|
||||
pass
|
||||
return
|
||||
|
||||
canvas.drawImage(ir,
|
||||
float(o['left']) * mm, float(o['bottom']) * mm,
|
||||
width=width, height=height,
|
||||
|
||||
@@ -51,7 +51,6 @@ from django_scopes import scope, scopes_disabled
|
||||
from i18nfield.strings import LazyI18nString
|
||||
|
||||
from pretix.base.i18n import language
|
||||
from pretix.base.invoicing.pdf import InvoiceNotReadyException
|
||||
from pretix.base.invoicing.transmission import (
|
||||
get_transmission_types, transmission_providers,
|
||||
)
|
||||
@@ -505,7 +504,7 @@ def generate_invoice(order: Order, trigger_pdf=True):
|
||||
return invoice
|
||||
|
||||
|
||||
@app.task(base=TransactionAwareTask, throws=(InvoiceNotReadyException,))
|
||||
@app.task(base=TransactionAwareTask)
|
||||
def invoice_pdf_task(invoice: int):
|
||||
with scopes_disabled():
|
||||
i = Invoice.objects.get(pk=invoice)
|
||||
|
||||
@@ -409,18 +409,6 @@ def mail_send_task(self, **kwargs) -> bool:
|
||||
outgoing_mail.inflight_since = now()
|
||||
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.setdefault('X-PX-Correlation', str(outgoing_mail.guid))
|
||||
email = CustomEmail(
|
||||
|
||||
@@ -24,7 +24,6 @@ import logging
|
||||
from datetime import timedelta
|
||||
from decimal import Decimal
|
||||
|
||||
from django.db.models import Prefetch, prefetch_related_objects
|
||||
from django.dispatch import receiver
|
||||
from django.utils.formats import date_format
|
||||
from django.utils.html import escape, mark_safe
|
||||
@@ -36,7 +35,6 @@ from pretix.base.forms.widgets import format_placeholders_help_text
|
||||
from pretix.base.i18n import (
|
||||
LazyCurrencyNumber, LazyDate, LazyExpiresDate, LazyNumber,
|
||||
)
|
||||
from pretix.base.models import EventMetaValue
|
||||
from pretix.base.reldate import RelativeDateWrapper
|
||||
from pretix.base.settings import PERSON_NAME_SCHEMES, get_name_parts_localized
|
||||
from pretix.base.signals import (
|
||||
@@ -754,11 +752,6 @@ def base_placeholders(sender, **kwargs):
|
||||
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():
|
||||
ph.append(MarkdownTextPlaceholder(
|
||||
'meta_%s' % k, ['event'], lambda event, k=k: event.meta_data[k],
|
||||
|
||||
@@ -4,16 +4,16 @@ msgstr ""
|
||||
"Project-Id-Version: 1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-02-24 11:50+0000\n"
|
||||
"PO-Revision-Date: 2026-03-05 20:00+0000\n"
|
||||
"PO-Revision-Date: 2026-02-19 22:00+0000\n"
|
||||
"Last-Translator: Mie Frydensbjerg <mif@aarhus.dk>\n"
|
||||
"Language-Team: Danish <https://translate.pretix.eu/projects/pretix/pretix/"
|
||||
"da/>\n"
|
||||
"Language-Team: Danish <https://translate.pretix.eu/projects/pretix/pretix/da/"
|
||||
">\n"
|
||||
"Language: da\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.16.1\n"
|
||||
"X-Generator: Weblate 5.16\n"
|
||||
|
||||
#: pretix/_base_settings.py:87
|
||||
msgid "English"
|
||||
@@ -34285,7 +34285,7 @@ msgstr ""
|
||||
#: pretix/presale/templates/pretixpresale/event/voucher.html:293
|
||||
#, python-format
|
||||
msgid "minimum amount to order: %(num)s"
|
||||
msgstr "Minimumsbestilling: %(num)s"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:76
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:160
|
||||
|
||||
@@ -5,8 +5,8 @@ msgstr ""
|
||||
"Project-Id-Version: 1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-02-24 11:50+0000\n"
|
||||
"PO-Revision-Date: 2026-03-07 23:00+0000\n"
|
||||
"Last-Translator: argonimos <jonas@pfeiffer-wagner.de>\n"
|
||||
"PO-Revision-Date: 2026-02-24 12:07+0000\n"
|
||||
"Last-Translator: Raphael Michel <michel@rami.io>\n"
|
||||
"Language-Team: German <https://translate.pretix.eu/projects/pretix/pretix/"
|
||||
"de/>\n"
|
||||
"Language: de\n"
|
||||
@@ -14,7 +14,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.16.2\n"
|
||||
"X-Generator: Weblate 5.16\n"
|
||||
"X-Poedit-Bookmarks: -1,-1,904,-1,-1,-1,-1,-1,-1,-1\n"
|
||||
|
||||
#: pretix/_base_settings.py:87
|
||||
@@ -3845,7 +3845,7 @@ msgstr "Restbetrag"
|
||||
#, python-brace-format
|
||||
msgctxt "invoice"
|
||||
msgid "Invoice period: {daterange}"
|
||||
msgstr "Rechnungsperiode: {daterange}"
|
||||
msgstr "Rechungsperiode: {daterange}"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:1039
|
||||
msgctxt "invoice"
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-02-24 11:50+0000\n"
|
||||
"PO-Revision-Date: 2026-03-09 12:52+0000\n"
|
||||
"PO-Revision-Date: 2026-03-02 10:00+0000\n"
|
||||
"Last-Translator: Hijiri Umemoto <hijiri@umemoto.org>\n"
|
||||
"Language-Team: Japanese <https://translate.pretix.eu/projects/pretix/pretix/"
|
||||
"ja/>\n"
|
||||
@@ -17,7 +17,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Weblate 5.16.2\n"
|
||||
"X-Generator: Weblate 5.16.1\n"
|
||||
|
||||
#: pretix/_base_settings.py:87
|
||||
msgid "English"
|
||||
@@ -11448,7 +11448,7 @@ msgstr ""
|
||||
"{event}のご注文が完了しました。無料製品のみのご注文のため、\n"
|
||||
"お支払いは不要です。\n"
|
||||
"\n"
|
||||
"注文の詳細の変更やステータス確認は、以下のURLから行えます\n"
|
||||
"注文の詳細の変更やステータス確認は、以下のURLから行えます:\n"
|
||||
"{url}\n"
|
||||
"\n"
|
||||
"よろしくお願いいたします。\n"
|
||||
@@ -11750,7 +11750,7 @@ msgstr ""
|
||||
"{event}のご注文のお支払いを受け取りました。\n"
|
||||
"\n"
|
||||
"残念ながら、受け取った金額は必要な全額よりも少ないです。\n"
|
||||
"したがって、追加の **{pending_sum}** の支払いが不足しているため、\n"
|
||||
"したがって、追加の**{pending_sum}**の支払いが不足しているため、\n"
|
||||
"ご注文は未払いと見なされます。\n"
|
||||
"\n"
|
||||
"お支払い情報やご注文の状況は、以下のURLでご確認いただけます。\n"
|
||||
@@ -18428,7 +18428,7 @@ msgid ""
|
||||
"Do you really want to grant the application <strong>%(application)s</strong> "
|
||||
"access to your pretix account?"
|
||||
msgstr ""
|
||||
"本当にアプリケーション<strong>%(application)s</strong>にpretixアカウントへの"
|
||||
"本当にアプリケーション<strong>%(application)s</strong>にPretixアカウントへの"
|
||||
"アクセスを許可しますか?"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/auth/oauth_authorization.html:24
|
||||
@@ -24692,7 +24692,7 @@ msgstr "顧客履歴"
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer_anonymize.html:11
|
||||
#, python-format
|
||||
msgid "Anonymize customer #%(id)s"
|
||||
msgstr "顧客 #%(id)s を匿名化"
|
||||
msgstr "顧客のID #%(id)s を匿名化"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/organizers/customer_anonymize.html:16
|
||||
msgid "Are you sure you want to anonymize this customer account?"
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-02-24 11:50+0000\n"
|
||||
"PO-Revision-Date: 2026-03-09 12:52+0000\n"
|
||||
"PO-Revision-Date: 2026-03-04 16:57+0000\n"
|
||||
"Last-Translator: Ruud Hendrickx <ruud@leckxicon.eu>\n"
|
||||
"Language-Team: Dutch (Belgium) <https://translate.pretix.eu/projects/pretix/"
|
||||
"pretix/nl_BE/>\n"
|
||||
@@ -17,7 +17,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.16.2\n"
|
||||
"X-Generator: Weblate 5.16.1\n"
|
||||
|
||||
#: pretix/_base_settings.py:87
|
||||
msgid "English"
|
||||
@@ -26981,10 +26981,6 @@ msgid ""
|
||||
"the affected data in your legislation, e.g. for reasons of taxation. In many "
|
||||
"countries, you need to keep some data in the live system in case of an audit."
|
||||
msgstr ""
|
||||
"Het is uw eigen verantwoordelijkheid om te controleren of u de gegevens "
|
||||
"volgens uw wetgeving mag verwijderen, bijvoorbeeld om fiscale redenen. In "
|
||||
"veel landen moet u bepaalde gegevens in het livesysteem bewaren voor het "
|
||||
"geval er een audit plaatsvindt."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/shredder/index.html:32
|
||||
msgid ""
|
||||
@@ -26992,87 +26988,81 @@ msgid ""
|
||||
"to store it offline. Some kinds of data (such as some payment information) "
|
||||
"as well as historical log data cannot be downloaded at the moment."
|
||||
msgstr ""
|
||||
"U kunt voor de meeste categorieën de gegevens gedeeltelijk downloaden om ze "
|
||||
"offline op te slaan. Sommige soorten gegevens (bijvoorbeeld sommige "
|
||||
"betalingsinformatie) en historische loggegevens kunnen momenteel niet worden "
|
||||
"gedownload."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/shredder/index.html:46
|
||||
msgid "Data selection"
|
||||
msgstr "Gegevensselectie"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/shredder/index.html:63
|
||||
msgid ""
|
||||
"We recommend not to remove this data because you might need it in case of a "
|
||||
"tax audit."
|
||||
msgstr ""
|
||||
"We raden aan om deze gegevens niet te verwijderen, omdat u ze mogelijk nodig "
|
||||
"hebt bij een belastingaudit."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:10
|
||||
msgctxt "subevent"
|
||||
msgid "Create multiple dates"
|
||||
msgstr "Meerdere datums aanmaken"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:35
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:146
|
||||
msgid "Repetition rule"
|
||||
msgstr "Regel voor herhaling"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:81
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:192
|
||||
#, python-format
|
||||
msgid "Repeat every %(interval)s %(freq)s, starting at %(start)s."
|
||||
msgstr "Herhaal ieder(e) %(interval)s %(freq)s, beginnend op %(start)s."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:258
|
||||
msgctxt "subevent"
|
||||
msgid "Preview"
|
||||
msgstr "Voorbeeldweergave"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:265
|
||||
msgctxt "subevent"
|
||||
msgid "Times"
|
||||
msgstr "Tijden"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:339
|
||||
msgid "Start of first slot"
|
||||
msgstr "Begin van eerste tijdsslot"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:345
|
||||
msgid "End of time slots"
|
||||
msgstr "Einde van tijdsslots"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:351
|
||||
msgid "Length of slots"
|
||||
msgstr "Lengte van tijdsslots"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:360
|
||||
msgid "Break between slots"
|
||||
msgstr "Pauze tussen tijdsslots"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:370
|
||||
msgid "Create"
|
||||
msgstr "Aanmaken"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:377
|
||||
msgid "Add a single time slot"
|
||||
msgstr "Eén tijdsslot toevoegen"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:379
|
||||
msgid "Add many time slots"
|
||||
msgstr "Meerdere tijdsslots toevoegen"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:481
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk_edit.html:266
|
||||
#: pretix/control/templates/pretixcontrol/subevents/detail.html:124
|
||||
msgid "Add a new quota"
|
||||
msgstr "Nieuw quotum toevoegen"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:485
|
||||
#: pretix/control/templates/pretixcontrol/subevents/detail.html:128
|
||||
msgid "Product settings"
|
||||
msgstr "Productinstellingen"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:487
|
||||
#: pretix/control/templates/pretixcontrol/subevents/detail.html:130
|
||||
@@ -27080,8 +27070,6 @@ msgid ""
|
||||
"These settings are optional, if you leave them empty, the default values "
|
||||
"from the product settings will be used."
|
||||
msgstr ""
|
||||
"Deze instellingen zijn optioneel. Als u deze instellingen leeg laat, zullen "
|
||||
"de standaardwaarden uit de productinstellingen worden gebruikt."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:523
|
||||
#: pretix/control/templates/pretixcontrol/subevents/detail.html:166
|
||||
|
||||
12
src/pretix/static/npm_dir/package-lock.json
generated
12
src/pretix/static/npm_dir/package-lock.json
generated
@@ -2776,9 +2776,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/minimatch": {
|
||||
"version": "3.1.5",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
|
||||
"integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
||||
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"brace-expansion": "^1.1.7"
|
||||
@@ -5642,9 +5642,9 @@
|
||||
"optional": true
|
||||
},
|
||||
"minimatch": {
|
||||
"version": "3.1.5",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
|
||||
"integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
||||
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"brace-expansion": "^1.1.7"
|
||||
|
||||
Reference in New Issue
Block a user