forked from CGM_Public/pretix_original
Add wallet plugins stub
This commit is contained in:
@@ -32,6 +32,7 @@ ignore =
|
|||||||
src/tests/plugins/stripe/*
|
src/tests/plugins/stripe/*
|
||||||
src/tests/plugins/sendmail/*
|
src/tests/plugins/sendmail/*
|
||||||
src/tests/plugins/ticketoutputpdf/*
|
src/tests/plugins/ticketoutputpdf/*
|
||||||
|
src/tests/plugins/wallet/*
|
||||||
.*
|
.*
|
||||||
CODE_OF_CONDUCT.md
|
CODE_OF_CONDUCT.md
|
||||||
CONTRIBUTING.md
|
CONTRIBUTING.md
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ INSTALLED_APPS = [
|
|||||||
'pretix.plugins.returnurl',
|
'pretix.plugins.returnurl',
|
||||||
'pretix.plugins.autocheckin',
|
'pretix.plugins.autocheckin',
|
||||||
'pretix.plugins.webcheckin',
|
'pretix.plugins.webcheckin',
|
||||||
|
'pretix.plugins.wallet',
|
||||||
'django_countries',
|
'django_countries',
|
||||||
'oauth2_provider',
|
'oauth2_provider',
|
||||||
'phonenumber_field',
|
'phonenumber_field',
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ class BaseTicketOutput:
|
|||||||
If you override this method, make sure that positions that are addons (i.e. ``addon_to``
|
If you override this method, make sure that positions that are addons (i.e. ``addon_to``
|
||||||
is set) are only outputted if the event setting ``ticket_download_addons`` is active.
|
is set) are only outputted if the event setting ``ticket_download_addons`` is active.
|
||||||
Do the same for positions that are non-admission without ``ticket_download_nonadm`` active.
|
Do the same for positions that are non-admission without ``ticket_download_nonadm`` active.
|
||||||
If you want, you can just iterate over ``order.positions_with_tickets`` which applies the
|
If you want, you can just iterate over ``self.get_tickets_to_print`` which applies the
|
||||||
appropriate filters for you.
|
appropriate filters for you.
|
||||||
"""
|
"""
|
||||||
with tempfile.TemporaryDirectory() as d:
|
with tempfile.TemporaryDirectory() as d:
|
||||||
@@ -192,6 +192,15 @@ class BaseTicketOutput:
|
|||||||
"""
|
"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@property
|
||||||
|
def show_settings(self) -> bool:
|
||||||
|
"""
|
||||||
|
Returns whether or not this output should be shown in the ticket settings.
|
||||||
|
|
||||||
|
.. note:: If you set this to false, you need to have some other mechanism to decide whether this output is enabled
|
||||||
|
"""
|
||||||
|
return True
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def download_button_text(self) -> str:
|
def download_button_text(self) -> str:
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -945,7 +945,7 @@ class TaxSettingsForm(EventSettingsValidationMixin, SettingsForm):
|
|||||||
class ProviderForm(SettingsForm):
|
class ProviderForm(SettingsForm):
|
||||||
"""
|
"""
|
||||||
This is a SettingsForm, but if fields are set to required=True, validation
|
This is a SettingsForm, but if fields are set to required=True, validation
|
||||||
errors are only raised if the payment method is enabled.
|
errors are only raised if the provider is enabled.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
|
|||||||
@@ -1068,6 +1068,9 @@ class TicketSettings(EventSettingsViewMixin, EventPermissionRequiredMixin, FormV
|
|||||||
responses = register_ticket_outputs.send(self.request.event)
|
responses = register_ticket_outputs.send(self.request.event)
|
||||||
for receiver, response in responses:
|
for receiver, response in responses:
|
||||||
provider = response(self.request.event)
|
provider = response(self.request.event)
|
||||||
|
if not provider.show_settings:
|
||||||
|
continue
|
||||||
|
|
||||||
provider.form = ProviderForm(
|
provider.form = ProviderForm(
|
||||||
obj=self.request.event,
|
obj=self.request.event,
|
||||||
settingspref='ticketoutput_%s_' % provider.identifier,
|
settingspref='ticketoutput_%s_' % provider.identifier,
|
||||||
|
|||||||
21
src/pretix/plugins/wallet/__init__.py
Normal file
21
src/pretix/plugins/wallet/__init__.py
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
#
|
||||||
|
# This file is part of pretix (Community Edition).
|
||||||
|
#
|
||||||
|
# Copyright (C) 2014-2020 Raphael Michel and contributors
|
||||||
|
# Copyright (C) 2020-today pretix GmbH and contributors
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# ADDITIONAL TERMS APPLY: Pursuant to Section 7 of the GNU Affero General Public License, additional terms are
|
||||||
|
# applicable granting you additional permissions and placing additional restrictions on your usage of this software.
|
||||||
|
# Please refer to the pretix LICENSE file to obtain the full terms applicable to this work. If you did not receive
|
||||||
|
# this file, see <https://pretix.eu/about/en/license>.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
|
||||||
|
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
||||||
|
# details.
|
||||||
|
#
|
||||||
|
# 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/>.
|
||||||
|
#
|
||||||
41
src/pretix/plugins/wallet/apps.py
Normal file
41
src/pretix/plugins/wallet/apps.py
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
#
|
||||||
|
# This file is part of pretix (Community Edition).
|
||||||
|
#
|
||||||
|
# Copyright (C) 2014-2020 Raphael Michel and contributors
|
||||||
|
# Copyright (C) 2020-today pretix GmbH and contributors
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# ADDITIONAL TERMS APPLY: Pursuant to Section 7 of the GNU Affero General Public License, additional terms are
|
||||||
|
# applicable granting you additional permissions and placing additional restrictions on your usage of this software.
|
||||||
|
# Please refer to the pretix LICENSE file to obtain the full terms applicable to this work. If you did not receive
|
||||||
|
# this file, see <https://pretix.eu/about/en/license>.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
|
||||||
|
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
||||||
|
# details.
|
||||||
|
#
|
||||||
|
# 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/>.
|
||||||
|
#
|
||||||
|
from django.apps import AppConfig
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
from pretix import __version__ as version
|
||||||
|
|
||||||
|
|
||||||
|
class WalletApp(AppConfig):
|
||||||
|
name = 'pretix.plugins.wallet'
|
||||||
|
verbose_name = _("wallet")
|
||||||
|
|
||||||
|
class PretixPluginMeta:
|
||||||
|
name = _("wallet")
|
||||||
|
author = _("the pretix team")
|
||||||
|
version = version
|
||||||
|
category = 'FORMAT'
|
||||||
|
description = _("Issue wallet passes for tickets (e.g. apple wallet, google wallet)")
|
||||||
|
|
||||||
|
def ready(self):
|
||||||
|
from . import signals # NOQA
|
||||||
|
|
||||||
41
src/pretix/plugins/wallet/signals.py
Normal file
41
src/pretix/plugins/wallet/signals.py
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
#
|
||||||
|
# This file is part of pretix (Community Edition).
|
||||||
|
#
|
||||||
|
# Copyright (C) 2014-2020 Raphael Michel and contributors
|
||||||
|
# Copyright (C) 2020-today pretix GmbH and contributors
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# ADDITIONAL TERMS APPLY: Pursuant to Section 7 of the GNU Affero General Public License, additional terms are
|
||||||
|
# applicable granting you additional permissions and placing additional restrictions on your usage of this software.
|
||||||
|
# Please refer to the pretix LICENSE file to obtain the full terms applicable to this work. If you did not receive
|
||||||
|
# this file, see <https://pretix.eu/about/en/license>.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
|
||||||
|
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
||||||
|
# details.
|
||||||
|
#
|
||||||
|
# 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/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
from django.dispatch import receiver
|
||||||
|
from pretix.base.signals import register_ticket_outputs
|
||||||
|
|
||||||
|
|
||||||
|
@receiver(register_ticket_outputs, dispatch_uid="output_wallet")
|
||||||
|
def register_ticket_wallet(sender, **kwargs):
|
||||||
|
from .ticketoutput import WalletTicketOutput
|
||||||
|
return WalletTicketOutput
|
||||||
|
|
||||||
|
@receiver(register_ticket_outputs, dispatch_uid="output_wallet_apple")
|
||||||
|
def register_ticket_wallet_apple(sender, **kwargs):
|
||||||
|
from .ticketoutput import AppleWalletTicketOutput
|
||||||
|
return AppleWalletTicketOutput
|
||||||
|
|
||||||
|
|
||||||
|
@receiver(register_ticket_outputs, dispatch_uid="output_wallet_google")
|
||||||
|
def register_ticket_wallet_google(sender, **kwargs):
|
||||||
|
from .ticketoutput import GoogleWalletTicketOutput
|
||||||
|
return GoogleWalletTicketOutput
|
||||||
45
src/pretix/plugins/wallet/ticketoutput.py
Normal file
45
src/pretix/plugins/wallet/ticketoutput.py
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
#
|
||||||
|
# This file is part of pretix (Community Edition).
|
||||||
|
#
|
||||||
|
# Copyright (C) 2014-2020 Raphael Michel and contributors
|
||||||
|
# Copyright (C) 2020-today pretix GmbH and contributors
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# ADDITIONAL TERMS APPLY: Pursuant to Section 7 of the GNU Affero General Public License, additional terms are
|
||||||
|
# applicable granting you additional permissions and placing additional restrictions on your usage of this software.
|
||||||
|
# Please refer to the pretix LICENSE file to obtain the full terms applicable to this work. If you did not receive
|
||||||
|
# this file, see <https://pretix.eu/about/en/license>.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
|
||||||
|
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
||||||
|
# details.
|
||||||
|
#
|
||||||
|
# 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/>.
|
||||||
|
#
|
||||||
|
from collections import OrderedDict
|
||||||
|
import logging
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
from pretix.base.ticketoutput import BaseTicketOutput
|
||||||
|
from django import forms
|
||||||
|
logger = logging.getLogger('pretix.plugins.wallet')
|
||||||
|
|
||||||
|
|
||||||
|
class WalletTicketOutput(BaseTicketOutput):
|
||||||
|
identifier = 'wallet'
|
||||||
|
verbose_name = _('Wallet output')
|
||||||
|
|
||||||
|
is_enabeld = False
|
||||||
|
preview_allowed = False
|
||||||
|
|
||||||
|
class GoogleWalletTicketOutput(BaseTicketOutput):
|
||||||
|
identifier = 'google_wallet'
|
||||||
|
verbose_name = _('google')
|
||||||
|
show_settings = False
|
||||||
|
|
||||||
|
class AppleWalletTicketOutput(BaseTicketOutput):
|
||||||
|
identifier = 'apple_wallet'
|
||||||
|
verbose_name = _('apple')
|
||||||
|
show_settings = False
|
||||||
Reference in New Issue
Block a user