Compare commits

..

5 Commits

Author SHA1 Message Date
Raphael Michel
6920b602ad Pin Django 4.2.25, shouldn't affect us, but better safe than sorry 2025-10-06 11:59:55 +02:00
Raphael Michel
00c78a2ed3 Do not run during tests 2025-10-06 10:12:33 +02:00
Raphael Michel
dff26910e5 Rename parameter, add test 2025-10-06 09:51:24 +02:00
Raphael Michel
add02262fc Update src/pretix/helpers/database.py
Co-authored-by: Richard Schreiber <schreiber@rami.io>
2025-10-02 12:57:55 +02:00
Raphael Michel
f86621a6ec Run exporters in repeatable read by default (Z#23173095) 2025-09-30 12:15:54 +02:00
899 changed files with 108282 additions and 157227 deletions

View File

@@ -1,7 +1,7 @@
This file is part of pretix (Community Edition). This file is part of pretix (Community Edition).
Copyright (C) 2014-2020 Raphael Michel and contributors Copyright (C) 2014-2020 Raphael Michel and contributors
Copyright (C) 2020-today pretix GmbH and contributors Copyright (C) 2020-2021 rami.io GmbH and contributors
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
Public License as published by the Free Software Foundation in version 3 of the License. Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1030,8 +1030,8 @@ Creating orders
* ``internal_reference`` * ``internal_reference``
* ``vat_id`` * ``vat_id``
* ``vat_id_validated`` (optional) If you need support for reverse charge (rarely the case), you need to check * ``vat_id_validated`` (optional) If you need support for reverse charge (rarely the case), you need to check
yourself if the passed VAT ID is a valid EU VAT ID. In that case, set this to ``true``. Only valid VAT IDs will yourself if the passed VAT ID is a valid EU VAT ID. In that case, set this to ``true``. Only valid VAT IDs will
trigger reverse charge taxation. Don't forget to set ``is_business`` as well! trigger reverse charge taxation. Don't forget to set ``is_business`` as well!
* ``transmission_type`` (optional, defaults to ``email``) * ``transmission_type`` (optional, defaults to ``email``)
* ``transmission_info`` (optional, see also :ref:`rest-transmission-types`) * ``transmission_info`` (optional, see also :ref:`rest-transmission-types`)
@@ -1058,7 +1058,6 @@ Creating orders
* ``valid_until`` (optional, if both ``valid_from`` and ``valid_until`` are **missing** (not ``null``) the availability will be computed from the given product) * ``valid_until`` (optional, if both ``valid_from`` and ``valid_until`` are **missing** (not ``null``) the availability will be computed from the given product)
* ``requested_valid_from`` (optional, can be set **instead** of ``valid_from`` and ``valid_until`` to signal a user choice for the start time that may or may not be respected) * ``requested_valid_from`` (optional, can be set **instead** of ``valid_from`` and ``valid_until`` to signal a user choice for the start time that may or may not be respected)
* ``use_reusable_medium`` (optional, causes the new ticket to take over the given reusable medium, identified by its ID) * ``use_reusable_medium`` (optional, causes the new ticket to take over the given reusable medium, identified by its ID)
* ``discount`` (optional, only possible if ``price`` is set; attention: if this is set to not-``null`` on any position, automatic calculation of discounts will not run)
* ``answers`` * ``answers``
* ``question`` * ``question``
@@ -2509,7 +2508,6 @@ Order payment endpoints
{ {
"amount": "23.00", "amount": "23.00",
"comment": "Overpayment",
"mark_canceled": false "mark_canceled": false
} }

View File

@@ -28,14 +28,14 @@ classifiers = [
dependencies = [ dependencies = [
"arabic-reshaper==3.0.0", # Support for Arabic in reportlab "arabic-reshaper==3.0.0", # Support for Arabic in reportlab
"babel", "babel",
"BeautifulSoup4==4.14.*", "BeautifulSoup4==4.13.*",
"bleach==6.2.*", "bleach==6.2.*",
"celery==5.5.*", "celery==5.5.*",
"chardet==5.2.*", "chardet==5.2.*",
"cryptography>=44.0.0", "cryptography>=44.0.0",
"css-inline==0.17.*", "css-inline==0.17.*",
"defusedcsv>=1.1.0", "defusedcsv>=1.1.0",
"Django[argon2]==4.2.*,>=4.2.24", "Django[argon2]==4.2.*,>=4.2.25",
"django-bootstrap3==25.2", "django-bootstrap3==25.2",
"django-compressor==4.5.1", "django-compressor==4.5.1",
"django-countries==7.6.*", "django-countries==7.6.*",
@@ -76,12 +76,12 @@ dependencies = [
"phonenumberslite==9.0.*", "phonenumberslite==9.0.*",
"Pillow==11.3.*", "Pillow==11.3.*",
"pretix-plugin-build", "pretix-plugin-build",
"protobuf==6.33.*", "protobuf==6.32.*",
"psycopg2-binary", "psycopg2-binary",
"pycountry", "pycountry",
"pycparser==2.23", "pycparser==2.23",
"pycryptodome==3.23.*", "pycryptodome==3.23.*",
"pypdf==6.1.*", "pypdf==6.0.*",
"python-bidi==0.6.*", # Support for Arabic in reportlab "python-bidi==0.6.*", # Support for Arabic in reportlab
"python-dateutil==2.9.*", "python-dateutil==2.9.*",
"pytz", "pytz",
@@ -91,8 +91,8 @@ dependencies = [
"redis==6.4.*", "redis==6.4.*",
"reportlab==4.4.*", "reportlab==4.4.*",
"requests==2.32.*", "requests==2.32.*",
"sentry-sdk==2.42.*", "sentry-sdk==2.38.*",
"sepaxml==2.7.*", "sepaxml==2.6.*",
"stripe==7.9.*", "stripe==7.9.*",
"text-unidecode==1.*", "text-unidecode==1.*",
"tlds>=2020041600", "tlds>=2020041600",
@@ -107,13 +107,13 @@ dependencies = [
[project.optional-dependencies] [project.optional-dependencies]
memcached = ["pylibmc"] memcached = ["pylibmc"]
dev = [ dev = [
"aiohttp==3.13.*", "aiohttp==3.12.*",
"coverage", "coverage",
"coveralls", "coveralls",
"fakeredis==2.32.*", "fakeredis==2.31.*",
"flake8==7.3.*", "flake8==7.3.*",
"freezegun", "freezegun",
"isort==6.1.*", "isort==6.0.*",
"pep8-naming==0.15.*", "pep8-naming==0.15.*",
"potypo", "potypo",
"pytest-asyncio>=0.24", "pytest-asyncio>=0.24",

View File

@@ -2,8 +2,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.
@@ -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__ = "2025.9.3" __version__ = "2024.9.0.dev0"

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.
@@ -550,7 +550,7 @@ class QuestionSerializer(I18nAwareModelSerializer):
if full_data.get('show_during_checkin') and full_data.get('type') in Question.SHOW_DURING_CHECKIN_UNSUPPORTED: if full_data.get('show_during_checkin') and full_data.get('type') in Question.SHOW_DURING_CHECKIN_UNSUPPORTED:
raise ValidationError(_('This type of question cannot be shown during check-in.')) raise ValidationError(_('This type of question cannot be shown during check-in.'))
Question.clean_items(event, full_data.get('items') or []) Question.clean_items(event, full_data.get('items'))
return data return data
def validate_options(self, value): def validate_options(self, value):
@@ -566,7 +566,7 @@ class QuestionSerializer(I18nAwareModelSerializer):
@transaction.atomic @transaction.atomic
def create(self, validated_data): def create(self, validated_data):
options_data = validated_data.pop('options') if 'options' in validated_data else [] options_data = validated_data.pop('options') if 'options' in validated_data else []
items = validated_data.pop('items', []) items = validated_data.pop('items')
question = Question.objects.create(**validated_data) question = Question.objects.create(**validated_data)
question.items.set(items) question.items.set(items)

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.
@@ -1005,7 +1005,7 @@ class OrderPositionCreateSerializer(I18nAwareModelSerializer):
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', 'is_bundled', 'company', 'street', 'zipcode', 'city', 'country', 'state', 'is_bundled',
'secret', 'addon_to', 'subevent', 'answers', 'seat', 'voucher', 'valid_from', 'valid_until', 'secret', 'addon_to', 'subevent', 'answers', 'seat', 'voucher', 'valid_from', 'valid_until',
'requested_valid_from', 'use_reusable_medium', 'discount') 'requested_valid_from', 'use_reusable_medium')
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
@@ -1101,10 +1101,6 @@ class OrderPositionCreateSerializer(I18nAwareModelSerializer):
{'state': ['"{}" is not a known subdivision of the country "{}".'.format(data.get('state'), cc)]} {'state': ['"{}" is not a known subdivision of the country "{}".'.format(data.get('state'), cc)]}
) )
if data.get('price') is None and data.get('discount'):
raise ValidationError(
{'discount': ['You can only specify a discount if you do the price computation, but price is not set.']}
)
return data return data
@@ -1164,7 +1160,6 @@ class OrderCreateSerializer(I18nAwareModelSerializer):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
self.fields['positions'].child.fields['voucher'].queryset = self.context['event'].vouchers.all() self.fields['positions'].child.fields['voucher'].queryset = self.context['event'].vouchers.all()
self.fields['positions'].child.fields['discount'].queryset = self.context['event'].discounts.all()
self.fields['customer'].queryset = self.context['event'].organizer.customers.all() self.fields['customer'].queryset = self.context['event'].organizer.customers.all()
self.fields['expires'].required = False self.fields['expires'].required = False
self.fields["sales_channel"].queryset = self.context["event"].organizer.sales_channels.all() self.fields["sales_channel"].queryset = self.context["event"].organizer.sales_channels.all()
@@ -1572,22 +1567,19 @@ class OrderCreateSerializer(I18nAwareModelSerializer):
pos.voucher_budget_use = max(listed_price - price_after_voucher, Decimal('0.00')) pos.voucher_budget_use = max(listed_price - price_after_voucher, Decimal('0.00'))
order_positions = [pos_data['__instance'] for pos_data in positions_data] order_positions = [pos_data['__instance'] for pos_data in positions_data]
if not any([p.get("discount") for p in positions_data]): discount_results = apply_discounts(
# If any discount is set by the client (i.e. pretixPOS), we do not recalculate but believe the client self.context['event'],
# to avoid differences in end results. order.sales_channel,
discount_results = apply_discounts( [
self.context['event'], (cp.item_id, cp.subevent_id, cp.subevent.date_from if cp.subevent_id else None, cp.price,
order.sales_channel, bool(cp.addon_to), cp.is_bundled, pos._voucher_discount)
[ for cp in order_positions
(cp.item_id, cp.subevent_id, cp.subevent.date_from if cp.subevent_id else None, cp.price, ]
bool(cp.addon_to), cp.is_bundled, pos._voucher_discount) )
for cp in order_positions for cp, (new_price, discount) in zip(order_positions, discount_results):
] if new_price != pos.price and pos._auto_generated_price:
) pos.price = new_price
for cp, (new_price, discount) in zip(order_positions, discount_results): pos.discount = discount
if new_price != pos.price and pos._auto_generated_price:
pos.price = new_price
pos.discount = discount
# Save instances # Save instances
for pos_data in positions_data: for pos_data in positions_data:

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.
@@ -74,11 +74,6 @@ class ExportersMixin:
@action(detail=True, methods=['GET'], url_name='download', url_path='download/(?P<asyncid>[^/]+)/(?P<cfid>[^/]+)') @action(detail=True, methods=['GET'], url_name='download', url_path='download/(?P<asyncid>[^/]+)/(?P<cfid>[^/]+)')
def download(self, *args, **kwargs): def download(self, *args, **kwargs):
cf = get_object_or_404(CachedFile, id=kwargs['cfid']) cf = get_object_or_404(CachedFile, id=kwargs['cfid'])
if not cf.allowed_for_session(self.request, "exporters-api"):
return Response(
{'status': 'failed', 'message': 'Unknown file ID or export failed'},
status=status.HTTP_410_GONE
)
if cf.file: if cf.file:
resp = ChunkBasedFileResponse(cf.file.file, content_type=cf.type) resp = ChunkBasedFileResponse(cf.file.file, content_type=cf.type)
resp['Content-Disposition'] = 'attachment; filename="{}"'.format(cf.filename).encode("ascii", "ignore") resp['Content-Disposition'] = 'attachment; filename="{}"'.format(cf.filename).encode("ascii", "ignore")
@@ -114,8 +109,7 @@ class ExportersMixin:
serializer = JobRunSerializer(exporter=instance, data=self.request.data, **self.get_serializer_kwargs()) serializer = JobRunSerializer(exporter=instance, data=self.request.data, **self.get_serializer_kwargs())
serializer.is_valid(raise_exception=True) serializer.is_valid(raise_exception=True)
cf = CachedFile(web_download=True) cf = CachedFile(web_download=False)
cf.bind_to_session(self.request, "exporters-api")
cf.date = now() cf.date = now()
cf.expires = now() + timedelta(hours=24) cf.expires = now() + timedelta(hours=24)
cf.save() cf.save()

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.
@@ -743,7 +743,7 @@ class EventOrderViewSet(OrderViewSetMixin, viewsets.ModelViewSet):
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,
) )
order_placed.send(self.request.event, order=order, bulk=False) order_placed.send(self.request.event, order=order)
if order.status == Order.STATUS_PAID: if order.status == Order.STATUS_PAID:
order_paid.send(self.request.event, order=order) order_paid.send(self.request.event, order=order)
order.log_action( order.log_action(
@@ -764,13 +764,7 @@ class EventOrderViewSet(OrderViewSetMixin, viewsets.ModelViewSet):
) and not order.invoices.last() ) and not order.invoices.last()
invoice = None invoice = None
if gen_invoice: if gen_invoice:
try: invoice = generate_invoice(order, trigger_pdf=True)
invoice = generate_invoice(order, trigger_pdf=True)
except Exception as e:
logger.exception("Could not generate invoice.")
order.log_action("pretix.event.order.invoice.failed", data={
"exception": str(e)
})
# Refresh serializer only after running signals # Refresh serializer only after running signals
prefetch_related_objects([order], self._positions_prefetch(request)) prefetch_related_objects([order], self._positions_prefetch(request))
@@ -1669,9 +1663,6 @@ class PaymentViewSet(CreateModelMixin, viewsets.ReadOnlyModelViewSet):
else: else:
mark_refunded = request.data.get('mark_canceled', False) mark_refunded = request.data.get('mark_canceled', False)
if not isinstance(request.data.get("comment", ""), str):
return Response({'comment': 'Invalid type.'}, status=status.HTTP_400_BAD_REQUEST)
if payment.state != OrderPayment.PAYMENT_STATE_CONFIRMED: if payment.state != OrderPayment.PAYMENT_STATE_CONFIRMED:
return Response({'detail': 'Invalid state of payment.'}, status=status.HTTP_400_BAD_REQUEST) return Response({'detail': 'Invalid state of payment.'}, status=status.HTTP_400_BAD_REQUEST)
@@ -1698,7 +1689,6 @@ class PaymentViewSet(CreateModelMixin, viewsets.ReadOnlyModelViewSet):
amount=amount, amount=amount,
provider=payment.provider, provider=payment.provider,
info='{}', info='{}',
comment=request.data.get("comment"),
) )
payment.order.log_action('pretix.event.order.refund.created', { payment.order.log_action('pretix.event.order.refund.created', {
'local_id': r.local_id, 'local_id': r.local_id,

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.
@@ -439,12 +439,8 @@ def register_default_webhook_events(sender, **kwargs):
def notify_webhooks(logentry_ids: list): def notify_webhooks(logentry_ids: list):
if not isinstance(logentry_ids, list): if not isinstance(logentry_ids, list):
logentry_ids = [logentry_ids] logentry_ids = [logentry_ids]
qs = LogEntry.all.select_related( qs = LogEntry.all.select_related('event', 'event__organizer', 'organizer').filter(id__in=logentry_ids)
'event', 'event__organizer', 'organizer' _org, _at, webhooks = None, None, None
).order_by(
'action_type', 'organizer_id', 'event_id',
).filter(id__in=logentry_ids)
_org, _at, _ev, webhooks = None, None, None, None
for logentry in qs: for logentry in qs:
if not logentry.organizer: if not logentry.organizer:
break # We need to know the organizer break # We need to know the organizer
@@ -454,7 +450,7 @@ def notify_webhooks(logentry_ids: list):
if not notification_type: if not notification_type:
break # Ignore, no webhooks for this event type break # Ignore, no webhooks for this event type
if _org != logentry.organizer or _at != logentry.action_type or _ev != logentry.event_id or webhooks is None: if _org != logentry.organizer or _at != logentry.action_type or webhooks is None:
_org = logentry.organizer _org = logentry.organizer
_at = logentry.action_type _at = logentry.action_type

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.
@@ -106,7 +106,7 @@ class OutboundSyncProvider:
return str(cls.identifier) return str(cls.identifier)
@classmethod @classmethod
def enqueue_order(cls, order, triggered_by, not_before=None, immediate=False): def enqueue_order(cls, order, triggered_by, not_before=None):
""" """
Adds an order to the sync queue. May only be called on derived classes which define an ``identifier`` attribute. Adds an order to the sync queue. May only be called on derived classes which define an ``identifier`` attribute.
@@ -119,14 +119,10 @@ class OutboundSyncProvider:
:param order: the Order that should be synced :param order: the Order that should be synced
:param triggered_by: the reason why the order should be synced, e.g. name of the signal :param triggered_by: the reason why the order should be synced, e.g. name of the signal
(currently only used internally for logging) (currently only used internally for logging)
:param immediate: whether a new sync task should run immediately for this order, instead
of waiting for the next periodic_task interval
:return: Return a tuple (queue_item, created), where created is a boolean
specifying whether a new queue item was created.
""" """
if not hasattr(cls, 'identifier'): if not hasattr(cls, 'identifier'):
raise TypeError('Call this method on a derived class that defines an "identifier" attribute.') raise TypeError('Call this method on a derived class that defines an "identifier" attribute.')
queue_item, created = OrderSyncQueue.objects.update_or_create( OrderSyncQueue.objects.update_or_create(
order=order, order=order,
sync_provider=cls.identifier, sync_provider=cls.identifier,
in_flight=False, in_flight=False,
@@ -137,10 +133,6 @@ class OutboundSyncProvider:
"need_manual_retry": None, "need_manual_retry": None,
}, },
) )
if immediate:
from pretix.base.services.datasync import sync_single
sync_single.apply_async(args=(queue_item.pk,))
return queue_item, created
@classmethod @classmethod
def get_external_link_info(cls, event, external_link_href, external_link_display_name): def get_external_link_info(cls, event, external_link_href, external_link_display_name):
@@ -391,7 +383,7 @@ class OutboundSyncProvider:
def sync_order(self, order): def sync_order(self, order):
if not self.should_sync_order(order): if not self.should_sync_order(order):
logger.debug("Skipping order %r", order) logger.debug("Skipping order %r", order)
return {} return
logger.debug("Syncing order %r", order) logger.debug("Syncing order %r", order)
positions = list( positions = list(

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.
@@ -24,7 +24,6 @@ from itertools import groupby
from smtplib import SMTPResponseException from smtplib import SMTPResponseException
from typing import TypeVar from typing import TypeVar
import bleach
import css_inline import css_inline
from django.conf import settings from django.conf import settings
from django.core.mail.backends.smtp import EmailBackend from django.core.mail.backends.smtp import EmailBackend
@@ -35,10 +34,7 @@ from django.utils.translation import get_language, gettext_lazy as _
from pretix.base.models import Event from pretix.base.models import Event
from pretix.base.signals import register_html_mail_renderers from pretix.base.signals import register_html_mail_renderers
from pretix.base.templatetags.rich_text import ( from pretix.base.templatetags.rich_text import markdown_compile_email
DEFAULT_CALLBACKS, EMAIL_RE, URL_RE, abslink_callback,
markdown_compile_email, truelink_callback,
)
from pretix.helpers.format import SafeFormatter, format_map from pretix.helpers.format import SafeFormatter, format_map
from pretix.base.services.placeholders import ( # noqa from pretix.base.services.placeholders import ( # noqa
@@ -137,24 +133,13 @@ class TemplateBasedMailRenderer(BaseHTMLMailRenderer):
def template_name(self): def template_name(self):
raise NotImplementedError() raise NotImplementedError()
def compile_markdown(self, plaintext, context=None): def compile_markdown(self, plaintext):
return markdown_compile_email(plaintext, context=context) return markdown_compile_email(plaintext)
def render(self, plain_body: str, plain_signature: str, subject: str, order, position, context) -> str: def render(self, plain_body: str, plain_signature: str, subject: str, order, position, context) -> str:
body_md = self.compile_markdown(plain_body, context) body_md = self.compile_markdown(plain_body)
if context: if context:
linker = bleach.Linker( body_md = format_map(body_md, context=context, mode=SafeFormatter.MODE_RICH_TO_HTML)
url_re=URL_RE,
email_re=EMAIL_RE,
callbacks=DEFAULT_CALLBACKS + [truelink_callback, abslink_callback],
parse_email=True
)
body_md = format_map(
body_md,
context=context,
mode=SafeFormatter.MODE_RICH_TO_HTML,
linkifier=linker
)
htmlctx = { htmlctx = {
'site': settings.PRETIX_INSTANCE_NAME, 'site': settings.PRETIX_INSTANCE_NAME,
'site_url': settings.SITE_URL, 'site_url': settings.SITE_URL,

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.
@@ -125,7 +125,6 @@ class InvoiceExporter(InvoiceExporterMixin, BaseExporter):
identifier = 'invoices' identifier = 'invoices'
verbose_name = _('All invoices') verbose_name = _('All invoices')
description = _('Download all invoices created by the system as a ZIP file of PDF files.') description = _('Download all invoices created by the system as a ZIP file of PDF files.')
repeatable_read = False
def render(self, form_data: dict, output_file=None): def render(self, form_data: dict, output_file=None):
qs = self.invoices_queryset(form_data).filter(shredded=False) qs = self.invoices_queryset(form_data).filter(shredded=False)

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.
@@ -1162,7 +1162,7 @@ class QuotaListExporter(ListExporter):
yield headers yield headers
quotas = list(self.event.quotas.select_related('subevent')) quotas = list(self.event.quotas.select_related('subevent'))
qa = QuotaAvailability(full_results=True, allow_repeatable_read=True) qa = QuotaAvailability(full_results=True, allow_repeatable_read=False)
qa.queue(*quotas) qa.queue(*quotas)
qa.compute() qa.compute()

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.
@@ -77,9 +77,7 @@ from pretix.base.forms.widgets import (
from pretix.base.i18n import ( from pretix.base.i18n import (
get_babel_locale, get_language_without_region, language, get_babel_locale, get_language_without_region, language,
) )
from pretix.base.invoicing.transmission import ( from pretix.base.invoicing.transmission import get_transmission_types
get_transmission_types, transmission_types,
)
from pretix.base.models import InvoiceAddress, Item, Question, QuestionOption from pretix.base.models import InvoiceAddress, Item, Question, QuestionOption
from pretix.base.models.tax import ask_for_vat_id from pretix.base.models.tax import ask_for_vat_id
from pretix.base.services.tax import ( from pretix.base.services.tax import (
@@ -1144,11 +1142,9 @@ class BaseInvoiceAddressForm(forms.ModelForm):
if (not kwargs.get('instance') or not kwargs['instance'].country) and not kwargs["initial"].get("country"): if (not kwargs.get('instance') or not kwargs['instance'].country) and not kwargs["initial"].get("country"):
kwargs['initial']['country'] = guess_country_from_request(self.request, self.event) kwargs['initial']['country'] = guess_country_from_request(self.request, self.event)
if kwargs.get('instance') and kwargs['instance'].transmission_type: if kwargs.get('instance'):
ttype, meta = transmission_types.get(identifier=kwargs['instance'].transmission_type) kwargs['initial'].update(kwargs['instance'].transmission_info or {})
if ttype: kwargs['initial']['transmission_type'] = kwargs['instance'].transmission_type
kwargs['initial'].update(ttype.transmission_info_to_form_data(kwargs['instance'].transmission_info or {}))
kwargs['initial']['transmission_type'] = ttype.identifier
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
@@ -1398,7 +1394,9 @@ class BaseInvoiceAddressForm(forms.ModelForm):
raise ValidationError({r: _("This field is required for the selected type of invoice transmission.")}) raise ValidationError({r: _("This field is required for the selected type of invoice transmission.")})
self.instance.transmission_type = transmission_type.identifier self.instance.transmission_type = transmission_type.identifier
self.instance.transmission_info = transmission_type.form_data_to_transmission_info(data) self.instance.transmission_info = {
k: data.get(k) for k in transmission_type.invoice_address_form_fields
}
elif transmission_type.exclusive: elif transmission_type.exclusive:
if transmission_type.is_available(self.event, data.get("country"), data.get("is_business")): if transmission_type.is_available(self.event, data.get("country"), data.get("is_business")):
raise ValidationError({ raise ValidationError({

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

View File

@@ -1,8 +1,8 @@
# #
# This file is part of pretix (Community Edition). # This file is part of pretix (Community Edition).
# #
# Copyright (C) 2014-2020 Raphael Michel and contributors # Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors # Copyright (C) 2020-2021 rami.io GmbH and contributors
# #
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License. # Public License as published by the Free Software Foundation in version 3 of the License.

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