Compare commits

...
Author SHA1 Message Date
Richard Schreiber 6db9b1711b add client-side csv-file for answer options 2022-11-15 12:56:21 +01:00
Raphael Michel 3d82058269 Do not show internal name in cart tooltips 2022-11-15 09:55:53 +01:00
Richard Schreiber 4f21bf8001 Calendar: add label „continued“ to event’s title 2022-11-15 08:19:41 +01:00
Raphael Michel e32e7e2a50 Add clever handling of plus button in cart with voucher (#2893) 2022-11-14 16:55:39 +01:00
Raphael Michel 5b8228bea0 PPv2: Improve error handling (#2899) 2022-11-14 16:55:30 +01:00
Raphael Michel a628f605a6 Send refund webhooks correctly when refunds are created via API 2022-11-14 12:23:49 +01:00
Martin Gross e658744f67 PPv2: Do not PATCH custom_id and description for APMs (#2898) 2022-11-14 11:46:35 +01:00
Raphael Michel 776c5e9fa2 Set autocomplete="one-time-code" on TOTP field 2022-11-14 10:37:00 +01:00
Raphael Michel 46b5055aec Bump zeep to 4.2.* 2022-11-11 17:01:35 +01:00
Raphael Michel ef227deb2e Bump phonenumberslite to 8.13.* 2022-11-11 17:00:32 +01:00
Raphael Michel 30cfe1ef3c Bump pytest-xdist to 3.0.* 2022-11-11 16:59:46 +01:00
Raphael Michel 4d5c828e2a PDF editor: Update pdfjs from 1.7 to 3.0.279 2022-11-11 16:58:58 +01:00
Raphael Michel f509306b35 PDF editor: Fix browser detection 2022-11-11 16:58:58 +01:00
Richard Schreiber 706e479cff Update vue to 2.7.14 (#2897) 2022-11-11 14:26:16 +01:00
Martin Gross a5be7dcff5 PayPal2: Allow all https-pages to be framed, addressing CSP+popover issues (Z#23111577) 2022-11-10 19:10:03 +01:00
Raphael Michel 845b3a866b Fix switching from SMTP to custom email 2022-11-10 17:38:05 +01:00
Raphael Michel 91e1e079e1 Allow private SMTP servers by default in debug version 2022-11-10 17:38:03 +01:00
Raphael Michel 9075c75a93 Fix test for exception type 2022-11-10 14:59:22 +01:00
Raphael Michel 7b97204f2f Port b9feceba (Do not show a price if there are mandatory non-free addons) to voucher redemption 2022-11-10 14:48:55 +01:00
Raphael Michel dfedf09656 PDF renderer: Normalize unicode before printing text 2022-11-10 13:53:15 +01:00
Raphael Michel 655cfe0afd Bump django-redis to 5.2.* 2022-11-10 09:17:26 +01:00
Raphael Michel faf17f824e Bump django-hijack to 3.2.* 2022-11-10 09:17:26 +01:00
Raphael Michel fbf52a5219 Bump Pillow to 9.3.* 2022-11-10 09:17:26 +01:00
Richard Schreiber 9466c57c35 Translations: Update Greek
Currently translated at 58.2% (2847 of 4888 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/el/

powered by weblate
2022-11-10 09:17:11 +01:00
exbu 806ef8477b Translations: Update Dutch (informal) (nl_Informal)
Currently translated at 82.6% (4040 of 4888 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl_Informal/

powered by weblate
2022-11-10 09:17:11 +01:00
Raphael Michel 7cb654706a Translations: Update German (informal) (de_Informal)
Currently translated at 99.6% (4873 of 4888 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2022-11-10 09:17:11 +01:00
Raphael Michel dea448e0f8 Translations: Update German
Currently translated at 99.6% (4889 of 4904 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2022-11-10 09:17:11 +01:00
Dennis Lichtenthäler 98b413249a Translations: Update German
Currently translated at 100.0% (4889 of 4889 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2022-11-10 09:17:11 +01:00
Raphael Michel 4630c1fe8b Allow to charge a cancellation fee on unpaid orders (#2845) 2022-11-10 09:11:43 +01:00
Raphael Michel bb718375e9 Stripe: Allow to set a custom statement descriptor suffix (#2883) 2022-11-10 09:11:35 +01:00
Martin Gross 7d2dd722bd PayPal: Fix loading of Smart Payment Buttons on APM payment page (regression introduced in #2875) 2022-11-09 15:04:35 +01:00
Raphael Michel 2adbd3cd4a Fix isort complain 2022-11-08 18:24:33 +01:00
Raphael Michel fb483ad00e Add comment to test 2022-11-08 18:07:50 +01:00
Raphael Michel 9cef65f359 API: Fix carts with addons/bundles not being created correctly 2022-11-08 18:03:16 +01:00
Raphael Michel ceeb69856b API: Support is_bundled during order creation 2022-11-08 16:55:35 +01:00
Raphael Michel c184187e59 Improve error handling for CSV parsing in voucher bulk creation 2022-11-08 10:27:31 +01:00
Raphael Michel 8ca38bdbaf Badges: Use ExportError instead of OrderError 2022-11-08 10:24:56 +01:00
Raphael Michel 3ae42b0c57 Update po files
[CI skip]

Signed-off-by: Raphael Michel <michel@rami.io>
2022-11-07 16:22:46 +01:00
Raphael Michel 6368954ecb Translations: Update Ukrainian
Currently translated at 74.1% (3615 of 4878 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/uk/

powered by weblate
2022-11-07 16:22:13 +01:00
Fazenda Dengo 26ebdb7113 Translations: Update Portuguese
Currently translated at 3.8% (187 of 4878 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt/

powered by weblate
2022-11-07 16:22:13 +01:00
Fazenda Dengo a1cb0b386b Translations: Update Portuguese (Portugal)
Currently translated at 63.1% (127 of 201 strings)

Translation: pretix/pretix (JavaScript parts)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/pt_PT/

powered by weblate
2022-11-07 16:22:13 +01:00
Fazenda Dengo d46e1aba52 Translations: Update Portuguese (Portugal)
Currently translated at 76.6% (3737 of 4878 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2022-11-07 16:22:13 +01:00
Dennis Lichtenthäler 1f41184f9e Translations: Update German
Currently translated at 100.0% (4878 of 4878 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2022-11-07 16:22:13 +01:00
dependabot[bot] 2c746dffb2 Bump @babel/preset-env from 7.19.3 to 7.20.2 in /src/pretix/static/npm_dir (#2886)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-07 16:06:25 +01:00
dependabot[bot] 84bd4e0e94 Bump @rollup/plugin-node-resolve from 14.1.0 to 15.0.1 in /src/pretix/static/npm_dir (#2877)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-07 16:06:12 +01:00
Raphael Michel 93f8b38745 SMTP settings: Don't replace password with ***** 2022-11-07 16:05:33 +01:00
Raphael Michel 4110d6ec15 Do some basic cleaning on dynamic subjects 2022-11-07 15:58:18 +01:00
Raphael MichelandRichard Schreiber 9bea383ff0 Make all email subjects configurable (#2884)
Co-authored-by: Richard Schreiber <schreiber@rami.io>
2022-11-07 15:50:09 +01:00
Raphael Michel 2287c8b34c Bump django-filter to 22.1 2022-11-07 15:35:31 +01:00
Raphael Michel f7a129854e Bump pytest-mock to 3.10 2022-11-07 15:35:31 +01:00
Raphael Michel a96fccef63 Bump pyjwt to 2.6.* 2022-11-07 15:35:31 +01:00
Raphael Michel dc5a85b39e PDF: Fix another crash if unknown font is used
see also PRETIXEU-7K4
2022-11-07 15:35:31 +01:00
dependabot[bot] 23f9fb4a9a Bump @rollup/plugin-babel in /src/pretix/static/npm_dir
Bumps [@rollup/plugin-babel](https://github.com/rollup/plugins/tree/HEAD/packages/babel) from 5.3.1 to 6.0.2.
- [Release notes](https://github.com/rollup/plugins/releases)
- [Changelog](https://github.com/rollup/plugins/blob/master/packages/babel/CHANGELOG.md)
- [Commits](https://github.com/rollup/plugins/commits/babel-v6.0.2/packages/babel)

---
updated-dependencies:
- dependency-name: "@rollup/plugin-babel"
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-07 15:33:54 +01:00
dependabot[bot] 6130c45b3e Bump vue and vue-template-compiler in /src/pretix/static/npm_dir
Bumps [vue](https://github.com/vuejs/core) and [vue-template-compiler](https://github.com/vuejs/vue). These dependencies needed to be updated together.

Updates `vue` from 2.7.10 to 2.7.13
- [Release notes](https://github.com/vuejs/core/releases)
- [Changelog](https://github.com/vuejs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/core/commits)

Updates `vue-template-compiler` from 2.7.10 to 2.7.13
- [Release notes](https://github.com/vuejs/vue/releases)
- [Changelog](https://github.com/vuejs/vue/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue/compare/v2.7.10...v2.7.13)

---
updated-dependencies:
- dependency-name: vue
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: vue-template-compiler
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-07 15:33:44 +01:00
dependabot[bot] 83840c4024 Bump @babel/core from 7.19.3 to 7.19.6 in /src/pretix/static/npm_dir (#2880)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-07 15:33:33 +01:00
Maciej Szymczak 02d1d1e0c3 Translations: Update Polish
Currently translated at 14.1% (688 of 4878 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pl/

powered by weblate
2022-11-07 09:08:18 +01:00
Maciej Szymczak f641f0fdd1 Translations: Update Polish
Currently translated at 13.8% (677 of 4878 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pl/

powered by weblate
2022-11-07 09:08:18 +01:00
Raphael Michel 0c827c94a8 Fix mail text preview for languages down below in the list 2022-11-04 13:18:07 +01:00
Raphael Michel 4fb76f1b55 API: Fix overriding date_admission during event clone 2022-11-04 10:39:21 +01:00
Raphael Michel cb3b1f3ac5 API: Add discount to order position serializer 2022-11-03 15:29:20 +01:00
Richard Schreiber 0b95f89882 Fix paypal disabling continue button (Z#23110784) (#2875) 2022-11-03 13:27:30 +01:00
Raphael Michel bccd7cd1a4 API: Fix setting plugins during event creation 2022-11-01 18:39:01 +01:00
Richard Schreiber 9c33078a40 Fix isort error 2022-11-01 17:15:27 +01:00
Raphael Michel 6403e5370a Don't crash if a exporter signal returns None 2022-11-01 13:40:22 +01:00
Raphael Michel 3fe2a0455f Fix crash in CartManager 2022-11-01 12:14:30 +01:00
pretix translation botandRaphael Michel 6956b198ae Update translations (#2874)
Co-authored-by: Raphael Michel <michel@rami.io>
2022-11-01 11:27:26 +01:00
Raphael Michel 36f7a3d3a3 Update po files
[CI skip]

Signed-off-by: Raphael Michel <michel@rami.io>
2022-10-31 16:56:46 +01:00
Fazenda Dengo 587e1a1c96 Translations: Update Portuguese (Portugal)
Currently translated at 76.6% (3737 of 4877 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2022-10-31 16:56:14 +01:00
Raphael Michel 8707ab5277 Use a more human-friendly file name for calendar attachments 2022-10-31 16:55:49 +01:00
Raphael Michel 4f6fa84fa7 Fix locking timeout no longer working after redis version change 2022-10-31 16:02:42 +01:00
Raphael Michel e76d13bf8e Improve logging of periodic command errors 2022-10-31 15:23:32 +01:00
Raphael Michel 39449ecbbe Sentry: Set propagate_traces=False 2022-10-31 14:13:59 +01:00
Raphael Michel 0204b42587 Revert "Attempt downgrade to sentry-sdk 1.8.*"
This reverts commit c1d1e437cc.
2022-10-31 14:10:11 +01:00
Raphael Michel c1d1e437cc Attempt downgrade to sentry-sdk 1.8.* 2022-10-31 12:30:03 +01:00
Raphael Michel 2fe0ceb4c7 PDF: Fail gracefully on unknown font 2022-10-31 09:53:06 +01:00
Raphael Michel 4cba292b57 Bump to 4.15.0.dev0 2022-10-28 13:34:05 +02:00
147 changed files with 116597 additions and 94416 deletions
+5
View File
@@ -178,6 +178,7 @@ tax_rule integer The ID of the u
secret string Secret code printed on the tickets for validation secret string Secret code printed on the tickets for validation
addon_to integer Internal ID of the position this position is an add-on for (or ``null``) addon_to integer Internal ID of the position this position is an add-on for (or ``null``)
subevent integer ID of the date inside an event series this position belongs to (or ``null``). subevent integer ID of the date inside an event series this position belongs to (or ``null``).
discount integer ID of a discount that has been used during the creation of this position in some way (or ``null``).
pseudonymization_id string A random ID, e.g. for use in lead scanning apps pseudonymization_id string A random ID, e.g. for use in lead scanning apps
checkins list of objects List of **successful** check-ins with this ticket checkins list of objects List of **successful** check-ins with this ticket
├ id integer Internal ID of the check-in event ├ id integer Internal ID of the check-in event
@@ -371,6 +372,7 @@ List of all orders
"secret": "z3fsn8jyufm5kpk768q69gkbyr5f4h6w", "secret": "z3fsn8jyufm5kpk768q69gkbyr5f4h6w",
"addon_to": null, "addon_to": null,
"subevent": null, "subevent": null,
"discount": null,
"pseudonymization_id": "MQLJvANO3B", "pseudonymization_id": "MQLJvANO3B",
"seat": null, "seat": null,
"checkins": [ "checkins": [
@@ -546,6 +548,7 @@ Fetching individual orders
"secret": "z3fsn8jyufm5kpk768q69gkbyr5f4h6w", "secret": "z3fsn8jyufm5kpk768q69gkbyr5f4h6w",
"addon_to": null, "addon_to": null,
"subevent": null, "subevent": null,
"discount": null,
"pseudonymization_id": "MQLJvANO3B", "pseudonymization_id": "MQLJvANO3B",
"seat": null, "seat": null,
"checkins": [ "checkins": [
@@ -1487,6 +1490,7 @@ List of all order positions
"tax_rule": null, "tax_rule": null,
"tax_value": "0.00", "tax_value": "0.00",
"secret": "z3fsn8jyufm5kpk768q69gkbyr5f4h6w", "secret": "z3fsn8jyufm5kpk768q69gkbyr5f4h6w",
"discount": null,
"pseudonymization_id": "MQLJvANO3B", "pseudonymization_id": "MQLJvANO3B",
"seat": null, "seat": null,
"addon_to": null, "addon_to": null,
@@ -1597,6 +1601,7 @@ Fetching individual positions
"secret": "z3fsn8jyufm5kpk768q69gkbyr5f4h6w", "secret": "z3fsn8jyufm5kpk768q69gkbyr5f4h6w",
"addon_to": null, "addon_to": null,
"subevent": null, "subevent": null,
"discount": null,
"pseudonymization_id": "MQLJvANO3B", "pseudonymization_id": "MQLJvANO3B",
"seat": null, "seat": null,
"checkins": [ "checkins": [
+1 -1
View File
@@ -19,4 +19,4 @@
# You should have received a copy of the GNU Affero General Public License along with this program. If not, see # You should have received a copy of the GNU Affero General Public License along with this program. If not, see
# <https://www.gnu.org/licenses/>. # <https://www.gnu.org/licenses/>.
# #
__version__ = "4.14.0" __version__ = "4.15.0.dev0"
+2
View File
@@ -237,12 +237,14 @@ class CartPositionCreateSerializer(BaseCartPositionCreateSerializer):
for addon_data in addons_data: for addon_data in addons_data:
addon_data['addon_to'] = cp addon_data['addon_to'] = cp
addon_data['is_bundled'] = False addon_data['is_bundled'] = False
addon_data['cart_id'] = cp.cart_id
super().create(addon_data) super().create(addon_data)
if bundled_data: if bundled_data:
for bundle_data in bundled_data: for bundle_data in bundled_data:
bundle_data['addon_to'] = cp bundle_data['addon_to'] = cp
bundle_data['is_bundled'] = True bundle_data['is_bundled'] = True
bundle_data['cart_id'] = cp.cart_id
super().create(bundle_data) super().create(bundle_data)
return cp return cp
+8
View File
@@ -411,6 +411,7 @@ class CloneEventSerializer(EventSerializer):
has_subevents = validated_data.pop('has_subevents', None) has_subevents = validated_data.pop('has_subevents', None)
tz = validated_data.pop('timezone', None) tz = validated_data.pop('timezone', None)
sales_channels = validated_data.pop('sales_channels', None) sales_channels = validated_data.pop('sales_channels', None)
date_admission = validated_data.pop('date_admission', None)
new_event = super().create({**validated_data, 'plugins': None}) new_event = super().create({**validated_data, 'plugins': None})
event = Event.objects.filter(slug=self.context['event'], organizer=self.context['organizer'].pk).first() event = Event.objects.filter(slug=self.context['event'], organizer=self.context['organizer'].pk).first()
@@ -426,6 +427,10 @@ class CloneEventSerializer(EventSerializer):
new_event.sales_channels = sales_channels new_event.sales_channels = sales_channels
if has_subevents is not None: if has_subevents is not None:
new_event.has_subevents = has_subevents new_event.has_subevents = has_subevents
if has_subevents is not None:
new_event.has_subevents = has_subevents
if date_admission is not None:
new_event.date_admission = date_admission
new_event.save() new_event.save()
if tz: if tz:
new_event.settings.timezone = tz new_event.settings.timezone = tz
@@ -755,6 +760,9 @@ class EventSettingsSerializer(SettingsSerializer):
'invoice_logo_image', 'invoice_logo_image',
'cancel_allow_user', 'cancel_allow_user',
'cancel_allow_user_until', 'cancel_allow_user_until',
'cancel_allow_user_unpaid_keep',
'cancel_allow_user_unpaid_keep_fees',
'cancel_allow_user_unpaid_keep_percentage',
'cancel_allow_user_paid', 'cancel_allow_user_paid',
'cancel_allow_user_paid_until', 'cancel_allow_user_paid_until',
'cancel_allow_user_paid_keep', 'cancel_allow_user_paid_keep',
+3 -3
View File
@@ -410,13 +410,13 @@ class OrderPositionSerializer(I18nAwareModelSerializer):
class Meta: class Meta:
model = OrderPosition model = OrderPosition
fields = ('id', 'order', 'positionid', 'item', 'variation', 'price', 'attendee_name', 'attendee_name_parts', fields = ('id', 'order', 'positionid', 'item', 'variation', 'price', 'attendee_name', 'attendee_name_parts',
'company', 'street', 'zipcode', 'city', 'country', 'state', 'company', 'street', 'zipcode', 'city', 'country', 'state', 'discount',
'attendee_email', 'voucher', 'tax_rate', 'tax_value', 'secret', 'addon_to', 'subevent', 'checkins', 'attendee_email', 'voucher', 'tax_rate', 'tax_value', 'secret', 'addon_to', 'subevent', 'checkins',
'downloads', 'answers', 'tax_rule', 'pseudonymization_id', 'pdf_data', 'seat', 'canceled') 'downloads', 'answers', 'tax_rule', 'pseudonymization_id', 'pdf_data', 'seat', 'canceled')
read_only_fields = ( read_only_fields = (
'id', 'order', 'positionid', 'item', 'variation', 'price', 'voucher', 'tax_rate', 'tax_value', 'secret', 'id', 'order', 'positionid', 'item', 'variation', 'price', 'voucher', 'tax_rate', 'tax_value', 'secret',
'addon_to', 'subevent', 'checkins', 'downloads', 'answers', 'tax_rule', 'pseudonymization_id', 'pdf_data', 'addon_to', 'subevent', 'checkins', 'downloads', 'answers', 'tax_rule', 'pseudonymization_id', 'pdf_data',
'seat', 'canceled' 'seat', 'canceled', 'discount',
) )
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
@@ -721,7 +721,7 @@ class OrderPositionCreateSerializer(I18nAwareModelSerializer):
class Meta: class Meta:
model = OrderPosition model = OrderPosition
fields = ('positionid', 'item', 'variation', 'price', 'attendee_name', 'attendee_name_parts', 'attendee_email', fields = ('positionid', 'item', 'variation', 'price', 'attendee_name', 'attendee_name_parts', 'attendee_email',
'company', 'street', 'zipcode', 'city', 'country', 'state', 'company', 'street', 'zipcode', 'city', 'country', 'state', 'is_bundled',
'secret', 'addon_to', 'subevent', 'answers', 'seat', 'voucher') 'secret', 'addon_to', 'subevent', 'answers', 'seat', 'voucher')
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
+6 -4
View File
@@ -33,6 +33,7 @@
# License for the specific language governing permissions and limitations under the License. # License for the specific language governing permissions and limitations under the License.
import django_filters import django_filters
from django.conf import settings
from django.db import transaction from django.db import transaction
from django.db.models import Prefetch, ProtectedError, Q from django.db.models import Prefetch, ProtectedError, Q
from django.utils.timezone import now from django.utils.timezone import now
@@ -250,7 +251,7 @@ class EventViewSet(viewsets.ModelViewSet):
if copy_from: if copy_from:
new_event.copy_data_from(copy_from) new_event.copy_data_from(copy_from)
if plugins: if plugins is not None:
new_event.set_active_plugins(plugins) new_event.set_active_plugins(plugins)
if 'is_public' in serializer.validated_data: if 'is_public' in serializer.validated_data:
new_event.is_public = serializer.validated_data['is_public'] new_event.is_public = serializer.validated_data['is_public']
@@ -260,15 +261,16 @@ class EventViewSet(viewsets.ModelViewSet):
new_event.sales_channels = serializer.validated_data['sales_channels'] new_event.sales_channels = serializer.validated_data['sales_channels']
if 'has_subevents' in serializer.validated_data: if 'has_subevents' in serializer.validated_data:
new_event.has_subevents = serializer.validated_data['has_subevents'] new_event.has_subevents = serializer.validated_data['has_subevents']
if 'date_admission' in serializer.validated_data:
new_event.date_admission = serializer.validated_data['date_admission']
new_event.save() new_event.save()
if 'timezone' in serializer.validated_data: if 'timezone' in serializer.validated_data:
new_event.settings.timezone = serializer.validated_data['timezone'] new_event.settings.timezone = serializer.validated_data['timezone']
else: else:
serializer.instance.set_defaults() serializer.instance.set_defaults()
if plugins: new_event.set_active_plugins(plugins if plugins is not None else settings.PRETIX_PLUGINS_DEFAULT.split(','))
new_event.set_active_plugins(plugins) new_event.save(update_fields=['plugins'])
new_event.save(update_fields=['plugins'])
serializer.instance.log_action( serializer.instance.log_action(
'pretix.event.added', 'pretix.event.added',
+19 -3
View File
@@ -680,28 +680,33 @@ class OrderViewSet(viewsets.ModelViewSet):
) )
if order.require_approval: if order.require_approval:
email_template = request.event.settings.mail_text_order_placed_require_approval email_template = request.event.settings.mail_text_order_placed_require_approval
subject_template = request.event.settings.mail_subject_order_placed_require_approval
log_entry = 'pretix.event.order.email.order_placed_require_approval' log_entry = 'pretix.event.order.email.order_placed_require_approval'
email_attendees = False email_attendees = False
elif free_flow: elif free_flow:
email_template = request.event.settings.mail_text_order_free email_template = request.event.settings.mail_text_order_free
subject_template = request.event.settings.mail_subject_order_free
log_entry = 'pretix.event.order.email.order_free' log_entry = 'pretix.event.order.email.order_free'
email_attendees = request.event.settings.mail_send_order_free_attendee email_attendees = request.event.settings.mail_send_order_free_attendee
email_attendees_template = request.event.settings.mail_text_order_free_attendee email_attendees_template = request.event.settings.mail_text_order_free_attendee
subject_attendees_template = request.event.settings.mail_subject_order_free_attendee
else: else:
email_template = request.event.settings.mail_text_order_placed email_template = request.event.settings.mail_text_order_placed
subject_template = request.event.settings.mail_subject_order_placed
log_entry = 'pretix.event.order.email.order_placed' log_entry = 'pretix.event.order.email.order_placed'
email_attendees = request.event.settings.mail_send_order_placed_attendee email_attendees = request.event.settings.mail_send_order_placed_attendee
email_attendees_template = request.event.settings.mail_text_order_placed_attendee email_attendees_template = request.event.settings.mail_text_order_placed_attendee
subject_attendees_template = request.event.settings.mail_subject_order_placed_attendee
_order_placed_email( _order_placed_email(
request.event, order, payment.payment_provider if payment else None, email_template, request.event, order, payment.payment_provider if payment else None, email_template, subject_template,
log_entry, invoice, payment, is_free=free_flow log_entry, invoice, payment, is_free=free_flow
) )
if email_attendees: if email_attendees:
for p in order.positions.all(): for p in order.positions.all():
if p.addon_to_id is None and p.attendee_email and p.attendee_email != order.email: if p.addon_to_id is None and p.attendee_email and p.attendee_email != order.email:
_order_placed_email_attendee(request.event, order, p, email_attendees_template, log_entry, _order_placed_email_attendee(request.event, order, p, email_attendees_template, subject_attendees_template,
is_free=free_flow) log_entry, is_free=free_flow)
if not free_flow and order.status == Order.STATUS_PAID and payment: if not free_flow and order.status == Order.STATUS_PAID and payment:
payment._send_paid_mail(invoice, None, '') payment._send_paid_mail(invoice, None, '')
@@ -1605,6 +1610,17 @@ class RefundViewSet(CreateModelMixin, viewsets.ReadOnlyModelViewSet):
user=request.user if request.user.is_authenticated else None, user=request.user if request.user.is_authenticated else None,
auth=request.auth auth=request.auth
) )
if r.state in (OrderRefund.REFUND_STATE_DONE, OrderRefund.REFUND_STATE_CANCELED, OrderRefund.REFUND_STATE_FAILED):
r.order.log_action(
f'pretix.event.order.refund.{r.state}', {
'local_id': r.local_id,
'provider': r.provider,
},
user=request.user if request.user.is_authenticated else None,
auth=request.auth
)
if mark_refunded: if mark_refunded:
try: try:
mark_order_refunded( mark_order_refunded(
@@ -103,6 +103,8 @@ class Command(BaseCommand):
with language(locale), override(timezone): with language(locale), override(timezone):
for receiver, response in signal_result: for receiver, response in signal_result:
if not response:
return None
ex = response(e, o, report_status) ex = response(e, o, report_status)
if ex.identifier == options['export_provider']: if ex.identifier == options['export_provider']:
params = json.loads(options.get('parameters') or '{}') params = json.loads(options.get('parameters') or '{}')
@@ -79,9 +79,9 @@ class Command(BaseCommand):
if settings.SENTRY_ENABLED: if settings.SENTRY_ENABLED:
from sentry_sdk import capture_exception from sentry_sdk import capture_exception
capture_exception(err) capture_exception(err)
self.stdout.write(self.style.ERROR(f'ERROR runperiodic {str(err)}\n')) self.stdout.write(self.style.ERROR(f'ERROR {name}: {str(err)}\n'))
else: else:
self.stdout.write(self.style.ERROR(f'ERROR runperiodic {str(err)}\n')) self.stdout.write(self.style.ERROR(f'ERROR {name}: {str(err)}\n'))
traceback.print_exc() traceback.print_exc()
else: else:
if options.get('verbosity') > 1: if options.get('verbosity') > 1:
+1 -1
View File
@@ -262,7 +262,7 @@ class Customer(LoggedModel):
) + '?id=' + self.identifier + '&token=' + token ) + '?id=' + self.identifier + '&token=' + token
mail( mail(
self.email, self.email,
_('Activate your account at {organizer}').format(organizer=self.organizer.name), self.organizer.settings.mail_subject_customer_registration,
self.organizer.settings.mail_text_customer_registration, self.organizer.settings.mail_text_customer_registration,
ctx, ctx,
locale=self.locale, locale=self.locale,
+31 -16
View File
@@ -564,17 +564,30 @@ class Order(LockModel, LoggedModel):
@cached_property @cached_property
def user_cancel_fee(self): def user_cancel_fee(self):
fee = Decimal('0.00') fee = Decimal('0.00')
if self.event.settings.cancel_allow_user_paid_keep_fees: if self.status == Order.STATUS_PAID:
fee += self.fees.filter( if self.event.settings.cancel_allow_user_paid_keep_fees:
fee_type__in=(OrderFee.FEE_TYPE_PAYMENT, OrderFee.FEE_TYPE_SHIPPING, OrderFee.FEE_TYPE_SERVICE, fee += self.fees.filter(
OrderFee.FEE_TYPE_CANCELLATION) fee_type__in=(OrderFee.FEE_TYPE_PAYMENT, OrderFee.FEE_TYPE_SHIPPING, OrderFee.FEE_TYPE_SERVICE,
).aggregate( OrderFee.FEE_TYPE_CANCELLATION)
s=Sum('value') ).aggregate(
)['s'] or 0 s=Sum('value')
if self.event.settings.cancel_allow_user_paid_keep_percentage: )['s'] or 0
fee += self.event.settings.cancel_allow_user_paid_keep_percentage / Decimal('100.0') * (self.total - fee) if self.event.settings.cancel_allow_user_paid_keep_percentage:
if self.event.settings.cancel_allow_user_paid_keep: fee += self.event.settings.cancel_allow_user_paid_keep_percentage / Decimal('100.0') * (self.total - fee)
fee += self.event.settings.cancel_allow_user_paid_keep if self.event.settings.cancel_allow_user_paid_keep:
fee += self.event.settings.cancel_allow_user_paid_keep
else:
if self.event.settings.cancel_allow_user_unpaid_keep_fees:
fee += self.fees.filter(
fee_type__in=(OrderFee.FEE_TYPE_PAYMENT, OrderFee.FEE_TYPE_SHIPPING, OrderFee.FEE_TYPE_SERVICE,
OrderFee.FEE_TYPE_CANCELLATION)
).aggregate(
s=Sum('value')
)['s'] or 0
if self.event.settings.cancel_allow_user_unpaid_keep_percentage:
fee += self.event.settings.cancel_allow_user_unpaid_keep_percentage / Decimal('100.0') * (self.total - fee)
if self.event.settings.cancel_allow_user_unpaid_keep:
fee += self.event.settings.cancel_allow_user_unpaid_keep
return round_decimal(min(fee, self.total), self.event.currency) return round_decimal(min(fee, self.total), self.event.currency)
@property @property
@@ -642,10 +655,12 @@ class Order(LockModel, LoggedModel):
if self.user_cancel_deadline and now() > self.user_cancel_deadline: if self.user_cancel_deadline and now() > self.user_cancel_deadline:
return False return False
if self.status == Order.STATUS_PAID or self.payment_refund_sum > Decimal('0.00'): if self.status == Order.STATUS_PAID:
if self.total == Decimal('0.00'): if self.total == Decimal('0.00'):
return self.event.settings.cancel_allow_user return self.event.settings.cancel_allow_user
return self.event.settings.cancel_allow_user_paid return self.event.settings.cancel_allow_user_paid
elif self.payment_refund_sum > Decimal('0.00'):
return False
elif self.status == Order.STATUS_PENDING: elif self.status == Order.STATUS_PENDING:
return self.event.settings.cancel_allow_user return self.event.settings.cancel_allow_user
return False return False
@@ -1027,7 +1042,7 @@ class Order(LockModel, LoggedModel):
with language(self.locale, self.event.settings.region): with language(self.locale, self.event.settings.region):
email_template = self.event.settings.mail_text_resend_link email_template = self.event.settings.mail_text_resend_link
email_context = get_email_context(event=self.event, order=self) email_context = get_email_context(event=self.event, order=self)
email_subject = _('Your order: %(code)s') % {'code': self.code} email_subject = self.event.settings.mail_subject_resend_link
self.send_mail( self.send_mail(
email_subject, email_template, email_context, email_subject, email_template, email_context,
'pretix.event.order.email.resend', user=user, auth=auth, 'pretix.event.order.email.resend', user=user, auth=auth,
@@ -1738,8 +1753,8 @@ class OrderPayment(models.Model):
with language(self.order.locale, self.order.event.settings.region): with language(self.order.locale, self.order.event.settings.region):
email_template = self.order.event.settings.mail_text_order_paid_attendee email_template = self.order.event.settings.mail_text_order_paid_attendee
email_subject = self.order.event.settings.mail_subject_order_paid_attendee
email_context = get_email_context(event=self.order.event, order=self.order, position=position) email_context = get_email_context(event=self.order.event, order=self.order, position=position)
email_subject = _('Event registration confirmed: %(code)s') % {'code': self.order.code}
try: try:
position.send_mail( position.send_mail(
email_subject, email_template, email_context, email_subject, email_template, email_context,
@@ -1756,8 +1771,8 @@ class OrderPayment(models.Model):
with language(self.order.locale, self.order.event.settings.region): with language(self.order.locale, self.order.event.settings.region):
email_template = self.order.event.settings.mail_text_order_paid email_template = self.order.event.settings.mail_text_order_paid
email_subject = self.order.event.settings.mail_subject_order_paid
email_context = get_email_context(event=self.order.event, order=self.order, payment_info=mail_text) email_context = get_email_context(event=self.order.event, order=self.order, payment_info=mail_text)
email_subject = _('Payment received for your order: %(code)s') % {'code': self.order.code}
try: try:
self.order.send_mail( self.order.send_mail(
email_subject, email_template, email_context, email_subject, email_template, email_context,
@@ -2437,7 +2452,7 @@ class OrderPosition(AbstractPosition):
with language(self.order.locale, self.order.event.settings.region): with language(self.order.locale, self.order.event.settings.region):
email_template = self.event.settings.mail_text_resend_link email_template = self.event.settings.mail_text_resend_link
email_context = get_email_context(event=self.order.event, order=self.order, position=self) email_context = get_email_context(event=self.order.event, order=self.order, position=self)
email_subject = _('Your event registration: %(code)s') % {'code': self.order.code} email_subject = self.event.settings.mail_subject_resend_link
self.send_mail( self.send_mail(
email_subject, email_template, email_context, email_subject, email_template, email_context,
'pretix.event.order.email.resend', user=user, auth=auth, 'pretix.event.order.email.resend', user=user, auth=auth,
+1 -1
View File
@@ -216,7 +216,7 @@ class WaitingListEntry(LoggedModel):
with language(self.locale, self.event.settings.region): with language(self.locale, self.event.settings.region):
mail( mail(
self.email, self.email,
_('You have been selected from the waitinglist for {event}').format(event=str(self.event)), self.event.settings.mail_subject_waiting_list,
self.event.settings.mail_text_waiting_list, self.event.settings.mail_text_waiting_list,
get_email_context(event=self.event, waiting_list_entry=self), get_email_context(event=self.event, waiting_list_entry=self),
self.event, self.event,
+11 -1
View File
@@ -40,6 +40,7 @@ import os
import re import re
import subprocess import subprocess
import tempfile import tempfile
import unicodedata
import uuid import uuid
from collections import OrderedDict from collections import OrderedDict
from functools import partial from functools import partial
@@ -827,6 +828,13 @@ class Renderer:
if o['italic']: if o['italic']:
font += ' I' font += ' I'
try:
ad = getAscentDescent(font, float(o['fontsize']))
except KeyError: # font not known, fall back
logger.warning(f'Use of unknown font "{font}"')
font = 'Open Sans'
ad = getAscentDescent(font, float(o['fontsize']))
align_map = { align_map = {
'left': TA_LEFT, 'left': TA_LEFT,
'center': TA_CENTER, 'center': TA_CENTER,
@@ -853,10 +861,12 @@ class Renderer:
except: except:
logger.exception('Reshaping/Bidi fixes failed on string {}'.format(repr(text))) logger.exception('Reshaping/Bidi fixes failed on string {}'.format(repr(text)))
# reportlab does not support unicode combination characters
text = unicodedata.normalize("NFKC", text)
p = Paragraph(text, style=style) p = Paragraph(text, style=style)
w, h = p.wrapOn(canvas, float(o['width']) * mm, 1000 * mm) w, h = p.wrapOn(canvas, float(o['width']) * mm, 1000 * mm)
# p_size = p.wrap(float(o['width']) * mm, 1000 * mm) # p_size = p.wrap(float(o['width']) * mm, 1000 * mm)
ad = getAscentDescent(font, float(o['fontsize']))
canvas.saveState() canvas.saveState()
# The ascent/descent offsets here are not really proven to be correct, they're just empirical values to get # The ascent/descent offsets here are not really proven to be correct, they're just empirical values to get
# reportlab render similarly to browser canvas. # reportlab render similarly to browser canvas.
+29 -3
View File
@@ -195,7 +195,7 @@ class CartManager:
AddOperation = namedtuple('AddOperation', ('count', 'item', 'variation', 'voucher', 'quotas', AddOperation = namedtuple('AddOperation', ('count', 'item', 'variation', 'voucher', 'quotas',
'addon_to', 'subevent', 'bundled', 'seat', 'listed_price', 'addon_to', 'subevent', 'bundled', 'seat', 'listed_price',
'price_after_voucher', 'custom_price_input', 'price_after_voucher', 'custom_price_input',
'custom_price_input_is_net')) 'custom_price_input_is_net', 'voucher_ignored'))
RemoveOperation = namedtuple('RemoveOperation', ('position',)) RemoveOperation = namedtuple('RemoveOperation', ('position',))
VoucherOperation = namedtuple('VoucherOperation', ('position', 'voucher', 'price_after_voucher')) VoucherOperation = namedtuple('VoucherOperation', ('position', 'voucher', 'price_after_voucher'))
ExtendOperation = namedtuple('ExtendOperation', ('position', 'count', 'item', 'variation', 'voucher', ExtendOperation = namedtuple('ExtendOperation', ('position', 'count', 'item', 'variation', 'voucher',
@@ -330,12 +330,16 @@ class CartManager:
(isinstance(op, self.ExtendOperation) and op.position.is_bundled) (isinstance(op, self.ExtendOperation) and op.position.is_bundled)
): ):
if op.item.require_voucher and op.voucher is None: if op.item.require_voucher and op.voucher is None:
if getattr(op, 'voucher_ignored', False):
raise CartError(error_messages['voucher_redeemed'])
raise CartError(error_messages['voucher_required']) raise CartError(error_messages['voucher_required'])
if ( if (
(op.item.hide_without_voucher or (op.variation and op.variation.hide_without_voucher)) and (op.item.hide_without_voucher or (op.variation and op.variation.hide_without_voucher)) and
(op.voucher is None or not op.voucher.show_hidden_items) (op.voucher is None or not op.voucher.show_hidden_items)
): ):
if getattr(op, 'voucher_ignored', False):
raise CartError(error_messages['voucher_redeemed'])
raise CartError(error_messages['voucher_required']) raise CartError(error_messages['voucher_required'])
if not op.item.is_available() or (op.variation and not op.variation.is_available()): if not op.item.is_available() or (op.variation and not op.variation.is_available()):
@@ -480,7 +484,7 @@ class CartManager:
self._check_item_constraints(op) self._check_item_constraints(op)
if cp.voucher: if cp.voucher:
self._voucher_use_diff[cp.voucher] += 1 self._voucher_use_diff[cp.voucher] += 2
self._operations.append(op) self._operations.append(op)
return err return err
@@ -586,6 +590,7 @@ class CartManager:
item = self._items_cache[i['item']] item = self._items_cache[i['item']]
variation = self._variations_cache[i['variation']] if i['variation'] is not None else None variation = self._variations_cache[i['variation']] if i['variation'] is not None else None
voucher = None voucher = None
voucher_ignored = False
if i.get('voucher'): if i.get('voucher'):
try: try:
@@ -595,6 +600,24 @@ class CartManager:
else: else:
voucher_use_diff[voucher] += i['count'] voucher_use_diff[voucher] += i['count']
if i.get('voucher_ignore_if_redeemed', False):
# This is a special case handling for when a user clicks "+" on an existing line in their cart
# that has a voucher attached. If the voucher still has redemptions left, we'll add another line
# with the same voucher, but if it does not we silently continue as if there was no voucher,
# leading to either a higher-priced ticket or an error. Still, this leads to less error cases
# than either of the possible default assumptions.
predicted_redeemed_after = (
voucher.redeemed +
CartPosition.objects.filter(voucher=voucher, expires__gte=self.now_dt).count() +
self._voucher_use_diff[voucher] +
voucher_use_diff[voucher]
)
if predicted_redeemed_after > voucher.max_usages:
i.pop('voucher')
voucher_ignored = True
voucher = None
voucher_use_diff[voucher] -= i['count']
# Fetch all quotas. If there are no quotas, this item is not allowed to be sold. # Fetch all quotas. If there are no quotas, this item is not allowed to be sold.
quotas = list(item.quotas.filter(subevent=subevent) quotas = list(item.quotas.filter(subevent=subevent)
if variation is None else variation.quotas.filter(subevent=subevent)) if variation is None else variation.quotas.filter(subevent=subevent))
@@ -641,6 +664,7 @@ class CartManager:
price_after_voucher=bundle.designated_price, price_after_voucher=bundle.designated_price,
custom_price_input=None, custom_price_input=None,
custom_price_input_is_net=False, custom_price_input_is_net=False,
voucher_ignored=False,
) )
self._check_item_constraints(bop, operations) self._check_item_constraints(bop, operations)
bundled.append(bop) bundled.append(bop)
@@ -670,6 +694,7 @@ class CartManager:
price_after_voucher=price_after_voucher, price_after_voucher=price_after_voucher,
custom_price_input=custom_price, custom_price_input=custom_price,
custom_price_input_is_net=self.event.settings.display_net_prices, custom_price_input_is_net=self.event.settings.display_net_prices,
voucher_ignored=voucher_ignored,
) )
self._check_item_constraints(op, operations) self._check_item_constraints(op, operations)
operations.append(op) operations.append(op)
@@ -801,6 +826,7 @@ class CartManager:
price_after_voucher=listed_price, price_after_voucher=listed_price,
custom_price_input=custom_price, custom_price_input=custom_price,
custom_price_input_is_net=self.event.settings.display_net_prices, custom_price_input_is_net=self.event.settings.display_net_prices,
voucher_ignored=False,
) )
self._check_item_constraints(op, operations) self._check_item_constraints(op, operations)
operations.append(op) operations.append(op)
@@ -945,7 +971,7 @@ class CartManager:
continue continue
if count < voucher.min_usages_remaining: if count < voucher.min_usages_remaining:
self._operations = [o for o in self._operations if not ( self._operations = [o for o in self._operations if not (
isinstance(o, self.AddOperation) and o.voucher.pk == voucher.pk isinstance(o, self.AddOperation) and o.voucher and o.voucher.pk == voucher.pk
)] )]
removals = [o.position.pk for o in self._operations if isinstance(o, self.RemoveOperation)] removals = [o.position.pk for o in self._operations if isinstance(o, self.RemoveOperation)]
for p in self.positions: for p in self.positions:
+1 -1
View File
@@ -163,7 +163,7 @@ def lock_event_redis(event):
retries = 5 retries = 5
for i in range(retries): for i in range(retries):
try: try:
if lock.acquire(False): if lock.acquire(blocking=False):
return True return True
except RedisError: except RedisError:
logger.exception('Error locking an event') logger.exception('Error locking an event')
+4 -2
View File
@@ -63,6 +63,7 @@ from django.utils.timezone import now, override
from django.utils.translation import gettext as _, pgettext from django.utils.translation import gettext as _, pgettext
from django_scopes import scope, scopes_disabled from django_scopes import scope, scopes_disabled
from i18nfield.strings import LazyI18nString from i18nfield.strings import LazyI18nString
from text_unidecode import unidecode
from pretix.base.email import ClassicMailRenderer from pretix.base.email import ClassicMailRenderer
from pretix.base.i18n import language from pretix.base.i18n import language
@@ -196,7 +197,7 @@ def mail(email: Union[str, Sequence[str]], subject: str, template: Union[str, La
else: else:
sender = formataddr((settings.PRETIX_INSTANCE_NAME, sender)) sender = formataddr((settings.PRETIX_INSTANCE_NAME, sender))
subject = raw_subject = str(subject) subject = raw_subject = str(subject).replace('\n', ' ').replace('\r', '')[:900]
signature = "" signature = ""
bcc = [] bcc = []
@@ -431,8 +432,9 @@ def mail_send_task(self, *args, to: List[str], subject: str, body: str, html: st
} }
) )
if attach_ical: if attach_ical:
fname = re.sub('[^a-zA-Z0-9 ]', '-', unidecode(pgettext('attachment_filename', 'Calendar invite')))
for i, cal in enumerate(get_private_icals(event, [position] if position else order.positions.all())): for i, cal in enumerate(get_private_icals(event, [position] if position else order.positions.all())):
email.attach('event-{}.ics'.format(i), cal.serialize(), 'text/calendar') email.attach('{}{}.ics'.format(fname, f'-{i + 1}' if i > 0 else ''), cal.serialize(), 'text/calendar')
email = email_filter.send_chained(event, 'message', message=email, order=order, user=user) email = email_filter.send_chained(event, 'message', message=email, order=order, user=user)
+41 -24
View File
@@ -54,7 +54,7 @@ from django.db.transaction import get_connection
from django.dispatch import receiver from django.dispatch import receiver
from django.utils.functional import cached_property from django.utils.functional import cached_property
from django.utils.timezone import make_aware, now from django.utils.timezone import make_aware, now
from django.utils.translation import gettext as _, gettext_lazy from django.utils.translation import gettext as _
from django_scopes import scopes_disabled from django_scopes import scopes_disabled
from pretix.api.models import OAuthApplication from pretix.api.models import OAuthApplication
@@ -324,10 +324,10 @@ def approve_order(order, user=None, send_mail: bool=True, auth=None, force=False
with language(order.locale, order.event.settings.region): with language(order.locale, order.event.settings.region):
if order.total == Decimal('0.00'): if order.total == Decimal('0.00'):
email_template = order.event.settings.mail_text_order_approved_free email_template = order.event.settings.mail_text_order_approved_free
email_subject = _('Order approved and confirmed: %(code)s') % {'code': order.code} email_subject = order.event.settings.mail_subject_order_approved_free
else: else:
email_template = order.event.settings.mail_text_order_approved email_template = order.event.settings.mail_text_order_approved
email_subject = _('Order approved and awaiting payment: %(code)s') % {'code': order.code} email_subject = order.event.settings.mail_subject_order_approved
email_context = get_email_context(event=order.event, order=order) email_context = get_email_context(event=order.event, order=order)
try: try:
@@ -373,9 +373,9 @@ def deny_order(order, comment='', user=None, send_mail: bool=True, auth=None):
if send_mail: if send_mail:
email_template = order.event.settings.mail_text_order_denied email_template = order.event.settings.mail_text_order_denied
email_subject = order.event.settings.mail_subject_order_denied
email_context = get_email_context(event=order.event, order=order, comment=comment) email_context = get_email_context(event=order.event, order=order, comment=comment)
with language(order.locale, order.event.settings.region): with language(order.locale, order.event.settings.region):
email_subject = _('Order denied: %(code)s') % {'code': order.code}
try: try:
order.send_mail( order.send_mail(
email_subject, email_template, email_context, email_subject, email_template, email_context,
@@ -462,9 +462,13 @@ def _cancel_order(order, user=None, send_mail: bool=True, api_token=None, device
f._calculate_tax() f._calculate_tax()
f.save() f.save()
if order.payment_refund_sum < cancellation_fee: if cancellation_fee > order.total:
raise OrderError(_('The cancellation fee cannot be higher than the payment credit of this order.')) raise OrderError(_('The cancellation fee cannot be higher than the total amount of this order.'))
order.status = Order.STATUS_PAID elif order.payment_refund_sum < cancellation_fee:
order.status = Order.STATUS_PENDING
order.set_expires()
else:
order.status = Order.STATUS_PAID
order.total = cancellation_fee order.total = cancellation_fee
order.cancellation_date = now() order.cancellation_date = now()
order.save(update_fields=['status', 'cancellation_date', 'total']) order.save(update_fields=['status', 'cancellation_date', 'total'])
@@ -491,10 +495,10 @@ def _cancel_order(order, user=None, send_mail: bool=True, api_token=None, device
order.create_transactions() order.create_transactions()
if send_mail: if send_mail:
email_template = order.event.settings.mail_text_order_canceled
with language(order.locale, order.event.settings.region): with language(order.locale, order.event.settings.region):
email_template = order.event.settings.mail_text_order_canceled
email_subject = order.event.settings.mail_subject_order_canceled
email_context = get_email_context(event=order.event, order=order, comment=comment or "") email_context = get_email_context(event=order.event, order=order, comment=comment or "")
email_subject = _('Order canceled: %(code)s') % {'code': order.code}
try: try:
order.send_mail( order.send_mail(
email_subject, email_template, email_context, email_subject, email_template, email_context,
@@ -938,13 +942,12 @@ def _create_order(event: Event, email: str, positions: List[CartPosition], now_d
return order, p return order, p
def _order_placed_email(event: Event, order: Order, pprov: BasePaymentProvider, email_template, log_entry: str, def _order_placed_email(event: Event, order: Order, pprov: BasePaymentProvider, email_template, subject_template,
invoice, payment: OrderPayment, is_free=False): log_entry: str, invoice, payment: OrderPayment, is_free=False):
email_context = get_email_context(event=event, order=order, payment=payment if pprov else None) email_context = get_email_context(event=event, order=order, payment=payment if pprov else None)
email_subject = gettext_lazy('Your order: {code}')
try: try:
order.send_mail( order.send_mail(
email_subject, email_template, email_context, subject_template, email_template, email_context,
log_entry, log_entry,
invoices=[invoice] if invoice and event.settings.invoice_email_attachment else [], invoices=[invoice] if invoice and event.settings.invoice_email_attachment else [],
attach_tickets=True, attach_tickets=True,
@@ -957,13 +960,13 @@ def _order_placed_email(event: Event, order: Order, pprov: BasePaymentProvider,
logger.exception('Order received email could not be sent') logger.exception('Order received email could not be sent')
def _order_placed_email_attendee(event: Event, order: Order, position: OrderPosition, email_template, log_entry: str, is_free=False): def _order_placed_email_attendee(event: Event, order: Order, position: OrderPosition, email_template, subject_template,
log_entry: str, is_free=False):
email_context = get_email_context(event=event, order=order, position=position) email_context = get_email_context(event=event, order=order, position=position)
email_subject = gettext_lazy('Your event registration: {code}')
try: try:
position.send_mail( position.send_mail(
email_subject, email_template, email_context, subject_template, email_template, email_context,
log_entry, log_entry,
invoices=[], invoices=[],
attach_tickets=True, attach_tickets=True,
@@ -1059,29 +1062,34 @@ def _perform_order(event: Event, payment_provider: str, position_ids: List[str],
if order.email: if order.email:
if order.require_approval: if order.require_approval:
email_template = event.settings.mail_text_order_placed_require_approval email_template = event.settings.mail_text_order_placed_require_approval
subject_template = event.settings.mail_subject_order_placed_require_approval
log_entry = 'pretix.event.order.email.order_placed_require_approval' log_entry = 'pretix.event.order.email.order_placed_require_approval'
email_attendees = False email_attendees = False
elif free_order_flow: elif free_order_flow:
email_template = event.settings.mail_text_order_free email_template = event.settings.mail_text_order_free
subject_template = event.settings.mail_subject_order_free
log_entry = 'pretix.event.order.email.order_free' log_entry = 'pretix.event.order.email.order_free'
email_attendees = event.settings.mail_send_order_free_attendee email_attendees = event.settings.mail_send_order_free_attendee
email_attendees_template = event.settings.mail_text_order_free_attendee email_attendees_template = event.settings.mail_text_order_free_attendee
subject_attendees_template = event.settings.mail_subject_order_free_attendee
else: else:
email_template = event.settings.mail_text_order_placed email_template = event.settings.mail_text_order_placed
subject_template = event.settings.mail_subject_order_placed
log_entry = 'pretix.event.order.email.order_placed' log_entry = 'pretix.event.order.email.order_placed'
email_attendees = event.settings.mail_send_order_placed_attendee email_attendees = event.settings.mail_send_order_placed_attendee
email_attendees_template = event.settings.mail_text_order_placed_attendee email_attendees_template = event.settings.mail_text_order_placed_attendee
subject_attendees_template = event.settings.mail_subject_order_placed_attendee
if sales_channel in event.settings.mail_sales_channel_placed_paid: if sales_channel in event.settings.mail_sales_channel_placed_paid:
_order_placed_email(event, order, pprov, email_template, log_entry, invoice, payment, _order_placed_email(event, order, pprov, email_template, subject_template, log_entry, invoice, payment,
is_free=free_order_flow) is_free=free_order_flow)
if email_attendees: if email_attendees:
for p in order.positions.all(): for p in order.positions.all():
if p.addon_to_id is None and p.attendee_email and p.attendee_email != order.email: if p.addon_to_id is None and p.attendee_email and p.attendee_email != order.email:
_order_placed_email_attendee(event, order, p, email_attendees_template, log_entry, _order_placed_email_attendee(event, order, p, email_attendees_template, subject_attendees_template, log_entry,
is_free=free_order_flow) is_free=free_order_flow)
return order.id return order.id
@@ -1093,8 +1101,16 @@ def expire_orders(sender, **kwargs):
event_id = None event_id = None
expire = None expire = None
for o in Order.objects.filter(expires__lt=now(), status=Order.STATUS_PENDING, qs = Order.objects.filter(
require_approval=False).select_related('event').order_by('event_id'): expires__lt=now(),
status=Order.STATUS_PENDING,
require_approval=False
).exclude(
Exists(
OrderFee.objects.filter(order_id=OuterRef('pk'), fee_type=OrderFee.FEE_TYPE_CANCELLATION)
)
).select_related('event').order_by('event_id')
for o in qs:
if o.event_id != event_id: if o.event_id != event_id:
expire = o.event.settings.get('payment_term_expire_automatically', as_type=bool) expire = o.event.settings.get('payment_term_expire_automatically', as_type=bool)
event_id = o.event_id event_id = o.event_id
@@ -1135,9 +1151,9 @@ def send_expiry_warnings(sender, **kwargs):
email_template = settings.mail_text_order_expire_warning email_template = settings.mail_text_order_expire_warning
email_context = get_email_context(event=o.event, order=o) email_context = get_email_context(event=o.event, order=o)
if settings.payment_term_expire_automatically: if settings.payment_term_expire_automatically:
email_subject = _('Your order is about to expire: %(code)s') % {'code': o.code} email_subject = settings.mail_subject_order_expire_warning
else: else:
email_subject = _('Your order is pending payment: %(code)s') % {'code': o.code} email_subject = settings.mail_subject_order_pending_warning
try: try:
o.send_mail( o.send_mail(
@@ -1210,8 +1226,8 @@ def send_download_reminders(sender, **kwargs):
o.download_reminder_sent = True o.download_reminder_sent = True
o.save(update_fields=['download_reminder_sent']) o.save(update_fields=['download_reminder_sent'])
email_template = event.settings.mail_text_download_reminder email_template = event.settings.mail_text_download_reminder
email_subject = event.settings.mail_subject_download_reminder
email_context = get_email_context(event=event, order=o) email_context = get_email_context(event=event, order=o)
email_subject = _('Your ticket is ready for download: %(code)s') % {'code': o.code}
try: try:
o.send_mail( o.send_mail(
email_subject, email_template, email_context, email_subject, email_template, email_context,
@@ -1234,6 +1250,7 @@ def send_download_reminders(sender, **kwargs):
continue continue
if p.addon_to_id is None and p.attendee_email and p.attendee_email != o.email: if p.addon_to_id is None and p.attendee_email and p.attendee_email != o.email:
email_template = event.settings.mail_text_download_reminder_attendee email_template = event.settings.mail_text_download_reminder_attendee
email_subject = event.settings.mail_subject_download_reminder_attendee
email_context = get_email_context(event=event, order=o, position=p) email_context = get_email_context(event=event, order=o, position=p)
try: try:
o.send_mail( o.send_mail(
@@ -1249,7 +1266,7 @@ def notify_user_changed_order(order, user=None, auth=None, invoices=[]):
with language(order.locale, order.event.settings.region): with language(order.locale, order.event.settings.region):
email_template = order.event.settings.mail_text_order_changed email_template = order.event.settings.mail_text_order_changed
email_context = get_email_context(event=order.event, order=order) email_context = get_email_context(event=order.event, order=order)
email_subject = _('Your order has been changed: %(code)s') % {'code': order.code} email_subject = order.event.settings.mail_subject_order_changed
try: try:
order.send_mail( order.send_mail(
email_subject, email_template, email_context, email_subject, email_template, email_context,
+134 -3
View File
@@ -1421,6 +1421,45 @@ DEFAULTS = {
label=_("Customers can cancel their unpaid orders"), label=_("Customers can cancel their unpaid orders"),
) )
}, },
'cancel_allow_user_unpaid_keep': {
'default': '0.00',
'type': Decimal,
'form_class': forms.DecimalField,
'serializer_class': serializers.DecimalField,
'serializer_kwargs': dict(
max_digits=10, decimal_places=2
),
'form_kwargs': dict(
label=_("Charge a fixed cancellation fee"),
help_text=_("Only affects orders pending payments, a cancellation fee for free orders is never charged. "
"Note that it will be your responsibility to claim the cancellation fee from the user."),
)
},
'cancel_allow_user_unpaid_keep_fees': {
'default': 'False',
'type': bool,
'form_class': forms.BooleanField,
'serializer_class': serializers.BooleanField,
'form_kwargs': dict(
label=_("Charge payment, shipping and service fees"),
help_text=_("Only affects orders pending payments, a cancellation fee for free orders is never charged. "
"Note that it will be your responsibility to claim the cancellation fee from the user."),
)
},
'cancel_allow_user_unpaid_keep_percentage': {
'default': '0.00',
'type': Decimal,
'form_class': forms.DecimalField,
'serializer_class': serializers.DecimalField,
'serializer_kwargs': dict(
max_digits=10, decimal_places=2
),
'form_kwargs': dict(
label=_("Charge a percentual cancellation fee"),
help_text=_("Only affects orders pending payments, a cancellation fee for free orders is never charged. "
"Note that it will be your responsibility to claim the cancellation fee from the user."),
)
},
'cancel_allow_user_until': { 'cancel_allow_user_until': {
'default': None, 'default': None,
'type': RelativeDateWrapper, 'type': RelativeDateWrapper,
@@ -1708,6 +1747,14 @@ DEFAULTS = {
'type': LazyI18nString, 'type': LazyI18nString,
'default': "" 'default': ""
}, },
'mail_subject_resend_link': {
'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("Your order: {code}")),
},
'mail_subject_resend_link_attendee': {
'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("Your event registration: {code}")),
},
'mail_text_resend_link': { 'mail_text_resend_link': {
'type': LazyI18nString, 'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("""Hello, 'default': LazyI18nString.from_gettext(gettext_noop("""Hello,
@@ -1721,6 +1768,10 @@ You can change your order details and view the status of your order at
Best regards, Best regards,
Your {event} team""")) Your {event} team"""))
}, },
'mail_subject_resend_all_links': {
'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("Your orders for {event}")),
},
'mail_text_resend_all_links': { 'mail_text_resend_all_links': {
'type': LazyI18nString, 'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("""Hello, 'default': LazyI18nString.from_gettext(gettext_noop("""Hello,
@@ -1733,6 +1784,10 @@ The list is as follows:
Best regards, Best regards,
Your {event} team""")) Your {event} team"""))
}, },
'mail_subject_order_free_attendee': {
'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("Your event registration: {code}")),
},
'mail_text_order_free_attendee': { 'mail_text_order_free_attendee': {
'type': LazyI18nString, 'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("""Hello {attendee_name}, 'default': LazyI18nString.from_gettext(gettext_noop("""Hello {attendee_name},
@@ -1745,6 +1800,14 @@ You can view the details and status of your ticket here:
Best regards, Best regards,
Your {event} team""")) Your {event} team"""))
}, },
'mail_send_order_free_attendee': {
'type': bool,
'default': 'False'
},
'mail_subject_order_free': {
'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("Your order: {code}")),
},
'mail_text_order_free': { 'mail_text_order_free': {
'type': LazyI18nString, 'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("""Hello, 'default': LazyI18nString.from_gettext(gettext_noop("""Hello,
@@ -1758,9 +1821,9 @@ You can change your order details and view the status of your order at
Best regards, Best regards,
Your {event} team""")) Your {event} team"""))
}, },
'mail_send_order_free_attendee': { 'mail_subject_order_placed_require_approval': {
'type': bool, 'type': LazyI18nString,
'default': 'False' 'default': LazyI18nString.from_gettext(gettext_noop("Your order: {code}")),
}, },
'mail_text_order_placed_require_approval': { 'mail_text_order_placed_require_approval': {
'type': LazyI18nString, 'type': LazyI18nString,
@@ -1776,6 +1839,10 @@ You can change your order details and view the status of your order at
Best regards, Best regards,
Your {event} team""")) Your {event} team"""))
}, },
'mail_subject_order_placed': {
'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("Your order: {code}")),
},
'mail_text_order_placed': { 'mail_text_order_placed': {
'type': LazyI18nString, 'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("""Hello, 'default': LazyI18nString.from_gettext(gettext_noop("""Hello,
@@ -1819,6 +1886,10 @@ Your {event} team"""))
'type': bool, 'type': bool,
'default': 'False' 'default': 'False'
}, },
'mail_subject_order_placed_attendee': {
'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("Your event registration: {code}")),
},
'mail_text_order_placed_attendee': { 'mail_text_order_placed_attendee': {
'type': LazyI18nString, 'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("""Hello {attendee_name}, 'default': LazyI18nString.from_gettext(gettext_noop("""Hello {attendee_name},
@@ -1831,6 +1902,10 @@ You can view the details and status of your ticket here:
Best regards, Best regards,
Your {event} team""")) Your {event} team"""))
}, },
'mail_subject_order_changed': {
'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("Your order has been changed: {code}")),
},
'mail_text_order_changed': { 'mail_text_order_changed': {
'type': LazyI18nString, 'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("""Hello, 'default': LazyI18nString.from_gettext(gettext_noop("""Hello,
@@ -1843,6 +1918,10 @@ You can view the status of your order at
Best regards, Best regards,
Your {event} team""")) Your {event} team"""))
}, },
'mail_subject_order_paid': {
'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("Payment received for your order: {code}")),
},
'mail_text_order_paid': { 'mail_text_order_paid': {
'type': LazyI18nString, 'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("""Hello, 'default': LazyI18nString.from_gettext(gettext_noop("""Hello,
@@ -1861,6 +1940,10 @@ Your {event} team"""))
'type': bool, 'type': bool,
'default': 'False' 'default': 'False'
}, },
'mail_subject_order_paid_attendee': {
'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("Event registration confirmed: {code}")),
},
'mail_text_order_paid_attendee': { 'mail_text_order_paid_attendee': {
'type': LazyI18nString, 'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("""Hello {attendee_name}, 'default': LazyI18nString.from_gettext(gettext_noop("""Hello {attendee_name},
@@ -1888,6 +1971,14 @@ Your {event} team"""))
'type': int, 'type': int,
'default': '3' 'default': '3'
}, },
'mail_subject_order_expire_warning': {
'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("Your order is about to expire: {code}")),
},
'mail_subject_order_pending_warning': {
'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("Your order is pending payment: {code}")),
},
'mail_text_order_expire_warning': { 'mail_text_order_expire_warning': {
'type': LazyI18nString, 'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("""Hello, 'default': LazyI18nString.from_gettext(gettext_noop("""Hello,
@@ -1902,6 +1993,10 @@ You can view the payment information and the status of your order at
Best regards, Best regards,
Your {event} team""")) Your {event} team"""))
}, },
'mail_subject_waiting_list': {
'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("You have been selected from the waitinglist for {event}")),
},
'mail_text_waiting_list': { 'mail_text_waiting_list': {
'type': LazyI18nString, 'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("""Hello, 'default': LazyI18nString.from_gettext(gettext_noop("""Hello,
@@ -1931,6 +2026,10 @@ as possible to the next person on the waiting list:
Best regards, Best regards,
Your {event} team""")) Your {event} team"""))
}, },
'mail_subject_order_canceled': {
'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("Order canceled: {code}")),
},
'mail_text_order_canceled': { 'mail_text_order_canceled': {
'type': LazyI18nString, 'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("""Hello, 'default': LazyI18nString.from_gettext(gettext_noop("""Hello,
@@ -1945,6 +2044,10 @@ You can view the details of your order at
Best regards, Best regards,
Your {event} team""")) Your {event} team"""))
}, },
'mail_subject_order_approved': {
'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("Order approved and awaiting payment: {code}")),
},
'mail_text_order_approved': { 'mail_text_order_approved': {
'type': LazyI18nString, 'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("""Hello, 'default': LazyI18nString.from_gettext(gettext_noop("""Hello,
@@ -1961,6 +2064,10 @@ You can select a payment method and perform the payment here:
Best regards, Best regards,
Your {event} team""")) Your {event} team"""))
}, },
'mail_subject_order_approved_free': {
'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("Order approved and confirmed: {code}")),
},
'mail_text_order_approved_free': { 'mail_text_order_approved_free': {
'type': LazyI18nString, 'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("""Hello, 'default': LazyI18nString.from_gettext(gettext_noop("""Hello,
@@ -1974,6 +2081,10 @@ You can change your order details and view the status of your order at
Best regards, Best regards,
Your {event} team""")) Your {event} team"""))
}, },
'mail_subject_order_denied': {
'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("Order denied: {code}")),
},
'mail_text_order_denied': { 'mail_text_order_denied': {
'type': LazyI18nString, 'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("""Hello, 'default': LazyI18nString.from_gettext(gettext_noop("""Hello,
@@ -2007,6 +2118,10 @@ Your {event} team"""))
'type': bool, 'type': bool,
'default': 'False' 'default': 'False'
}, },
'mail_subject_download_reminder_attendee': {
'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("Your ticket is ready for download: {code}")),
},
'mail_text_download_reminder_attendee': { 'mail_text_download_reminder_attendee': {
'type': LazyI18nString, 'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("""Hello {attendee_name}, 'default': LazyI18nString.from_gettext(gettext_noop("""Hello {attendee_name},
@@ -2019,6 +2134,10 @@ Your {event} team"""))
Best regards, Best regards,
Your {event} team""")) Your {event} team"""))
}, },
'mail_subject_download_reminder': {
'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("Your ticket is ready for download: {code}")),
},
'mail_text_download_reminder': { 'mail_text_download_reminder': {
'type': LazyI18nString, 'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("""Hello, 'default': LazyI18nString.from_gettext(gettext_noop("""Hello,
@@ -2031,6 +2150,10 @@ If you did not do so already, you can download your ticket here:
Best regards, Best regards,
Your {event} team""")) Your {event} team"""))
}, },
'mail_subject_customer_registration': {
'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("Activate your account at {organizer}")),
},
'mail_text_customer_registration': { 'mail_text_customer_registration': {
'type': LazyI18nString, 'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("""Hello {name}, 'default': LazyI18nString.from_gettext(gettext_noop("""Hello {name},
@@ -2049,6 +2172,10 @@ Best regards,
Your {organizer} team""")) Your {organizer} team"""))
}, },
'mail_subject_customer_email_change': {
'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("Confirm email address for your account at {organizer}")),
},
'mail_text_customer_email_change': { 'mail_text_customer_email_change': {
'type': LazyI18nString, 'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("""Hello {name}, 'default': LazyI18nString.from_gettext(gettext_noop("""Hello {name},
@@ -2067,6 +2194,10 @@ Best regards,
Your {organizer} team""")) Your {organizer} team"""))
}, },
'mail_subject_customer_reset': {
'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("Set a new password for your account at {organizer}")),
},
'mail_text_customer_reset': { 'mail_text_customer_reset': {
'type': LazyI18nString, 'type': LazyI18nString,
'default': LazyI18nString.from_gettext(gettext_noop("""Hello {name}, 'default': LazyI18nString.from_gettext(gettext_noop("""Hello {name},
+127 -4
View File
@@ -666,6 +666,9 @@ class CancelSettingsForm(SettingsForm):
'cancel_allow_user_until', 'cancel_allow_user_until',
'cancel_allow_user_paid', 'cancel_allow_user_paid',
'cancel_allow_user_paid_until', 'cancel_allow_user_paid_until',
'cancel_allow_user_unpaid_keep',
'cancel_allow_user_unpaid_keep_fees',
'cancel_allow_user_unpaid_keep_percentage',
'cancel_allow_user_paid_keep', 'cancel_allow_user_paid_keep',
'cancel_allow_user_paid_keep_fees', 'cancel_allow_user_paid_keep_fees',
'cancel_allow_user_paid_keep_percentage', 'cancel_allow_user_paid_keep_percentage',
@@ -927,6 +930,11 @@ class MailSettingsForm(SettingsForm):
required=True, required=True,
choices=[] choices=[]
) )
mail_subject_order_placed = I18nFormField(
label=_("Subject sent to order contact address"),
required=False,
widget=I18nTextInput,
)
mail_text_order_placed = I18nFormField( mail_text_order_placed = I18nFormField(
label=_("Text sent to order contact address"), label=_("Text sent to order contact address"),
required=False, required=False,
@@ -938,12 +946,22 @@ class MailSettingsForm(SettingsForm):
'tickets, the following email will be sent out to the attendees.'), 'tickets, the following email will be sent out to the attendees.'),
required=False, required=False,
) )
mail_subject_order_placed_attendee = I18nFormField(
label=_("Subject sent to attendees"),
required=False,
widget=I18nTextInput,
)
mail_text_order_placed_attendee = I18nFormField( mail_text_order_placed_attendee = I18nFormField(
label=_("Text sent to attendees"), label=_("Text sent to attendees"),
required=False, required=False,
widget=I18nTextarea, widget=I18nTextarea,
) )
mail_subject_order_paid = I18nFormField(
label=_("Subject sent to order contact address"),
required=False,
widget=I18nTextInput,
)
mail_text_order_paid = I18nFormField( mail_text_order_paid = I18nFormField(
label=_("Text sent to order contact address"), label=_("Text sent to order contact address"),
required=False, required=False,
@@ -955,12 +973,22 @@ class MailSettingsForm(SettingsForm):
'tickets, the following email will be sent out to the attendees.'), 'tickets, the following email will be sent out to the attendees.'),
required=False, required=False,
) )
mail_subject_order_paid_attendee = I18nFormField(
label=_("Subject sent to attendees"),
required=False,
widget=I18nTextInput,
)
mail_text_order_paid_attendee = I18nFormField( mail_text_order_paid_attendee = I18nFormField(
label=_("Text sent to attendees"), label=_("Text sent to attendees"),
required=False, required=False,
widget=I18nTextarea, widget=I18nTextarea,
) )
mail_subject_order_free = I18nFormField(
label=_("Subject sent to order contact address"),
required=False,
widget=I18nTextInput,
)
mail_text_order_free = I18nFormField( mail_text_order_free = I18nFormField(
label=_("Text sent to order contact address"), label=_("Text sent to order contact address"),
required=False, required=False,
@@ -972,22 +1000,47 @@ class MailSettingsForm(SettingsForm):
'tickets, the following email will be sent out to the attendees.'), 'tickets, the following email will be sent out to the attendees.'),
required=False, required=False,
) )
mail_subject_order_free_attendee = I18nFormField(
label=_("Subject sent to attendees"),
required=False,
widget=I18nTextInput,
)
mail_text_order_free_attendee = I18nFormField( mail_text_order_free_attendee = I18nFormField(
label=_("Text sent to attendees"), label=_("Text sent to attendees"),
required=False, required=False,
widget=I18nTextarea, widget=I18nTextarea,
) )
mail_subject_order_changed = I18nFormField(
label=_("Subject"),
required=False,
widget=I18nTextInput,
)
mail_text_order_changed = I18nFormField( mail_text_order_changed = I18nFormField(
label=_("Text"), label=_("Text"),
required=False, required=False,
widget=I18nTextarea, widget=I18nTextarea,
) )
mail_subject_resend_link = I18nFormField(
label=_("Subject (sent by admin)"),
required=False,
widget=I18nTextInput,
)
mail_subject_resend_link_attendee = I18nFormField(
label=_("Subject (sent by admin to attendee)"),
required=False,
widget=I18nTextInput,
)
mail_text_resend_link = I18nFormField( mail_text_resend_link = I18nFormField(
label=_("Text (sent by admin)"), label=_("Text (sent by admin)"),
required=False, required=False,
widget=I18nTextarea, widget=I18nTextarea,
) )
mail_subject_resend_all_links = I18nFormField(
label=_("Subject (requested by user)"),
required=False,
widget=I18nTextInput,
)
mail_text_resend_all_links = I18nFormField( mail_text_resend_all_links = I18nFormField(
label=_("Text (requested by user)"), label=_("Text (requested by user)"),
required=False, required=False,
@@ -1005,11 +1058,31 @@ class MailSettingsForm(SettingsForm):
required=False, required=False,
widget=I18nTextarea, widget=I18nTextarea,
) )
mail_subject_order_expire_warning = I18nFormField(
label=_("Subject (if order will expire automatically)"),
required=False,
widget=I18nTextInput,
)
mail_subject_order_pending_warning = I18nFormField(
label=_("Subject (if order will not expire automatically)"),
required=False,
widget=I18nTextInput,
)
mail_subject_waiting_list = I18nFormField(
label=_("Subject"),
required=False,
widget=I18nTextInput,
)
mail_text_waiting_list = I18nFormField( mail_text_waiting_list = I18nFormField(
label=_("Text"), label=_("Text"),
required=False, required=False,
widget=I18nTextarea, widget=I18nTextarea,
) )
mail_subject_order_canceled = I18nFormField(
label=_("Subject"),
required=False,
widget=I18nTextInput,
)
mail_text_order_canceled = I18nFormField( mail_text_order_canceled = I18nFormField(
label=_("Text"), label=_("Text"),
required=False, required=False,
@@ -1020,6 +1093,11 @@ class MailSettingsForm(SettingsForm):
required=False, required=False,
widget=I18nTextarea, widget=I18nTextarea,
) )
mail_subject_download_reminder = I18nFormField(
label=_("Subject sent to order contact address"),
required=False,
widget=I18nTextInput,
)
mail_text_download_reminder = I18nFormField( mail_text_download_reminder = I18nFormField(
label=_("Text sent to order contact address"), label=_("Text sent to order contact address"),
required=False, required=False,
@@ -1031,6 +1109,11 @@ class MailSettingsForm(SettingsForm):
'tickets, the following email will be sent out to the attendees.'), 'tickets, the following email will be sent out to the attendees.'),
required=False, required=False,
) )
mail_subject_download_reminder_attendee = I18nFormField(
label=_("Subject sent to attendees"),
required=False,
widget=I18nTextInput,
)
mail_text_download_reminder_attendee = I18nFormField( mail_text_download_reminder_attendee = I18nFormField(
label=_("Text sent to attendees"), label=_("Text sent to attendees"),
required=False, required=False,
@@ -1043,50 +1126,90 @@ class MailSettingsForm(SettingsForm):
help_text=_("This email will be sent out this many days before the order event starts. If the " help_text=_("This email will be sent out this many days before the order event starts. If the "
"field is empty, the mail will never be sent.") "field is empty, the mail will never be sent.")
) )
mail_subject_order_placed_require_approval = I18nFormField(
label=_("Subject for received order"),
required=False,
widget=I18nTextInput,
)
mail_text_order_placed_require_approval = I18nFormField( mail_text_order_placed_require_approval = I18nFormField(
label=_("Received order"), label=_("Text for received order"),
required=False, required=False,
widget=I18nTextarea, widget=I18nTextarea,
) )
mail_subject_order_approved = I18nFormField(
label=_("Subject for approved order"),
required=False,
widget=I18nTextInput,
)
mail_text_order_approved = I18nFormField( mail_text_order_approved = I18nFormField(
label=_("Approved order"), label=_("Text for approved order"),
required=False, required=False,
widget=I18nTextarea, widget=I18nTextarea,
help_text=_("This will only be sent out for non-free orders. Free orders will receive the free order " help_text=_("This will only be sent out for non-free orders. Free orders will receive the free order "
"template from below instead."), "template from below instead."),
) )
mail_subject_order_approved_free = I18nFormField(
label=_("Subject for approved free order"),
required=False,
widget=I18nTextInput,
)
mail_text_order_approved_free = I18nFormField( mail_text_order_approved_free = I18nFormField(
label=_("Approved free order"), label=_("Text for approved free order"),
required=False, required=False,
widget=I18nTextarea, widget=I18nTextarea,
help_text=_("This will only be sent out for free orders. Non-free orders will receive the non-free order " help_text=_("This will only be sent out for free orders. Non-free orders will receive the non-free order "
"template from above instead."), "template from above instead."),
) )
mail_subject_order_denied = I18nFormField(
label=_("Subject for denied order"),
required=False,
widget=I18nTextInput,
)
mail_text_order_denied = I18nFormField( mail_text_order_denied = I18nFormField(
label=_("Denied order"), label=_("Text for denied order"),
required=False, required=False,
widget=I18nTextarea, widget=I18nTextarea,
) )
base_context = { base_context = {
'mail_text_order_placed': ['event', 'order', 'payment'], 'mail_text_order_placed': ['event', 'order', 'payment'],
'mail_subject_order_placed': ['event', 'order', 'payment'],
'mail_text_order_placed_attendee': ['event', 'order', 'position'], 'mail_text_order_placed_attendee': ['event', 'order', 'position'],
'mail_subject_order_placed_attendee': ['event', 'order', 'position'],
'mail_text_order_placed_require_approval': ['event', 'order'], 'mail_text_order_placed_require_approval': ['event', 'order'],
'mail_subject_order_placed_require_approval': ['event', 'order'],
'mail_text_order_approved': ['event', 'order'], 'mail_text_order_approved': ['event', 'order'],
'mail_subject_order_approved': ['event', 'order'],
'mail_text_order_approved_free': ['event', 'order'], 'mail_text_order_approved_free': ['event', 'order'],
'mail_subject_order_approved_free': ['event', 'order'],
'mail_text_order_denied': ['event', 'order', 'comment'], 'mail_text_order_denied': ['event', 'order', 'comment'],
'mail_subject_order_denied': ['event', 'order', 'comment'],
'mail_text_order_paid': ['event', 'order', 'payment_info'], 'mail_text_order_paid': ['event', 'order', 'payment_info'],
'mail_subject_order_paid': ['event', 'order', 'payment_info'],
'mail_text_order_paid_attendee': ['event', 'order', 'position'], 'mail_text_order_paid_attendee': ['event', 'order', 'position'],
'mail_subject_order_paid_attendee': ['event', 'order', 'position'],
'mail_text_order_free': ['event', 'order'], 'mail_text_order_free': ['event', 'order'],
'mail_subject_order_free': ['event', 'order'],
'mail_text_order_free_attendee': ['event', 'order', 'position'], 'mail_text_order_free_attendee': ['event', 'order', 'position'],
'mail_subject_order_free_attendee': ['event', 'order', 'position'],
'mail_text_order_changed': ['event', 'order'], 'mail_text_order_changed': ['event', 'order'],
'mail_subject_order_changed': ['event', 'order'],
'mail_text_order_canceled': ['event', 'order', 'comment'], 'mail_text_order_canceled': ['event', 'order', 'comment'],
'mail_subject_order_canceled': ['event', 'order', 'comment'],
'mail_text_order_expire_warning': ['event', 'order'], 'mail_text_order_expire_warning': ['event', 'order'],
'mail_subject_order_expire_warning': ['event', 'order'],
'mail_subject_order_pending_warning': ['event', 'order'],
'mail_text_order_custom_mail': ['event', 'order'], 'mail_text_order_custom_mail': ['event', 'order'],
'mail_text_download_reminder': ['event', 'order'], 'mail_text_download_reminder': ['event', 'order'],
'mail_subject_download_reminder': ['event', 'order'],
'mail_text_download_reminder_attendee': ['event', 'order', 'position'], 'mail_text_download_reminder_attendee': ['event', 'order', 'position'],
'mail_subject_download_reminder_attendee': ['event', 'order', 'position'],
'mail_text_resend_link': ['event', 'order'], 'mail_text_resend_link': ['event', 'order'],
'mail_subject_resend_link': ['event', 'order'],
'mail_subject_resend_link_attendee': ['event', 'order'],
'mail_text_waiting_list': ['event', 'waiting_list_entry'], 'mail_text_waiting_list': ['event', 'waiting_list_entry'],
'mail_subject_waiting_list': ['event', 'waiting_list_entry'],
'mail_text_resend_all_links': ['event', 'orders'], 'mail_text_resend_all_links': ['event', 'orders'],
'mail_subject_resend_all_links': ['event', 'orders'],
'mail_attach_ical_description': ['event', 'event_or_subevent'], 'mail_attach_ical_description': ['event', 'event_or_subevent'],
} }
+9 -13
View File
@@ -158,7 +158,7 @@ class CancelForm(ForceQuotaConfirmationForm):
localize=True, localize=True,
label=_('Keep a cancellation fee of'), label=_('Keep a cancellation fee of'),
help_text=_('If you keep a fee, all positions within this order will be canceled and the order will be reduced ' help_text=_('If you keep a fee, all positions within this order will be canceled and the order will be reduced '
'to a paid cancellation fee. Payment and shipping fees will be canceled as well, so include them ' 'to a cancellation fee. Payment and shipping fees will be canceled as well, so include them '
'in your cancellation fee if you want to keep them. Please always enter a gross value, ' 'in your cancellation fee if you want to keep them. Please always enter a gross value, '
'tax will be calculated automatically.'), 'tax will be calculated automatically.'),
) )
@@ -176,23 +176,19 @@ class CancelForm(ForceQuotaConfirmationForm):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
prs = self.instance.payment_refund_sum change_decimal_field(self.fields['cancellation_fee'], self.instance.event.currency)
if prs > 0: self.fields['cancellation_fee'].widget.attrs['placeholder'] = floatformat(
change_decimal_field(self.fields['cancellation_fee'], self.instance.event.currency) Decimal('0.00'),
self.fields['cancellation_fee'].widget.attrs['placeholder'] = floatformat( settings.CURRENCY_PLACES.get(self.instance.event.currency, 2)
Decimal('0.00'), )
settings.CURRENCY_PLACES.get(self.instance.event.currency, 2) self.fields['cancellation_fee'].max_value = self.instance.total
)
self.fields['cancellation_fee'].max_value = prs
else:
del self.fields['cancellation_fee']
if not self.instance.invoices.exists(): if not self.instance.invoices.exists():
del self.fields['cancel_invoice'] del self.fields['cancel_invoice']
def clean_cancellation_fee(self): def clean_cancellation_fee(self):
val = self.cleaned_data['cancellation_fee'] or Decimal('0.00') val = self.cleaned_data['cancellation_fee'] or Decimal('0.00')
if val > self.instance.payment_refund_sum: if val > self.instance.total:
raise ValidationError(_('The cancellation fee cannot be higher than the payment credit of this order.')) raise ValidationError(_('The cancellation fee cannot be higher than the total amount of this order.'))
return val return val
+21 -1
View File
@@ -45,7 +45,9 @@ from django.utils.crypto import get_random_string
from django.utils.safestring import mark_safe from django.utils.safestring import mark_safe
from django.utils.translation import gettext_lazy as _, pgettext_lazy from django.utils.translation import gettext_lazy as _, pgettext_lazy
from django_scopes.forms import SafeModelMultipleChoiceField from django_scopes.forms import SafeModelMultipleChoiceField
from i18nfield.forms import I18nFormField, I18nFormSetMixin, I18nTextarea from i18nfield.forms import (
I18nFormField, I18nFormSetMixin, I18nTextarea, I18nTextInput,
)
from phonenumber_field.formfields import PhoneNumberField from phonenumber_field.formfields import PhoneNumberField
from pytz import common_timezones from pytz import common_timezones
@@ -457,16 +459,31 @@ class MailSettingsForm(SettingsForm):
}} }}
) )
mail_subject_customer_registration = I18nFormField(
label=_("Subject"),
required=False,
widget=I18nTextInput,
)
mail_text_customer_registration = I18nFormField( mail_text_customer_registration = I18nFormField(
label=_("Text"), label=_("Text"),
required=False, required=False,
widget=I18nTextarea, widget=I18nTextarea,
) )
mail_subject_customer_email_change = I18nFormField(
label=_("Subject"),
required=False,
widget=I18nTextInput,
)
mail_text_customer_email_change = I18nFormField( mail_text_customer_email_change = I18nFormField(
label=_("Text"), label=_("Text"),
required=False, required=False,
widget=I18nTextarea, widget=I18nTextarea,
) )
mail_subject_customer_reset = I18nFormField(
label=_("Subject"),
required=False,
widget=I18nTextInput,
)
mail_text_customer_reset = I18nFormField( mail_text_customer_reset = I18nFormField(
label=_("Text"), label=_("Text"),
required=False, required=False,
@@ -475,8 +492,11 @@ class MailSettingsForm(SettingsForm):
base_context = { base_context = {
'mail_text_customer_registration': ['customer', 'url'], 'mail_text_customer_registration': ['customer', 'url'],
'mail_subject_customer_registration': ['customer', 'url'],
'mail_text_customer_email_change': ['customer', 'url'], 'mail_text_customer_email_change': ['customer', 'url'],
'mail_subject_customer_email_change': ['customer', 'url'],
'mail_text_customer_reset': ['customer', 'url'], 'mail_text_customer_reset': ['customer', 'url'],
'mail_subject_customer_reset': ['customer', 'url'],
} }
def _get_sample_context(self, base_parameters): def _get_sample_context(self, base_parameters):
+5 -2
View File
@@ -345,8 +345,11 @@ class VoucherBulkForm(VoucherForm):
if ',' in raw or ';' in raw: if ',' in raw or ';' in raw:
if '@' in r[0]: if '@' in r[0]:
raise ValidationError(_('CSV input needs to contain a header row in the first line.')) raise ValidationError(_('CSV input needs to contain a header row in the first line.'))
dialect = csv.Sniffer().sniff(raw[:1024]) try:
reader = csv.DictReader(StringIO(raw), dialect=dialect) dialect = csv.Sniffer().sniff(raw[:1024])
reader = csv.DictReader(StringIO(raw), dialect=dialect)
except csv.Error as e:
raise ValidationError(_('CSV parsing failed: {error}.').format(error=str(e)))
if 'email' not in reader.fieldnames: if 'email' not in reader.fieldnames:
raise ValidationError(_('CSV input needs to contain a field with the header "{header}".').format(header="email")) raise ValidationError(_('CSV input needs to contain a field with the header "{header}".').format(header="email"))
unknown_fields = [f for f in reader.fieldnames if f not in ('email', 'name', 'tag', 'number')] unknown_fields = [f for f in reader.fieldnames if f not in ('email', 'name', 'tag', 'number')]
@@ -11,7 +11,7 @@
{% trans "You configured your account to require authentication with a second medium, e.g. your phone. Please enter your verification code here:" %} {% trans "You configured your account to require authentication with a second medium, e.g. your phone. Please enter your verification code here:" %}
</p> </p>
<div class="form-group"> <div class="form-group">
<input class="form-control" name="token" placeholder="{% trans "Token" %}" <input class="form-control" name="token" placeholder="{% trans "Token" %}" autocomplete="one-time-code"
type="text" required="required" autofocus="autofocus" id="webauthn-response"> type="text" required="required" autofocus="autofocus" id="webauthn-response">
</div> </div>
<div class="sr-only alert alert-danger" id="webauthn-error"> <div class="sr-only alert alert-danger" id="webauthn-error">
@@ -116,8 +116,12 @@
</form> </form>
{{ items|json_script:"items" }} {{ items|json_script:"items" }}
{% compress js %} {% if DEBUG %}
<script type="text/javascript" src="{% static "vuejs/vue.js" %}"></script> <script type="text/javascript" src="{% static "vuejs/vue.js" %}"></script>
{% else %}
<script type="text/javascript" src="{% static "vuejs/vue.min.js" %}"></script>
{% endif %}
{% compress js %}
<script type="text/javascript" src="{% static "d3/d3.v6.js" %}"></script> <script type="text/javascript" src="{% static "d3/d3.v6.js" %}"></script>
<script type="text/javascript" src="{% static "d3/d3-color.v2.js" %}"></script> <script type="text/javascript" src="{% static "d3/d3-color.v2.js" %}"></script>
<script type="text/javascript" src="{% static "d3/d3-dispatch.v2.js" %}"></script> <script type="text/javascript" src="{% static "d3/d3-dispatch.v2.js" %}"></script>
@@ -128,6 +132,8 @@
<script type="text/javascript" src="{% static "d3/d3-transition.v2.js" %}"></script> <script type="text/javascript" src="{% static "d3/d3-transition.v2.js" %}"></script>
<script type="text/javascript" src="{% static "d3/d3-drag.v2.js" %}"></script> <script type="text/javascript" src="{% static "d3/d3-drag.v2.js" %}"></script>
<script type="text/javascript" src="{% static "d3/d3-zoom.v2.js" %}"></script> <script type="text/javascript" src="{% static "d3/d3-zoom.v2.js" %}"></script>
{% endcompress %}
{% compress js %}
<script type="text/javascript" src="{% static "pretixcontrol/js/ui/checkinrules/jsonlogic-boolalg.js" %}"></script> <script type="text/javascript" src="{% static "pretixcontrol/js/ui/checkinrules/jsonlogic-boolalg.js" %}"></script>
<script type="text/vue" src="{% static 'pretixcontrol/js/ui/checkinrules/datetimefield.vue' %}"></script> <script type="text/vue" src="{% static 'pretixcontrol/js/ui/checkinrules/datetimefield.vue' %}"></script>
<script type="text/vue" src="{% static 'pretixcontrol/js/ui/checkinrules/timefield.vue' %}"></script> <script type="text/vue" src="{% static 'pretixcontrol/js/ui/checkinrules/timefield.vue' %}"></script>
@@ -11,6 +11,9 @@
<legend>{% trans "Unpaid or free orders" %}</legend> <legend>{% trans "Unpaid or free orders" %}</legend>
{% bootstrap_field form.cancel_allow_user layout="control" %} {% bootstrap_field form.cancel_allow_user layout="control" %}
{% bootstrap_field form.cancel_allow_user_until layout="control" %} {% bootstrap_field form.cancel_allow_user_until layout="control" %}
{% bootstrap_field form.cancel_allow_user_unpaid_keep layout="control" %}
{% bootstrap_field form.cancel_allow_user_unpaid_keep_percentage layout="control" %}
{% bootstrap_field form.cancel_allow_user_unpaid_keep_fees layout="control" %}
</fieldset> </fieldset>
<fieldset> <fieldset>
<legend>{% trans "Paid orders" %}</legend> <legend>{% trans "Paid orders" %}</legend>
@@ -88,37 +88,37 @@
<h4>{% trans "Text" %}</h4> <h4>{% trans "Text" %}</h4>
<div class="panel-group" id="questions_group"> <div class="panel-group" id="questions_group">
{% blocktrans asvar title_placed_order %}Placed order{% endblocktrans %} {% blocktrans asvar title_placed_order %}Placed order{% endblocktrans %}
{% include "pretixcontrol/event/mail_settings_fragment.html" with pid="order_placed" title=title_placed_order items="mail_text_order_placed,mail_send_order_placed_attendee,mail_text_order_placed_attendee" exclude="mail_send_order_placed_attendee" %} {% include "pretixcontrol/event/mail_settings_fragment.html" with pid="order_placed" title=title_placed_order items="mail_subject_order_placed,mail_text_order_placed,mail_send_order_placed_attendee,mail_subject_order_placed_attendee,mail_text_order_placed_attendee" exclude="mail_send_order_placed_attendee" %}
{% blocktrans asvar title_paid_order %}Paid order{% endblocktrans %} {% blocktrans asvar title_paid_order %}Paid order{% endblocktrans %}
{% include "pretixcontrol/event/mail_settings_fragment.html" with pid="order_paid" title=title_paid_order items="mail_text_order_paid,mail_send_order_paid_attendee,mail_text_order_paid_attendee" exclude="mail_send_order_paid_attendee" %} {% include "pretixcontrol/event/mail_settings_fragment.html" with pid="order_paid" title=title_paid_order items="mail_subject_order_paid,mail_text_order_paid,mail_send_order_paid_attendee,mail_subject_order_paid_attendee,mail_text_order_paid_attendee" exclude="mail_send_order_paid_attendee" %}
{% blocktrans asvar title_free_order %}Free order{% endblocktrans %} {% blocktrans asvar title_free_order %}Free order{% endblocktrans %}
{% include "pretixcontrol/event/mail_settings_fragment.html" with pid="order_free" title=title_free_order items="mail_text_order_free,mail_send_order_free_attendee,mail_text_order_free_attendee" exclude="mail_send_order_free_attendee" %} {% include "pretixcontrol/event/mail_settings_fragment.html" with pid="order_free" title=title_free_order items="mail_subject_order_free,mail_text_order_free,mail_send_order_free_attendee,mail_subject_order_free_attendee,mail_text_order_free_attendee" exclude="mail_send_order_free_attendee" %}
{% blocktrans asvar title_resend_link %}Resend link{% endblocktrans %} {% blocktrans asvar title_resend_link %}Resend link{% endblocktrans %}
{% include "pretixcontrol/event/mail_settings_fragment.html" with pid="resend_link" title=title_resend_link items="mail_text_resend_link,mail_text_resend_all_links" %} {% include "pretixcontrol/event/mail_settings_fragment.html" with pid="resend_link" title=title_resend_link items="mail_subject_resend_link,mail_subject_resend_link_attendee,mail_text_resend_link,mail_subject_resend_all_links,mail_text_resend_all_links" %}
{% blocktrans asvar title_order_changed %}Order changed{% endblocktrans %} {% blocktrans asvar title_order_changed %}Order changed{% endblocktrans %}
{% include "pretixcontrol/event/mail_settings_fragment.html" with pid="order_changed" title=title_order_changed items="mail_text_order_changed" %} {% include "pretixcontrol/event/mail_settings_fragment.html" with pid="order_changed" title=title_order_changed items="mail_subject_order_changed,mail_text_order_changed" %}
{% blocktrans asvar title_payment_reminder %}Payment reminder{% endblocktrans %} {% blocktrans asvar title_payment_reminder %}Payment reminder{% endblocktrans %}
{% include "pretixcontrol/event/mail_settings_fragment.html" with pid="order_expirew" title=title_payment_reminder items="mail_days_order_expire_warning,mail_text_order_expire_warning" exclude="mail_days_order_expire_warning" %} {% include "pretixcontrol/event/mail_settings_fragment.html" with pid="order_expirew" title=title_payment_reminder items="mail_days_order_expire_warning,mail_subject_order_expire_warning,mail_subject_order_pending_warning,mail_text_order_expire_warning" exclude="mail_days_order_expire_warning" %}
{% blocktrans asvar title_waiting_list_notification %}Waiting list notification{% endblocktrans %} {% blocktrans asvar title_waiting_list_notification %}Waiting list notification{% endblocktrans %}
{% include "pretixcontrol/event/mail_settings_fragment.html" with pid="waiting_list" title=title_waiting_list_notification items="mail_text_waiting_list" %} {% include "pretixcontrol/event/mail_settings_fragment.html" with pid="waiting_list" title=title_waiting_list_notification items="mail_subject_waiting_list,mail_text_waiting_list" %}
{% blocktrans asvar title_order_canceled %}Order canceled{% endblocktrans %} {% blocktrans asvar title_order_canceled %}Order canceled{% endblocktrans %}
{% include "pretixcontrol/event/mail_settings_fragment.html" with pid="order_canceled" title=title_order_canceled items="mail_text_order_canceled" %} {% include "pretixcontrol/event/mail_settings_fragment.html" with pid="order_canceled" title=title_order_canceled items="mail_subject_order_canceled,mail_text_order_canceled" %}
{% blocktrans asvar title_order_custom_mail %}Order custom mail{% endblocktrans %} {% blocktrans asvar title_order_custom_mail %}Order custom mail{% endblocktrans %}
{% include "pretixcontrol/event/mail_settings_fragment.html" with pid="custom_mail" title=title_order_custom_mail items="mail_text_order_custom_mail" %} {% include "pretixcontrol/event/mail_settings_fragment.html" with pid="custom_mail" title=title_order_custom_mail items="mail_text_order_custom_mail" %}
{% blocktrans asvar title_download_tickets_reminder %}Reminder to download tickets{% endblocktrans %} {% blocktrans asvar title_download_tickets_reminder %}Reminder to download tickets{% endblocktrans %}
{% include "pretixcontrol/event/mail_settings_fragment.html" with pid="ticket_reminder" title=title_download_tickets_reminder items="mail_days_download_reminder,mail_text_download_reminder,mail_send_download_reminder_attendee,mail_text_download_reminder_attendee,mail_sales_channel_download_reminder" exclude="mail_days_download_reminder,mail_send_download_reminder_attendee,mail_sales_channel_download_reminder" %} {% include "pretixcontrol/event/mail_settings_fragment.html" with pid="ticket_reminder" title=title_download_tickets_reminder items="mail_days_download_reminder,mail_subject_download_reminder,mail_text_download_reminder,mail_send_download_reminder_attendee,mail_subject_download_reminder_attendee,mail_text_download_reminder_attendee,mail_sales_channel_download_reminder" exclude="mail_days_download_reminder,mail_send_download_reminder_attendee,mail_sales_channel_download_reminder" %}
{% blocktrans asvar title_require_approval %}Order approval process{% endblocktrans %} {% blocktrans asvar title_require_approval %}Order approval process{% endblocktrans %}
{% include "pretixcontrol/event/mail_settings_fragment.html" with pid="ticket_reminder" title=title_require_approval items="mail_text_order_placed_require_approval,mail_text_order_approved,mail_text_order_approved_free,mail_text_order_denied" %} {% include "pretixcontrol/event/mail_settings_fragment.html" with pid="ticket_reminder" title=title_require_approval items="mail_subject_order_placed_require_approval,mail_text_order_placed_require_approval,mail_subject_order_approved,mail_text_order_approved,mail_subject_order_approved_free,mail_text_order_approved_free,mail_subject_order_denied,mail_text_order_denied" %}
</div> </div>
<h4>{% trans "Attachments" %}</h4> <h4>{% trans "Attachments" %}</h4>
{% bootstrap_field form.mail_attachment_new_order layout="control" %} {% bootstrap_field form.mail_attachment_new_order layout="control" %}
@@ -118,6 +118,10 @@
<button type="button" class="btn btn-default" data-formset-add> <button type="button" class="btn btn-default" data-formset-add>
<i class="fa fa-plus"></i> {% trans "Add a new option" %}</button> <i class="fa fa-plus"></i> {% trans "Add a new option" %}</button>
</p> </p>
<p>
{% trans "or add options from a csv file" %}
<input type="file" id="add-options-csv" accept=".csv" aria-label="{% trans "csv file with answer options" %}">
</p>
</div> </div>
</div> </div>
</fieldset> </fieldset>
@@ -190,7 +190,13 @@
</dd> </dd>
{% if order.status == "n" %} {% if order.status == "n" %}
<dt>{% trans "Expiry date" %}</dt> <dt>{% trans "Expiry date" %}</dt>
<dd>{{ order.expires|date:"SHORT_DATETIME_FORMAT" }}</dd> <dd>
{{ order.expires|date:"SHORT_DATETIME_FORMAT" }}
{% if has_cancellation_fee and request.event.settings.payment_term_expire_automatically %}
<span class="fa fa-warning text-danger" data-toggle="tooltip"
title="{% trans "This order will not expire automatically as it has an open cancellation fee." %}"></span>
{% endif %}
</dd>
{% endif %} {% endif %}
{% if request.organizer.settings.customer_accounts %} {% if request.organizer.settings.customer_accounts %}
<dt>{% trans "Customer account" %}</dt> <dt>{% trans "Customer account" %}</dt>
@@ -58,13 +58,13 @@
<legend>{% trans "E-mail content" %}</legend> <legend>{% trans "E-mail content" %}</legend>
<div class="panel-group" id="questions_group"> <div class="panel-group" id="questions_group">
{% blocktrans asvar title_customer_registration %}Customer account registration{% endblocktrans %} {% blocktrans asvar title_customer_registration %}Customer account registration{% endblocktrans %}
{% include "pretixcontrol/event/mail_settings_fragment.html" with pid="customer_registration" title=title_customer_registration items="mail_text_customer_registration" %} {% include "pretixcontrol/event/mail_settings_fragment.html" with pid="customer_registration" title=title_customer_registration items="mail_subject_customer_registration,mail_text_customer_registration" %}
{% blocktrans asvar title_email_change %}Customer account email change{% endblocktrans %} {% blocktrans asvar title_email_change %}Customer account email change{% endblocktrans %}
{% include "pretixcontrol/event/mail_settings_fragment.html" with pid="email_change" title=title_email_change items="mail_text_customer_email_change" %} {% include "pretixcontrol/event/mail_settings_fragment.html" with pid="email_change" title=title_email_change items="mail_subject_customer_email_change,mail_text_customer_email_change" %}
{% blocktrans asvar title_reset %}Customer account password reset{% endblocktrans %} {% blocktrans asvar title_reset %}Customer account password reset{% endblocktrans %}
{% include "pretixcontrol/event/mail_settings_fragment.html" with pid="reset" title=title_reset items="mail_text_customer_reset" %} {% include "pretixcontrol/event/mail_settings_fragment.html" with pid="reset" title=title_reset items="mail_subject_customer_reset,mail_text_customer_reset" %}
</div> </div>
</fieldset> </fieldset>
</div> </div>
+8 -4
View File
@@ -41,6 +41,7 @@ from decimal import Decimal
from itertools import groupby from itertools import groupby
from urllib.parse import urlsplit from urllib.parse import urlsplit
import bleach
from django.conf import settings from django.conf import settings
from django.contrib import messages from django.contrib import messages
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
@@ -723,7 +724,7 @@ class MailSettingsPreview(EventPermissionRequiredMixin, View):
if preview_item not in MailSettingsForm.base_context: if preview_item not in MailSettingsForm.base_context:
return HttpResponseBadRequest(_('invalid item')) return HttpResponseBadRequest(_('invalid item'))
regex = r"^" + re.escape(preview_item) + r"_(?P<idx>[\d+])$" regex = r"^" + re.escape(preview_item) + r"_(?P<idx>[\d]+)$"
msgs = {} msgs = {}
for k, v in request.POST.items(): for k, v in request.POST.items():
# only accept allowed fields # only accept allowed fields
@@ -732,9 +733,12 @@ class MailSettingsPreview(EventPermissionRequiredMixin, View):
idx = matched.group('idx') idx = matched.group('idx')
if idx in self.supported_locale: if idx in self.supported_locale:
with language(self.supported_locale[idx], self.request.event.settings.region): with language(self.supported_locale[idx], self.request.event.settings.region):
msgs[self.supported_locale[idx]] = markdown_compile_email( if k.startswith('mail_subject_'):
v.format_map(self.placeholders(preview_item)) msgs[self.supported_locale[idx]] = bleach.clean(v).format_map(self.placeholders(preview_item))
) else:
msgs[self.supported_locale[idx]] = markdown_compile_email(
v.format_map(self.placeholders(preview_item))
)
return JsonResponse({ return JsonResponse({
'item': preview_item, 'item': preview_item,
+10 -1
View File
@@ -32,6 +32,7 @@ from django.utils.translation import gettext_lazy as _
from django.views.generic import TemplateView from django.views.generic import TemplateView
from pretix.base import email from pretix.base import email
from pretix.base.forms import SECRET_REDACTED
from pretix.base.models import Event from pretix.base.models import Event
from pretix.base.services.mail import mail from pretix.base.services.mail import mail
from pretix.control.forms.filter import OrganizerFilterForm from pretix.control.forms.filter import OrganizerFilterForm
@@ -169,6 +170,13 @@ class MailSettingsSetupView(TemplateView):
) )
if allow_save: if allow_save:
self.object.settings.smtp_use_custom = False
del self.object.settings.smtp_host
del self.object.settings.smtp_port
del self.object.settings.smtp_username
del self.object.settings.smtp_password
del self.object.settings.smtp_use_tls
del self.object.settings.smtp_use_ssl
for k, v in self.simple_form.cleaned_data.items(): for k, v in self.simple_form.cleaned_data.items():
self.object.settings.set(k, v) self.object.settings.set(k, v)
self.log_action(self.simple_form.cleaned_data) self.log_action(self.simple_form.cleaned_data)
@@ -237,7 +245,8 @@ class MailSettingsSetupView(TemplateView):
if request.POST.get('state') == 'save': if request.POST.get('state') == 'save':
for k, v in self.smtp_form.cleaned_data.items(): for k, v in self.smtp_form.cleaned_data.items():
self.object.settings.set(k, v) if v != SECRET_REDACTED:
self.object.settings.set(k, v)
self.object.settings.smtp_use_custom = True self.object.settings.smtp_use_custom = True
self.log_action({**self.smtp_form.cleaned_data, 'smtp_use_custom': True}) self.log_action({**self.smtp_form.cleaned_data, 'smtp_use_custom': True})
messages.success(request, _('Your changes have been saved.')) messages.success(request, _('Your changes have been saved.'))
+1
View File
@@ -293,6 +293,7 @@ class OrderDetail(OrderView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
ctx = super().get_context_data(**kwargs) ctx = super().get_context_data(**kwargs)
ctx['items'] = self.get_items() ctx['items'] = self.get_items()
ctx['has_cancellation_fee'] = any(f.fee_type == OrderFee.FEE_TYPE_CANCELLATION for f in ctx['items']['fees'])
ctx['event'] = self.request.event ctx['event'] = self.request.event
ctx['payments'] = self.order.payments.order_by('-created') ctx['payments'] = self.order.payments.order_by('-created')
ctx['refunds'] = self.order.refunds.select_related('payment').order_by('-created') ctx['refunds'] = self.order.refunds.select_related('payment').order_by('-created')
+9 -5
View File
@@ -37,6 +37,7 @@ import re
from datetime import timedelta from datetime import timedelta
from decimal import Decimal from decimal import Decimal
import bleach
from django import forms from django import forms
from django.conf import settings from django.conf import settings
from django.contrib import messages from django.contrib import messages
@@ -324,7 +325,7 @@ class MailSettingsPreview(OrganizerPermissionRequiredMixin, View):
if preview_item not in MailSettingsForm.base_context: if preview_item not in MailSettingsForm.base_context:
return HttpResponseBadRequest(_('invalid item')) return HttpResponseBadRequest(_('invalid item'))
regex = r"^" + re.escape(preview_item) + r"_(?P<idx>[\d+])$" regex = r"^" + re.escape(preview_item) + r"_(?P<idx>[\d]+)$"
msgs = {} msgs = {}
for k, v in request.POST.items(): for k, v in request.POST.items():
# only accept allowed fields # only accept allowed fields
@@ -333,9 +334,12 @@ class MailSettingsPreview(OrganizerPermissionRequiredMixin, View):
idx = matched.group('idx') idx = matched.group('idx')
if idx in self.supported_locale: if idx in self.supported_locale:
with language(self.supported_locale[idx], self.request.organizer.settings.region): with language(self.supported_locale[idx], self.request.organizer.settings.region):
msgs[self.supported_locale[idx]] = markdown_compile_email( if k.startswith('mail_subject_'):
v.format_map(self.placeholders(preview_item)) msgs[self.supported_locale[idx]] = bleach.clean(v).format_map(self.placeholders(preview_item))
) else:
msgs[self.supported_locale[idx]] = markdown_compile_email(
v.format_map(self.placeholders(preview_item))
)
return JsonResponse({ return JsonResponse({
'item': preview_item, 'item': preview_item,
@@ -2236,7 +2240,7 @@ class CustomerDetailView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMi
) + '?id=' + self.customer.identifier + '&token=' + token ) + '?id=' + self.customer.identifier + '&token=' + token
mail( mail(
self.customer.email, self.customer.email,
_('Set a new password for your account at {organizer}').format(organizer=self.request.organizer.name), self.request.organizer.settings.mail_subject_customer_reset,
self.request.organizer.settings.mail_text_customer_reset, self.request.organizer.settings.mail_text_customer_reset,
ctx, ctx,
locale=self.customer.locale, locale=self.customer.locale,
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-26 18:57+0000\n" "POT-Creation-Date: 2022-11-07 15:22+0000\n"
"PO-Revision-Date: 2021-09-15 11:22+0000\n" "PO-Revision-Date: 2021-09-15 11:22+0000\n"
"Last-Translator: Mohamed Tawfiq <mtawfiq@wafyapp.com>\n" "Last-Translator: Mohamed Tawfiq <mtawfiq@wafyapp.com>\n"
"Language-Team: Arabic <https://translate.pretix.eu/projects/pretix/pretix-js/" "Language-Team: Arabic <https://translate.pretix.eu/projects/pretix/pretix-js/"
@@ -132,18 +132,18 @@ msgstr ""
msgid "Mercado Pago" msgid "Mercado Pago"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:157 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:159
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48 #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
msgid "Continue" msgid "Continue"
msgstr "المتابعة" msgstr "المتابعة"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:215 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:217
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183
msgid "Confirming your payment …" msgid "Confirming your payment …"
msgstr "جاري تأكيد الدفع الخاص بك …" msgstr "جاري تأكيد الدفع الخاص بك …"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:240 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:242
msgid "Payment method unavailable" msgid "Payment method unavailable"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-26 18:57+0000\n" "POT-Creation-Date: 2022-11-07 15:22+0000\n"
"PO-Revision-Date: 2020-12-19 07:00+0000\n" "PO-Revision-Date: 2020-12-19 07:00+0000\n"
"Last-Translator: albert <albert.serra.monner@gmail.com>\n" "Last-Translator: albert <albert.serra.monner@gmail.com>\n"
"Language-Team: Catalan <https://translate.pretix.eu/projects/pretix/pretix-" "Language-Team: Catalan <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -129,18 +129,18 @@ msgstr ""
msgid "Mercado Pago" msgid "Mercado Pago"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:157 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:159
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48 #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
msgid "Continue" msgid "Continue"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:215 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:217
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183
msgid "Confirming your payment …" msgid "Confirming your payment …"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:240 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:242
msgid "Payment method unavailable" msgid "Payment method unavailable"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-26 18:57+0000\n" "POT-Creation-Date: 2022-11-07 15:22+0000\n"
"PO-Revision-Date: 2021-12-06 23:00+0000\n" "PO-Revision-Date: 2021-12-06 23:00+0000\n"
"Last-Translator: Ondřej Sokol <osokol@treesoft.cz>\n" "Last-Translator: Ondřej Sokol <osokol@treesoft.cz>\n"
"Language-Team: Czech <https://translate.pretix.eu/projects/pretix/pretix-js/" "Language-Team: Czech <https://translate.pretix.eu/projects/pretix/pretix-js/"
@@ -131,18 +131,18 @@ msgstr ""
msgid "Mercado Pago" msgid "Mercado Pago"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:157 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:159
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48 #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
msgid "Continue" msgid "Continue"
msgstr "Pokračovat" msgstr "Pokračovat"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:215 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:217
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183
msgid "Confirming your payment …" msgid "Confirming your payment …"
msgstr "Potvrzuji vaši platbu …" msgstr "Potvrzuji vaši platbu …"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:240 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:242
msgid "Payment method unavailable" msgid "Payment method unavailable"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-26 18:57+0000\n" "POT-Creation-Date: 2022-11-07 15:22+0000\n"
"PO-Revision-Date: 2022-04-01 13:36+0000\n" "PO-Revision-Date: 2022-04-01 13:36+0000\n"
"Last-Translator: Anna-itk <abc@aarhus.dk>\n" "Last-Translator: Anna-itk <abc@aarhus.dk>\n"
"Language-Team: Danish <https://translate.pretix.eu/projects/pretix/pretix-js/" "Language-Team: Danish <https://translate.pretix.eu/projects/pretix/pretix-js/"
@@ -130,7 +130,7 @@ msgstr ""
msgid "Mercado Pago" msgid "Mercado Pago"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:157 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:159
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48 #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
#, fuzzy #, fuzzy
#| msgctxt "widget" #| msgctxt "widget"
@@ -138,13 +138,13 @@ msgstr ""
msgid "Continue" msgid "Continue"
msgstr "Fortsæt" msgstr "Fortsæt"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:215 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:217
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183
msgid "Confirming your payment …" msgid "Confirming your payment …"
msgstr "Bekræfter din betaling …" msgstr "Bekræfter din betaling …"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:240 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:242
msgid "Payment method unavailable" msgid "Payment method unavailable"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-26 18:57+0000\n" "POT-Creation-Date: 2022-11-07 15:22+0000\n"
"PO-Revision-Date: 2022-07-26 08:58+0000\n" "PO-Revision-Date: 2022-07-26 08:58+0000\n"
"Last-Translator: Raphael Michel <michel@rami.io>\n" "Last-Translator: Raphael Michel <michel@rami.io>\n"
"Language-Team: German <https://translate.pretix.eu/projects/pretix/pretix-js/" "Language-Team: German <https://translate.pretix.eu/projects/pretix/pretix-js/"
@@ -129,18 +129,18 @@ msgstr "WeChat Pay"
msgid "Mercado Pago" msgid "Mercado Pago"
msgstr "Mercado Pago" msgstr "Mercado Pago"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:157 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:159
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48 #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
msgid "Continue" msgid "Continue"
msgstr "Fortfahren" msgstr "Fortfahren"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:215 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:217
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183
msgid "Confirming your payment …" msgid "Confirming your payment …"
msgstr "Zahlung wird bestätigt …" msgstr "Zahlung wird bestätigt …"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:240 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:242
msgid "Payment method unavailable" msgid "Payment method unavailable"
msgstr "Zahlungsmethode nicht verfügbar" msgstr "Zahlungsmethode nicht verfügbar"
File diff suppressed because it is too large Load Diff
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-26 18:57+0000\n" "POT-Creation-Date: 2022-11-07 15:22+0000\n"
"PO-Revision-Date: 2022-07-26 08:58+0000\n" "PO-Revision-Date: 2022-07-26 08:58+0000\n"
"Last-Translator: Raphael Michel <michel@rami.io>\n" "Last-Translator: Raphael Michel <michel@rami.io>\n"
"Language-Team: German (informal) <https://translate.pretix.eu/projects/" "Language-Team: German (informal) <https://translate.pretix.eu/projects/"
@@ -129,18 +129,18 @@ msgstr "WeChat Pay"
msgid "Mercado Pago" msgid "Mercado Pago"
msgstr "Mercado Pago" msgstr "Mercado Pago"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:157 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:159
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48 #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
msgid "Continue" msgid "Continue"
msgstr "Fortfahren" msgstr "Fortfahren"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:215 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:217
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183
msgid "Confirming your payment …" msgid "Confirming your payment …"
msgstr "Zahlung wird bestätigt …" msgstr "Zahlung wird bestätigt …"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:240 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:242
msgid "Payment method unavailable" msgid "Payment method unavailable"
msgstr "Zahlungsmethode nicht verfügbar" msgstr "Zahlungsmethode nicht verfügbar"
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-26 18:57+0000\n" "POT-Creation-Date: 2022-11-07 15:22+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -128,18 +128,18 @@ msgstr ""
msgid "Mercado Pago" msgid "Mercado Pago"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:157 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:159
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48 #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
msgid "Continue" msgid "Continue"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:215 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:217
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183
msgid "Confirming your payment …" msgid "Confirming your payment …"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:240 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:242
msgid "Payment method unavailable" msgid "Payment method unavailable"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-26 18:57+0000\n" "POT-Creation-Date: 2022-11-07 15:22+0000\n"
"PO-Revision-Date: 2019-10-03 19:00+0000\n" "PO-Revision-Date: 2019-10-03 19:00+0000\n"
"Last-Translator: Chris Spy <chrispiropoulou@hotmail.com>\n" "Last-Translator: Chris Spy <chrispiropoulou@hotmail.com>\n"
"Language-Team: Greek <https://translate.pretix.eu/projects/pretix/pretix-js/" "Language-Team: Greek <https://translate.pretix.eu/projects/pretix/pretix-js/"
@@ -131,7 +131,7 @@ msgstr ""
msgid "Mercado Pago" msgid "Mercado Pago"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:157 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:159
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48 #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
#, fuzzy #, fuzzy
#| msgctxt "widget" #| msgctxt "widget"
@@ -139,13 +139,13 @@ msgstr ""
msgid "Continue" msgid "Continue"
msgstr "Συνέχεια" msgstr "Συνέχεια"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:215 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:217
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183
msgid "Confirming your payment …" msgid "Confirming your payment …"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:240 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:242
msgid "Payment method unavailable" msgid "Payment method unavailable"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-26 18:57+0000\n" "POT-Creation-Date: 2022-11-07 15:22+0000\n"
"PO-Revision-Date: 2021-11-25 21:00+0000\n" "PO-Revision-Date: 2021-11-25 21:00+0000\n"
"Last-Translator: Ismael Menéndez Fernández <ismael.menendez@balidea.com>\n" "Last-Translator: Ismael Menéndez Fernández <ismael.menendez@balidea.com>\n"
"Language-Team: Spanish <https://translate.pretix.eu/projects/pretix/pretix-" "Language-Team: Spanish <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -131,18 +131,18 @@ msgstr ""
msgid "Mercado Pago" msgid "Mercado Pago"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:157 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:159
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48 #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
msgid "Continue" msgid "Continue"
msgstr "Continuar" msgstr "Continuar"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:215 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:217
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183
msgid "Confirming your payment …" msgid "Confirming your payment …"
msgstr "Confirmando el pago…" msgstr "Confirmando el pago…"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:240 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:242
msgid "Payment method unavailable" msgid "Payment method unavailable"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-26 18:57+0000\n" "POT-Creation-Date: 2022-11-07 15:22+0000\n"
"PO-Revision-Date: 2021-11-10 05:00+0000\n" "PO-Revision-Date: 2021-11-10 05:00+0000\n"
"Last-Translator: Jaakko Rinta-Filppula <jaakko@r-f.fi>\n" "Last-Translator: Jaakko Rinta-Filppula <jaakko@r-f.fi>\n"
"Language-Team: Finnish <https://translate.pretix.eu/projects/pretix/pretix-" "Language-Team: Finnish <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -131,7 +131,7 @@ msgstr ""
msgid "Mercado Pago" msgid "Mercado Pago"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:157 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:159
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48 #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
#, fuzzy #, fuzzy
#| msgctxt "widget" #| msgctxt "widget"
@@ -139,13 +139,13 @@ msgstr ""
msgid "Continue" msgid "Continue"
msgstr "Jatka" msgstr "Jatka"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:215 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:217
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183
msgid "Confirming your payment …" msgid "Confirming your payment …"
msgstr "Maksuasi vahvistetaan …" msgstr "Maksuasi vahvistetaan …"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:240 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:242
msgid "Payment method unavailable" msgid "Payment method unavailable"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: French\n" "Project-Id-Version: French\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-26 18:57+0000\n" "POT-Creation-Date: 2022-11-07 15:22+0000\n"
"PO-Revision-Date: 2022-04-07 10:40+0000\n" "PO-Revision-Date: 2022-04-07 10:40+0000\n"
"Last-Translator: Eva-Maria Obermann <obermann@rami.io>\n" "Last-Translator: Eva-Maria Obermann <obermann@rami.io>\n"
"Language-Team: French <https://translate.pretix.eu/projects/pretix/pretix-js/" "Language-Team: French <https://translate.pretix.eu/projects/pretix/pretix-js/"
@@ -130,7 +130,7 @@ msgstr ""
msgid "Mercado Pago" msgid "Mercado Pago"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:157 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:159
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48 #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
#, fuzzy #, fuzzy
#| msgctxt "widget" #| msgctxt "widget"
@@ -138,13 +138,13 @@ msgstr ""
msgid "Continue" msgid "Continue"
msgstr "Continuer" msgstr "Continuer"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:215 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:217
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183
msgid "Confirming your payment …" msgid "Confirming your payment …"
msgstr "Confirmation de votre paiment…" msgstr "Confirmation de votre paiment…"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:240 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:242
msgid "Payment method unavailable" msgid "Payment method unavailable"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-26 18:57+0000\n" "POT-Creation-Date: 2022-11-07 15:22+0000\n"
"PO-Revision-Date: 2022-02-22 22:00+0000\n" "PO-Revision-Date: 2022-02-22 22:00+0000\n"
"Last-Translator: Ismael Menéndez Fernández <ismael.menendez@balidea.com>\n" "Last-Translator: Ismael Menéndez Fernández <ismael.menendez@balidea.com>\n"
"Language-Team: Galician <https://translate.pretix.eu/projects/pretix/pretix-" "Language-Team: Galician <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -131,18 +131,18 @@ msgstr ""
msgid "Mercado Pago" msgid "Mercado Pago"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:157 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:159
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48 #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
msgid "Continue" msgid "Continue"
msgstr "Continuar" msgstr "Continuar"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:215 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:217
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183
msgid "Confirming your payment …" msgid "Confirming your payment …"
msgstr "Confirmando o pagamento…" msgstr "Confirmando o pagamento…"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:240 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:242
msgid "Payment method unavailable" msgid "Payment method unavailable"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-26 18:57+0000\n" "POT-Creation-Date: 2022-11-07 15:22+0000\n"
"PO-Revision-Date: 2021-09-24 13:54+0000\n" "PO-Revision-Date: 2021-09-24 13:54+0000\n"
"Last-Translator: ofirtro <ofir.tro@gmail.com>\n" "Last-Translator: ofirtro <ofir.tro@gmail.com>\n"
"Language-Team: Hebrew <https://translate.pretix.eu/projects/pretix/pretix-js/" "Language-Team: Hebrew <https://translate.pretix.eu/projects/pretix/pretix-js/"
@@ -130,18 +130,18 @@ msgstr ""
msgid "Mercado Pago" msgid "Mercado Pago"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:157 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:159
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48 #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
msgid "Continue" msgid "Continue"
msgstr "המשך" msgstr "המשך"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:215 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:217
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183
msgid "Confirming your payment …" msgid "Confirming your payment …"
msgstr "מאמת את התשלום שלך…" msgstr "מאמת את התשלום שלך…"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:240 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:242
msgid "Payment method unavailable" msgid "Payment method unavailable"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-26 18:57+0000\n" "POT-Creation-Date: 2022-11-07 15:22+0000\n"
"PO-Revision-Date: 2020-01-24 08:00+0000\n" "PO-Revision-Date: 2020-01-24 08:00+0000\n"
"Last-Translator: Prokaj Miklós <mixolid0@gmail.com>\n" "Last-Translator: Prokaj Miklós <mixolid0@gmail.com>\n"
"Language-Team: Hungarian <https://translate.pretix.eu/projects/pretix/pretix-" "Language-Team: Hungarian <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -131,7 +131,7 @@ msgstr ""
msgid "Mercado Pago" msgid "Mercado Pago"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:157 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:159
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48 #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
#, fuzzy #, fuzzy
#| msgctxt "widget" #| msgctxt "widget"
@@ -139,13 +139,13 @@ msgstr ""
msgid "Continue" msgid "Continue"
msgstr "Folytatás" msgstr "Folytatás"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:215 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:217
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183
msgid "Confirming your payment …" msgid "Confirming your payment …"
msgstr "A fizetés megerősítése…" msgstr "A fizetés megerősítése…"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:240 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:242
msgid "Payment method unavailable" msgid "Payment method unavailable"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-26 18:57+0000\n" "POT-Creation-Date: 2022-11-07 15:22+0000\n"
"PO-Revision-Date: 2022-05-08 19:00+0000\n" "PO-Revision-Date: 2022-05-08 19:00+0000\n"
"Last-Translator: Emanuele Signoretta <signorettae@gmail.com>\n" "Last-Translator: Emanuele Signoretta <signorettae@gmail.com>\n"
"Language-Team: Italian <https://translate.pretix.eu/projects/pretix/pretix-" "Language-Team: Italian <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -133,18 +133,18 @@ msgstr ""
msgid "Mercado Pago" msgid "Mercado Pago"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:157 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:159
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48 #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
msgid "Continue" msgid "Continue"
msgstr "Continua" msgstr "Continua"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:215 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:217
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183
msgid "Confirming your payment …" msgid "Confirming your payment …"
msgstr "Stiamo processando il tuo pagamento …" msgstr "Stiamo processando il tuo pagamento …"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:240 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:242
msgid "Payment method unavailable" msgid "Payment method unavailable"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-26 18:57+0000\n" "POT-Creation-Date: 2022-11-07 15:22+0000\n"
"PO-Revision-Date: 2022-03-15 00:00+0000\n" "PO-Revision-Date: 2022-03-15 00:00+0000\n"
"Last-Translator: Yuriko Matsunami <y.matsunami@enobyte.com>\n" "Last-Translator: Yuriko Matsunami <y.matsunami@enobyte.com>\n"
"Language-Team: Japanese <https://translate.pretix.eu/projects/pretix/pretix-" "Language-Team: Japanese <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -131,18 +131,18 @@ msgstr ""
msgid "Mercado Pago" msgid "Mercado Pago"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:157 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:159
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48 #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
msgid "Continue" msgid "Continue"
msgstr "次へ" msgstr "次へ"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:215 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:217
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183
msgid "Confirming your payment …" msgid "Confirming your payment …"
msgstr "お支払い内容の確認" msgstr "お支払い内容の確認"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:240 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:242
msgid "Payment method unavailable" msgid "Payment method unavailable"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-26 18:57+0000\n" "POT-Creation-Date: 2022-11-07 15:22+0000\n"
"PO-Revision-Date: 2022-04-06 03:00+0000\n" "PO-Revision-Date: 2022-04-06 03:00+0000\n"
"Last-Translator: Liga V <lerning_by_dreaming@gmx.de>\n" "Last-Translator: Liga V <lerning_by_dreaming@gmx.de>\n"
"Language-Team: Latvian <https://translate.pretix.eu/projects/pretix/pretix-" "Language-Team: Latvian <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -132,18 +132,18 @@ msgstr ""
msgid "Mercado Pago" msgid "Mercado Pago"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:157 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:159
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48 #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
msgid "Continue" msgid "Continue"
msgstr "Turpināt" msgstr "Turpināt"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:215 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:217
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183
msgid "Confirming your payment …" msgid "Confirming your payment …"
msgstr "Jūsu maksājums tiek apstrādāts …" msgstr "Jūsu maksājums tiek apstrādāts …"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:240 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:242
msgid "Payment method unavailable" msgid "Payment method unavailable"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-26 18:57+0000\n" "POT-Creation-Date: 2022-11-07 15:22+0000\n"
"PO-Revision-Date: 2022-06-20 02:00+0000\n" "PO-Revision-Date: 2022-06-20 02:00+0000\n"
"Last-Translator: fyksen <fredrik@fyksen.me>\n" "Last-Translator: fyksen <fredrik@fyksen.me>\n"
"Language-Team: Norwegian Bokmål <https://translate.pretix.eu/projects/pretix/" "Language-Team: Norwegian Bokmål <https://translate.pretix.eu/projects/pretix/"
@@ -129,18 +129,18 @@ msgstr "WeChat Pay"
msgid "Mercado Pago" msgid "Mercado Pago"
msgstr "Mercado Pago" msgstr "Mercado Pago"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:157 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:159
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48 #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
msgid "Continue" msgid "Continue"
msgstr "Fortsett" msgstr "Fortsett"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:215 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:217
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183
msgid "Confirming your payment …" msgid "Confirming your payment …"
msgstr "Bekrefter betalingen din…" msgstr "Bekrefter betalingen din…"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:240 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:242
msgid "Payment method unavailable" msgid "Payment method unavailable"
msgstr "Betalingsmetode ikke tilgjengelig" msgstr "Betalingsmetode ikke tilgjengelig"
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 1\n" "Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-26 18:57+0000\n" "POT-Creation-Date: 2022-11-07 15:22+0000\n"
"PO-Revision-Date: 2021-10-29 02:00+0000\n" "PO-Revision-Date: 2021-10-29 02:00+0000\n"
"Last-Translator: Maarten van den Berg <maartenberg1@gmail.com>\n" "Last-Translator: Maarten van den Berg <maartenberg1@gmail.com>\n"
"Language-Team: Dutch <https://translate.pretix.eu/projects/pretix/pretix-js/" "Language-Team: Dutch <https://translate.pretix.eu/projects/pretix/pretix-js/"
@@ -130,18 +130,18 @@ msgstr ""
msgid "Mercado Pago" msgid "Mercado Pago"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:157 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:159
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48 #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
msgid "Continue" msgid "Continue"
msgstr "Doorgaan" msgstr "Doorgaan"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:215 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:217
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183
msgid "Confirming your payment …" msgid "Confirming your payment …"
msgstr "Betaling bevestigen …" msgstr "Betaling bevestigen …"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:240 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:242
msgid "Payment method unavailable" msgid "Payment method unavailable"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-26 18:57+0000\n" "POT-Creation-Date: 2022-11-07 15:22+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n" "Last-Translator: Automatically generated\n"
"Language-Team: none\n" "Language-Team: none\n"
@@ -127,18 +127,18 @@ msgstr ""
msgid "Mercado Pago" msgid "Mercado Pago"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:157 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:159
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48 #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
msgid "Continue" msgid "Continue"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:215 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:217
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183
msgid "Confirming your payment …" msgid "Confirming your payment …"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:240 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:242
msgid "Payment method unavailable" msgid "Payment method unavailable"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-26 18:57+0000\n" "POT-Creation-Date: 2022-11-07 15:22+0000\n"
"PO-Revision-Date: 2021-08-05 04:00+0000\n" "PO-Revision-Date: 2021-08-05 04:00+0000\n"
"Last-Translator: Maarten van den Berg <maartenberg1@gmail.com>\n" "Last-Translator: Maarten van den Berg <maartenberg1@gmail.com>\n"
"Language-Team: Dutch (informal) <https://translate.pretix.eu/projects/pretix/" "Language-Team: Dutch (informal) <https://translate.pretix.eu/projects/pretix/"
@@ -131,18 +131,18 @@ msgstr ""
msgid "Mercado Pago" msgid "Mercado Pago"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:157 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:159
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48 #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
msgid "Continue" msgid "Continue"
msgstr "Doorgaan" msgstr "Doorgaan"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:215 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:217
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183
msgid "Confirming your payment …" msgid "Confirming your payment …"
msgstr "Betaling bevestigen …" msgstr "Betaling bevestigen …"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:240 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:242
msgid "Payment method unavailable" msgid "Payment method unavailable"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-26 18:57+0000\n" "POT-Creation-Date: 2022-11-07 15:22+0000\n"
"PO-Revision-Date: 2019-09-24 19:00+0000\n" "PO-Revision-Date: 2019-09-24 19:00+0000\n"
"Last-Translator: Serge Bazanski <q3k@hackerspace.pl>\n" "Last-Translator: Serge Bazanski <q3k@hackerspace.pl>\n"
"Language-Team: Polish <https://translate.pretix.eu/projects/pretix/pretix-js/" "Language-Team: Polish <https://translate.pretix.eu/projects/pretix/pretix-js/"
@@ -132,7 +132,7 @@ msgstr ""
msgid "Mercado Pago" msgid "Mercado Pago"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:157 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:159
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48 #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
#, fuzzy #, fuzzy
#| msgctxt "widget" #| msgctxt "widget"
@@ -140,13 +140,13 @@ msgstr ""
msgid "Continue" msgid "Continue"
msgstr "Dalej" msgstr "Dalej"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:215 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:217
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183
msgid "Confirming your payment …" msgid "Confirming your payment …"
msgstr "Potwierdzanie płatności…" msgstr "Potwierdzanie płatności…"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:240 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:242
msgid "Payment method unavailable" msgid "Payment method unavailable"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-26 18:57+0000\n" "POT-Creation-Date: 2022-11-07 15:22+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n" "Last-Translator: Automatically generated\n"
"Language-Team: none\n" "Language-Team: none\n"
@@ -128,18 +128,18 @@ msgstr ""
msgid "Mercado Pago" msgid "Mercado Pago"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:157 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:159
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48 #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
msgid "Continue" msgid "Continue"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:215 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:217
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183
msgid "Confirming your payment …" msgid "Confirming your payment …"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:240 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:242
msgid "Payment method unavailable" msgid "Payment method unavailable"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-26 18:57+0000\n" "POT-Creation-Date: 2022-11-07 15:22+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -128,18 +128,18 @@ msgstr ""
msgid "Mercado Pago" msgid "Mercado Pago"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:157 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:159
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48 #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
msgid "Continue" msgid "Continue"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:215 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:217
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183
msgid "Confirming your payment …" msgid "Confirming your payment …"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:240 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:242
msgid "Payment method unavailable" msgid "Payment method unavailable"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-26 18:57+0000\n" "POT-Creation-Date: 2022-11-07 15:22+0000\n"
"PO-Revision-Date: 2019-03-19 09:00+0000\n" "PO-Revision-Date: 2019-03-19 09:00+0000\n"
"Last-Translator: Vitor Reis <vitor.reis7@gmail.com>\n" "Last-Translator: Vitor Reis <vitor.reis7@gmail.com>\n"
"Language-Team: Portuguese (Brazil) <https://translate.pretix.eu/projects/" "Language-Team: Portuguese (Brazil) <https://translate.pretix.eu/projects/"
@@ -129,7 +129,7 @@ msgstr ""
msgid "Mercado Pago" msgid "Mercado Pago"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:157 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:159
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48 #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
#, fuzzy #, fuzzy
#| msgctxt "widget" #| msgctxt "widget"
@@ -137,13 +137,13 @@ msgstr ""
msgid "Continue" msgid "Continue"
msgstr "Continuar" msgstr "Continuar"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:215 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:217
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183
msgid "Confirming your payment …" msgid "Confirming your payment …"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:240 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:242
msgid "Payment method unavailable" msgid "Payment method unavailable"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
+13 -16
View File
@@ -7,9 +7,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-26 18:57+0000\n" "POT-Creation-Date: 2022-11-07 15:22+0000\n"
"PO-Revision-Date: 2020-10-27 06:00+0000\n" "PO-Revision-Date: 2022-11-07 14:50+0000\n"
"Last-Translator: David Vaz <davidmgvaz@gmail.com>\n" "Last-Translator: Fazenda Dengo <fazendadengo@gmail.com>\n"
"Language-Team: Portuguese (Portugal) <https://translate.pretix.eu/projects/" "Language-Team: Portuguese (Portugal) <https://translate.pretix.eu/projects/"
"pretix/pretix-js/pt_PT/>\n" "pretix/pretix-js/pt_PT/>\n"
"Language: pt_PT\n" "Language: pt_PT\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n" "Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 3.10.3\n" "X-Generator: Weblate 4.14.1\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56 #: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62 #: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -131,7 +131,7 @@ msgstr ""
msgid "Mercado Pago" msgid "Mercado Pago"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:157 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:159
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48 #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
#, fuzzy #, fuzzy
#| msgctxt "widget" #| msgctxt "widget"
@@ -139,13 +139,13 @@ msgstr ""
msgid "Continue" msgid "Continue"
msgstr "Continuar" msgstr "Continuar"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:215 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:217
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183
msgid "Confirming your payment …" msgid "Confirming your payment …"
msgstr "A confirmar o seu pagamento…" msgstr "A confirmar o seu pagamento…"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:240 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:242
msgid "Payment method unavailable" msgid "Payment method unavailable"
msgstr "" msgstr ""
@@ -634,27 +634,24 @@ msgstr[0] "(mais uma data)"
msgstr[1] "(mais {num} datas)" msgstr[1] "(mais {num} datas)"
#: pretix/static/pretixpresale/js/ui/cart.js:43 #: pretix/static/pretixpresale/js/ui/cart.js:43
#, fuzzy
#| msgid "The items in your cart are no longer reserved for you."
msgid "" msgid ""
"The items in your cart are no longer reserved for you. You can still " "The items in your cart are no longer reserved for you. You can still "
"complete your order as long as they’re available." "complete your order as long as they’re available."
msgstr "Os itens no seu carrinho já não estão reservados para si." msgstr ""
"Os itens no seu carrinho já não estão mais reservados para você. Você ainda "
"pode finalizar o seu pedido, desde que eles estejam disponíveis."
#: pretix/static/pretixpresale/js/ui/cart.js:45 #: pretix/static/pretixpresale/js/ui/cart.js:45
msgid "Cart expired" msgid "Cart expired"
msgstr "Carrinho expirado" msgstr "Carrinho expirado"
#: pretix/static/pretixpresale/js/ui/cart.js:50 #: pretix/static/pretixpresale/js/ui/cart.js:50
#, fuzzy
#| msgid "The items in your cart are reserved for you for one minute."
#| msgid_plural ""
#| "The items in your cart are reserved for you for {num} minutes."
msgid "The items in your cart are reserved for you for one minute." msgid "The items in your cart are reserved for you for one minute."
msgid_plural "The items in your cart are reserved for you for {num} minutes." msgid_plural "The items in your cart are reserved for you for {num} minutes."
msgstr[0] "Os artigos no seu carrinho estão reservados para si por um minuto." msgstr[0] ""
"Os artigos no seu carrinho estão reservados para você por um minuto."
msgstr[1] "" msgstr[1] ""
"Os artigos no seu carrinho estão reservados para si por {num} minutos." "Os artigos no seu carrinho estão reservados para você por {num} minutos."
#: pretix/static/pretixpresale/js/ui/main.js:152 #: pretix/static/pretixpresale/js/ui/main.js:152
msgid "The organizer keeps %(currency)s %(amount)s" msgid "The organizer keeps %(currency)s %(amount)s"
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-26 18:57+0000\n" "POT-Creation-Date: 2022-11-07 15:22+0000\n"
"PO-Revision-Date: 2022-04-29 04:00+0000\n" "PO-Revision-Date: 2022-04-29 04:00+0000\n"
"Last-Translator: Edd28 <chitu_edy@yahoo.com>\n" "Last-Translator: Edd28 <chitu_edy@yahoo.com>\n"
"Language-Team: Romanian <https://translate.pretix.eu/projects/pretix/pretix-" "Language-Team: Romanian <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -130,18 +130,18 @@ msgstr "WeChat Pay"
msgid "Mercado Pago" msgid "Mercado Pago"
msgstr "Mercado Pago" msgstr "Mercado Pago"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:157 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:159
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48 #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
msgid "Continue" msgid "Continue"
msgstr "Continuă" msgstr "Continuă"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:215 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:217
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183
msgid "Confirming your payment …" msgid "Confirming your payment …"
msgstr "Se confirmă plata…" msgstr "Se confirmă plata…"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:240 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:242
msgid "Payment method unavailable" msgid "Payment method unavailable"
msgstr "Metodă de plată indisponibilă" msgstr "Metodă de plată indisponibilă"
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-26 18:57+0000\n" "POT-Creation-Date: 2022-11-07 15:22+0000\n"
"PO-Revision-Date: 2021-08-09 13:10+0000\n" "PO-Revision-Date: 2021-08-09 13:10+0000\n"
"Last-Translator: Svyatoslav <slava@digitalarthouse.eu>\n" "Last-Translator: Svyatoslav <slava@digitalarthouse.eu>\n"
"Language-Team: Russian <https://translate.pretix.eu/projects/pretix/pretix-" "Language-Team: Russian <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -132,7 +132,7 @@ msgstr ""
msgid "Mercado Pago" msgid "Mercado Pago"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:157 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:159
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48 #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
#, fuzzy #, fuzzy
#| msgctxt "widget" #| msgctxt "widget"
@@ -140,13 +140,13 @@ msgstr ""
msgid "Continue" msgid "Continue"
msgstr "Продолжить" msgstr "Продолжить"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:215 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:217
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183
msgid "Confirming your payment …" msgid "Confirming your payment …"
msgstr "Подтверждается ваш платёж…" msgstr "Подтверждается ваш платёж…"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:240 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:242
msgid "Payment method unavailable" msgid "Payment method unavailable"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-26 18:57+0000\n" "POT-Creation-Date: 2022-11-07 15:22+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n" "Last-Translator: Automatically generated\n"
"Language-Team: none\n" "Language-Team: none\n"
@@ -127,18 +127,18 @@ msgstr ""
msgid "Mercado Pago" msgid "Mercado Pago"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:157 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:159
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48 #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
msgid "Continue" msgid "Continue"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:215 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:217
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183
msgid "Confirming your payment …" msgid "Confirming your payment …"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:240 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:242
msgid "Payment method unavailable" msgid "Payment method unavailable"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-26 18:57+0000\n" "POT-Creation-Date: 2022-11-07 15:22+0000\n"
"PO-Revision-Date: 2019-08-27 08:00+0000\n" "PO-Revision-Date: 2019-08-27 08:00+0000\n"
"Last-Translator: Bostjan Marusic <bostjan@brokenbones.si>\n" "Last-Translator: Bostjan Marusic <bostjan@brokenbones.si>\n"
"Language-Team: Slovenian <https://translate.pretix.eu/projects/pretix/pretix-" "Language-Team: Slovenian <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -132,7 +132,7 @@ msgstr ""
msgid "Mercado Pago" msgid "Mercado Pago"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:157 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:159
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48 #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
#, fuzzy #, fuzzy
#| msgctxt "widget" #| msgctxt "widget"
@@ -140,13 +140,13 @@ msgstr ""
msgid "Continue" msgid "Continue"
msgstr "Nadaljuj" msgstr "Nadaljuj"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:215 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:217
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183
msgid "Confirming your payment …" msgid "Confirming your payment …"
msgstr "Potrjevanje plačila …" msgstr "Potrjevanje plačila …"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:240 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:242
msgid "Payment method unavailable" msgid "Payment method unavailable"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-26 18:57+0000\n" "POT-Creation-Date: 2022-11-07 15:22+0000\n"
"PO-Revision-Date: 2022-03-03 07:00+0000\n" "PO-Revision-Date: 2022-03-03 07:00+0000\n"
"Last-Translator: MaLund13 <mart.lund13@gmail.com>\n" "Last-Translator: MaLund13 <mart.lund13@gmail.com>\n"
"Language-Team: Swedish <https://translate.pretix.eu/projects/pretix/pretix-" "Language-Team: Swedish <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -131,18 +131,18 @@ msgstr ""
msgid "Mercado Pago" msgid "Mercado Pago"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:157 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:159
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48 #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
msgid "Continue" msgid "Continue"
msgstr "Fortsätt" msgstr "Fortsätt"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:215 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:217
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183
msgid "Confirming your payment …" msgid "Confirming your payment …"
msgstr "Bekräftar din betalning …" msgstr "Bekräftar din betalning …"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:240 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:242
msgid "Payment method unavailable" msgid "Payment method unavailable"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-26 18:57+0000\n" "POT-Creation-Date: 2022-11-07 15:22+0000\n"
"PO-Revision-Date: 2018-09-03 06:36+0000\n" "PO-Revision-Date: 2018-09-03 06:36+0000\n"
"Last-Translator: Yunus Fırat Pişkin <firat.piskin@idvlabs.com>\n" "Last-Translator: Yunus Fırat Pişkin <firat.piskin@idvlabs.com>\n"
"Language-Team: Turkish <https://translate.pretix.eu/projects/pretix/pretix-" "Language-Team: Turkish <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -129,7 +129,7 @@ msgstr ""
msgid "Mercado Pago" msgid "Mercado Pago"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:157 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:159
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48 #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
#, fuzzy #, fuzzy
#| msgctxt "widget" #| msgctxt "widget"
@@ -137,13 +137,13 @@ msgstr ""
msgid "Continue" msgid "Continue"
msgstr "Devam et" msgstr "Devam et"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:215 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:217
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183
msgid "Confirming your payment …" msgid "Confirming your payment …"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:240 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:242
msgid "Payment method unavailable" msgid "Payment method unavailable"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-26 18:57+0000\n" "POT-Creation-Date: 2022-11-07 15:22+0000\n"
"PO-Revision-Date: 2022-05-10 02:00+0000\n" "PO-Revision-Date: 2022-05-10 02:00+0000\n"
"Last-Translator: Iryna N <in380@nyu.edu>\n" "Last-Translator: Iryna N <in380@nyu.edu>\n"
"Language-Team: Ukrainian <https://translate.pretix.eu/projects/pretix/pretix-" "Language-Team: Ukrainian <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -134,18 +134,18 @@ msgstr ""
msgid "Mercado Pago" msgid "Mercado Pago"
msgstr "" msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:157 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:159
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48 #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
msgid "Continue" msgid "Continue"
msgstr "Продовжити" msgstr "Продовжити"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:215 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:217
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:152
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183 #: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:183
msgid "Confirming your payment …" msgid "Confirming your payment …"
msgstr "Підтверджується ваш платіж…" msgstr "Підтверджується ваш платіж…"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:240 #: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:242
msgid "Payment method unavailable" msgid "Payment method unavailable"
msgstr "" msgstr ""
File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More