Remove docs

Parts of it are outdated, others are covered by the generic indico
plugin setup docs...
This commit is contained in:
Adrian Moennich 2021-07-28 14:44:30 +02:00
parent ef8885a80c
commit 5caa68e70f
16 changed files with 0 additions and 728 deletions

View File

@ -1,23 +0,0 @@
#!/usr/bin/env bash
# Perform a complete build of the documentation
set -e
LIB_NAME=indico_sixpay
DOCS_DIR=docs
cd ${DOCS_DIR}
# cleanup backed files
touch source/api/dummy
rm source/api/*
if which plantuml >/dev/null
then
echo "Building UML images..."
touch source/images/uml/dummy
rm source/images/uml/*
plantuml -tsvg -o ../images/uml/ source/uml/*.uml
fi
# sphinx build
sphinx-apidoc --module-first --separate --output-dir=source/api ../${LIB_NAME} --force && \
python2 $(which sphinx-build) -b html -d build/doctrees . build/html/ && \
open build/html/index.html

View File

@ -1,20 +0,0 @@
# Minimal makefile for Sphinx documentation
#
# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = sphinx-build
SPHINXPROJ = chainlet
SOURCEDIR = .
BUILDDIR = _build
# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
.PHONY: help Makefile
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

View File

@ -1,191 +0,0 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# indico_sixpay documentation build configuration file, created by
# sphinx-quickstart on Wed Feb 22 14:45:32 2017.
#
# This file is execfile()d with the current directory set to its
# containing dir.
#
# Note that not all possible configuration values are present in this
# autogenerated file.
#
# All configuration values have a default; values that are commented out
# serve to show the default.
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
import os
import sys
import sphinx.ext.autodoc as autodoc
# sys.path.insert(0, os.path.abspath('.'))
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
from indico_sixpay import __about__
# -- General configuration ------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
#
# needs_sphinx = '1.0'
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
'sphinx.ext.autodoc',
'sphinx.ext.intersphinx',
'sphinx.ext.todo',
'sphinx.ext.imgmath',
'sphinx.ext.githubpages',
'sphinx.ext.graphviz',
]
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
# The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string:
#
# source_suffix = ['.rst', '.md']
source_suffix = '.rst'
# The master toctree document.
master_doc = 'index'
# General information about the project.
project = __about__.__title__
copyright = __about__.__copyright__
author = __about__.__author__
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
version = __about__.__version__
# The full version, including alpha/beta/rc tags.
release = version
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = None
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This patterns also effect to html_static_path and html_extra_path
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
# If true, `todo` and `todoList` produce output, else they produce nothing.
todo_include_todos = True
# -- Options for HTML output ----------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
# html_theme = 'alabaster'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
#
# html_theme_options = {}
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']
# -- Options for HTMLHelp output ------------------------------------------
# Output file base name for HTML help builder.
htmlhelp_basename = 'chainletdoc'
# -- Options for LaTeX output ---------------------------------------------
latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
#
# 'papersize': 'letterpaper',
# The font size ('10pt', '11pt' or '12pt').
#
# 'pointsize': '10pt',
# Additional stuff for the LaTeX preamble.
#
# 'preamble': '',
# Latex figure (float) alignment
#
# 'figure_align': 'htbp',
}
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
(master_doc, 'chainlet.tex', 'chainlet Documentation',
'Max Fischer', 'manual'),
]
# -- Options for manual page output ---------------------------------------
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
(master_doc, 'chainlet', 'chainlet Documentation',
[author], 1)
]
# -- Options for Texinfo output -------------------------------------------
# Grouping the document tree into Texinfo files. List of tuples
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
(master_doc, 'chainlet', 'chainlet Documentation',
author, 'chainlet', 'One line description of project.',
'Miscellaneous'),
]
# plugin and extensions
intersphinx_mapping = {'https://docs.python.org/3/': None}
def skip_pickle_inject(app, what, name, obj, skip, options):
"""skip global wrapper._raw_slave names used only for pickle support"""
if name.endswith('._raw_slave'):
return True
return None
def wraplet_signature(app, what, name, obj, options, signature, return_annotation):
"""have wrapplets use the signature of the slave"""
try:
wrapped = obj._raw_slave
except AttributeError:
return None
else:
slave_argspec = autodoc.getargspec(wrapped)
slave_signature = autodoc.formatargspec(obj, *slave_argspec)
return (slave_signature, return_annotation)
def setup(app):
app.connect('autodoc-skip-member', skip_pickle_inject)
app.connect('autodoc-process-signature', wraplet_signature)

View File

@ -1,99 +0,0 @@
==================================================
``indico_sixpay`` - SIX EPayment Plugin for Indico
==================================================
.. image:: https://readthedocs.org/projects/indico_sixpay/badge/?version=latest
:target: http://indico-sixpay.readthedocs.io/en/latest/?badge=latest
:alt: Documentation
.. image:: https://img.shields.io/pypi/v/indico_sixpay.svg
:alt: Available on PyPI
:target: https://pypi.python.org/pypi/indico_sixpay/
.. image:: https://img.shields.io/github/license/maxfischer2781/indico_sixpay.svg
:alt: License
:target: https://github.com/maxfischer2781/indico_sixpay/blob/master/LICENSE
.. image:: https://img.shields.io/github/commits-since/maxfischer2781/indico_sixpay/v2.0.1.svg
:alt: Repository
:target: https://github.com/maxfischer2781/indico_sixpay/tree/master
.. toctree::
:maxdepth: 1
:caption: Subtopics Overview:
source/installation
source/configuration
source/changelog
source/design
Module Index <source/api/modules>
The :py:mod:`indico_sixpay` adds an EPayment option for
the *SIX Payment Services* provider
to the *Indico* event management system.
Overview
--------
If the plugin is enabled, event participants can select the ``SixPay`` payment method during the EPayment checkout.
Payment is performed via the **Saferpay Payment Page**, an external service provided by *SIX Payment Services*.
The plugin handles the user interaction inside Indico, and the secure, asynchronous transaction with SIX Payment Services.
The plugin must be installed for an entire Indico instance.
It can be enabled and configured for the entire instance and per individual event.
Note that a valid account with *SIX Payment Services* is required to receive payments.
The plugin follows the
`Saferpay Payment Page <https://www.six-payment-services.com/dam/classic/saferpay/Saferpay_Payment_Page_EN.pdf>`_
specification version ``5.1``.
*This plugin supports Indico 2.0.*
*The legacy plugin for Indico 1.2 is hosted on* `github <https://github.com/maxfischer2781/indico_sixpay/tree/indico-1.2>`_.
Quick Guide
-----------
To enable the plugin, it must be installed for the python version running ``indico``.
.. code:: bash
python -m pip install indico_sixpay
Once installed, it can be enabled in the administrator and event settings.
Configuration uses the same options for global defaults and event specific overrides.
Usage Notes
-----------
The plugin relies on the ISO 4217 standard for currency conversions.
Since they are not properly covered by the standard, the currencies ``MGA`` and ``MRU`` cannot be used for payments.
Contributing and Feedback
-------------------------
The project is hosted on `github <https://github.com/maxfischer2781/indico_sixpay>`_.
Feedback, pull requests and other contributions are always welcome.
If you have issues or suggestions, check the issue tracker: |issues|
Disclaimer
----------
This plugin is in no way endorsed, supported or provided by SIX, Indico or any other service, provider or entity.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
----------
.. |issues| image:: https://img.shields.io/github/issues-raw/maxfischer2781/indico_sixpay.svg
:target: https://github.com/maxfischer2781/indico_sixpay/issues
:alt: Open Issues
Documentation built from ``indico_sixpay`` |version| at |today|.

View File

@ -1,7 +0,0 @@
indico\_sixpay\.blueprint module
================================
.. automodule:: indico_sixpay.blueprint
:members:
:undoc-members:
:show-inheritance:

View File

@ -1,7 +0,0 @@
indico\_sixpay\.plugin module
=============================
.. automodule:: indico_sixpay.plugin
:members:
:undoc-members:
:show-inheritance:

View File

@ -1,7 +0,0 @@
indico\_sixpay\.request\_handlers module
========================================
.. automodule:: indico_sixpay.request_handlers
:members:
:undoc-members:
:show-inheritance:

View File

@ -1,18 +0,0 @@
indico\_sixpay package
======================
.. automodule:: indico_sixpay
:members:
:undoc-members:
:show-inheritance:
Submodules
----------
.. toctree::
indico_sixpay.blueprint
indico_sixpay.plugin
indico_sixpay.request_handlers
indico_sixpay.utility

View File

@ -1,7 +0,0 @@
indico\_sixpay\.utility module
==============================
.. automodule:: indico_sixpay.utility
:members:
:undoc-members:
:show-inheritance:

View File

@ -1,7 +0,0 @@
indico_sixpay
=============
.. toctree::
:maxdepth: 4
indico_sixpay

View File

@ -1,35 +0,0 @@
+++++++++
Changelog
+++++++++
v2.0.2 -- 2018-05-23
--------------------
* Default SaferPay URL includes a trailing slash to form correct URLs.
v2.0.1 -- 2018-03-01
--------------------
* event settings override global settings (`issue #6 <https://github.com/maxfischer2781/indico_sixpay/issues/6>`_)
v2.0.0 -- 2018-02-08
--------------------
* public release for Indico 2.0
v1.2.2 -- 2017-07-10
--------------------
* internal identifier for transactions is configurable
* expanded order description placeholders
v1.2.1 -- 2017-03-14
--------------------
* bugfix for duplicate transaction verification
v1.2.0 -- 2017-03-13
--------------------
* public release for Indico 1.2

View File

@ -1,121 +0,0 @@
Plugin Configuration
====================
The plugin must be installed for an entire Indico instance.
It can be enabled and configured for the entire instance and per individual event.
Both levels have the same configuration options:
The global settings act as a default, and are overridden by event specific settings.
Configuration Options
---------------------
**SixPay Saferpay URL**
The URL to contact the Six Payment Service.
Use the default ``https://www.saferpay.com/hosting/`` for any transaction.
For testing, use the ``https://test.saferpay.com/hosting/`` test service.
You should generally *not* change this, unless you want to test the plugin.
If the official saferpay URL changes, please submit an `issue ticket`_.
**Account ID**
The ID of your Saferpay account, a number containing slashes.
For testing, use the ID ``401860-17795278``.
This ID is provided to you by Six Payment Services.
**Order Description** [80 characters]
The description of each order in a human readable way.
This description is presented to the registrant during the transaction with SixPay.
This field is limited to 80 characters, after any placeholders are filled in.
The suggested length is 50 characters.
The default description uses the registrant name and event title.
**Order Identifier** [80 characters]
The identifier of each order for further processing.
This identifier is used internally and in your own billing.
This field is stripped of whitespace and limited to 80 characters, after any placeholders are filled in.
Note that auxiliary services, e.g. for billing, may limit this information to 12 characters.
**Notification Mail**
Mail address to receive notifications of transactions.
This is independent of Indico's own payment notifications.
Format Placeholders
-------------------
The **Order Description/Identifier** settings allow for placeholders.
These are dynamically filled in for each event and registrant.
``{user_id}`` [`231`]
Numerical identifier of the user/registrant.
This is unique per event, but not globally unique.
``{user_name}`` [`Jane Doe`]
Full name of the user/registrant.
Use ``<first name> <last name>`` format.
``{user_firstname}`` [`Jane`]
First name of the user/registrant.
``{user_lastname}`` [`Doe`]
Last name of the user/registrant.
``{event_id}`` [`18`]
Numerical identifier of the event.
This is globally unique.
``{event_title}`` [`My Conference`]
Full title of the event.
``{eventuser_id}`` [`e18u231`]
A globally unique identifier for both the event and user.
``{registration_title}`` [`Early Bird`]
The title of the registration, as shown by Indico.
Placeholders use the `Format String Syntax`_ of Python.
For example, ``{event_title:.6}`` is replaced with the first six characters of the event title.
Note that both fields taking placeholders have a maximum size.
Since a template cannot be validated exactly, size validation assumes a reasonably terse input.
In practice, fields may be silently shortened after formatting with long input.
Placeholder Examples
^^^^^^^^^^^^^^^^^^^^
Below are some examples for use as **Order Description** and **Order Identifier**:
===================================================== ====================================
Format Template Example Output
===================================================== ====================================
**Order Description**
------------------------------------------------------------------------------------------
``{event_title} (RegNr. {user_id})`` My Conference (RegNr. 231)
``{event_title}: {user_name} ({registration_title})`` My Conference: Jane Doe (Early Bird)
``{event_title} ({registration_title})`` My Conference (Early Bird)
----------------------------------------------------- ------------------------------------
**Order Identifier**
------------------------------------------------------------------------------------------
``{eventuser_id}-{user_firstname:.1}{user_lastname}`` e18u231-JDoe
``{event_title:.7} {eventuser_id}`` My Conf e18u231
===================================================== ====================================
.. _issue ticket: https://github.com/maxfischer2781/indico_sixpay/pulls
.. _Format String Syntax: https://docs.python.org/3/library/string.html#formatstrings

View File

@ -1,24 +0,0 @@
Implementation Overview
=======================
The plugin follows the *Six Payment Services Payment Page*
`Specification Version 5.1 <https://www.six-payment-services.com/dam/classic/saferpay/Saferpay_Payment_Page_EN.pdf>`_.
It implements the *Saferpay https interface* (Section 4 of the Specification),
but has to tie it into the Indico transaction flow.
================= ================================================================= ===============================
HTTP API Plugin Component Implementation
================= ================================================================= ===============================
CreatePayInit :py:class:`~indico_sixpay.plugin.SixpayPaymentPlugin` ``_get_transaction_parameters``
``_get_payment_url``
VerifyPayConfirm :py:class:`~indico_sixpay.request_handlers.SixPayResponseHandler` ``_verify_signature``
CreatePayComplete :py:class:`~indico_sixpay.request_handlers.SixPayResponseHandler` ``_confirm_transaction``
================= ================================================================= ===============================
Payment Procedure
-----------------
See below for an overview of the payment procedure:
.. image:: images/uml/transaction.svg
:alt: UML of transaction

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 18 KiB

View File

@ -1,59 +0,0 @@
Installation
============
The plugin can be installed using standard Python package managers.
To enable the plugin, it must be added to the configuration file of indico.
.. seealso:: The official `Indico Plugin Installation Guide`_.
Note that at least ``indico`` 2.0 is required, and will be installed automatically if it is missing.
Installing the package
----------------------
The ``indico_sixpay`` plugin must be installed for the python version running ``indico``.
With a standard indico installation, you must activate the indico python virtual environment first.
.. code:: bash
su - indico
source ~/.venv/bin/activate
The latest release version is available for the default python package managers.
You can directly install the module using ``pip``:
.. code:: bash
pip install indico_sixpay
This can also be used to upgrade to a newer version:
.. code:: bash
pip install indico_sixpay --upgrade
Enabling the package
--------------------
All plugins must be enabled in indico's configuration file.
By default, the configuration is located in ``/opt/indico/etc/indico.conf``.
.. code:: python
PLUGINS = {'payment_sixpay'}
Note that if you need multiple plugins, you must all include them in the set of ``PLUGINS``:
.. code:: python
PLUGINS = {'payment_manual', 'payment_paypal', 'payment_sixpay'}
After changing the configuration, trigger a reload of the indico services.
Issue the following commands as ``root``:
.. code:: bash
touch ~/web/indico.wsgi
systemctl restart indico-celery.service
.. _Indico Plugin Installation Guide: https://docs.getindico.io/en/latest/installation/plugins/

View File

@ -1,45 +0,0 @@
@startuml
actor User
box "Indico Service"
participant "Indico Server" as Indico
participant "SixPay Plugin" as Plugin
end box
== Payment Request==
User -> Indico: request payment
activate Indico
Indico -> Plugin
activate Plugin
Plugin -> SixPay: payment details
activate SixPay
create participant Saferpay
SixPay -> Saferpay
Plugin <-- SixPay: saferpay url
deactivate SixPay
Indico <- Plugin
deactivate Plugin
User <- Indico: payment page
deactivate Indico
...
== Payment Transaction ==
User -> Saferpay: saferpay url
activate Saferpay
Plugin <<- Saferpay: result
activate Plugin
Plugin -> SixPay: validate result
Plugin <- SixPay: confirmation
Plugin -> Plugin: validate details
Indico <- Plugin: confirm payment
deactivate Plugin
User <- Saferpay
destroy Saferpay
alt success
User -> Plugin: success
else failure
User -> Plugin: failure
else cancel
User -> Plugin: cancel
end
@enduml