mirror of
https://github.com/pretix/pretix.git
synced 2025-12-07 22:42:26 +00:00
The signal is defined at
353dce789d/src/pretix/base/signals.py (L143)
and ends with an s.
58 lines
1.6 KiB
ReStructuredText
58 lines
1.6 KiB
ReStructuredText
.. highlight:: python
|
|
:linenothreshold: 5
|
|
|
|
Writing an exporter plugin
|
|
==========================
|
|
|
|
An Exporter is a method to export the product and order data in pretix for later use in another
|
|
program.
|
|
|
|
In this document, we will walk through the creation of an exporter output plugin step by step.
|
|
|
|
Please read :ref:`Creating a plugin <pluginsetup>` first, if you haven't already.
|
|
|
|
Exporter registration
|
|
---------------------
|
|
|
|
The exporter API does not make a lot of usage from signals, however, it does use a signal to get a list of
|
|
all available exporters. Your plugin should listen for this signal and return the subclass of
|
|
``pretix.base.exporter.BaseExporter``
|
|
that we'll provide in this plugin::
|
|
|
|
from django.dispatch import receiver
|
|
|
|
from pretix.base.signals import register_data_exporters
|
|
|
|
|
|
@receiver(register_data_exporters, dispatch_uid="exporter_myexporter")
|
|
def register_data_exporter(sender, **kwargs):
|
|
from .exporter import MyExporter
|
|
return MyExporter
|
|
|
|
|
|
The exporter class
|
|
------------------
|
|
|
|
.. class:: pretix.base.exporter.BaseExporter
|
|
|
|
The central object of each exporter is the subclass of ``BaseExporter``.
|
|
|
|
.. py:attribute:: BaseExporter.event
|
|
|
|
The default constructor sets this property to the event we are currently
|
|
working for.
|
|
|
|
.. autoattribute:: identifier
|
|
|
|
This is an abstract attribute, you **must** override this!
|
|
|
|
.. autoattribute:: verbose_name
|
|
|
|
This is an abstract attribute, you **must** override this!
|
|
|
|
.. autoattribute:: export_form_fields
|
|
|
|
.. automethod:: render
|
|
|
|
This is an abstract method, you **must** override this!
|