Changelog
=========

This document describes changes between each past release. For information
about future releases, check `milestones`_ and :doc:`/about/vision`.


0.9 (2014-11-26)
----------------

New feature around envelope creation.

- Feature #29 - ``pydocusign.DocuSignClient`` can create envelope using
  template. Added method ``create_envelope_from_template()``. Check the
  ``templatesigning.py`` demo in documentation.
  When running tests or demo, you need an additional
  ``PYDOCUSIGN_TEST_TEMPLATE_ID`` environment variable, which is the UUID of
  a DocuSign template having 2 signers with routing order set to "1".


0.8 (2014-11-13)
----------------

Feature around internationalization.

- Feature #26 - ``pydocusign.Signer`` model accepts new optional arguments:
  ``emailSubject``, ``emailBody`` and ``supportedLanguage``. They are used to
  setup DocuSign's ``emailNotification`` for recipient, which makes it possible
  to change default language shown in DocuSign user interface for each
  recipient.


0.7.2 (2014-10-22)
------------------

Bugfixes.

- Bug #23 - Using pseudo-constants of ``pydocusign.Envelope`` and
  ``pydocusign.Recipient`` instead of raw strings in
  ``DocuSignCallbackParser``. As a consequence, parser's ``recipient_events``,
  ``envelope_events`` and ``events`` properties also use values from
  pseudo-constants. They use CamelCase (they used to be all lowercase).

- Bug #22 - Fixed ``DeclineReason`` in notification callback template.


0.7.1 (2014-10-17)
------------------

Improved retro-compatibility of release 0.7.

- Bug #20 - Restored pseudo-constants in ``Envelope`` model. They were removed
  in version 0.7, but it appeared they are useful, and probably the simplest
  way to access them, since ``pydocusign.Envelope`` is part of the main API,
  whereas ``pydocusign.models`` is not.

  Also:

  * added keys/values to ``Envelope``'s pseudo-constants.
  * registered pseudo-constants in ``Recipient`` model.


0.7 (2014-10-16)
----------------

Testing tools around notification callbacks.

- Features #14 and #16 - ``pydocusign.test`` provides utilities to test
  notification callbacks: generate body content for notification requests,
  post fake notification requests to a custom URL.

- Added pseudo-constants in ``pydocusign.models``, so that you can use them
  instead of strings. As an example, you'd better use
  ``pydocusign.models.ENVELOPE_STATUS_SENT`` instead of ``"Sent"``.

  Removed ``STATUS_SENT`` and ``STATUS_DRAFT`` from ``Envelope`` model.


0.6 (2014-10-08)
----------------

Improvements around event notifications.

- Feature #15 - On envelope creation, register callback URL for recipient
  events.

- Feature #17 - ``pydocusign.DocuSignCallbackParser`` can extract data from
  DocuSign's event notification callbacks.


0.5 (2014-09-26)
----------------

Minor feature around document download.

- Feature #12: DocuSignClient.get_envelope_document() returns a file-like
  object with a close() method.


0.4 (2014-09-17)
----------------

Feature: download envelope's documents.

- Feature #10 - Introduced methods for client and envelope instances to get the
  list of envelope's documents, and download documents.


0.3 (2014-09-12)
----------------

Minor API simplification.

- Feature #7 - Since most methods of ``DocuSignClient`` require ``account_url``
  attribute, they can initialize it automatically with a call to
  ``login_information()``.

- Bug #6 - Added "URL" and "license" fields to Python package metadata (were
  missing).


0.2 (2014-09-05)
----------------

Integrate more DocuSign features.

- Feature #1 - Envelopes can be created with ``eventNotification`` argument,
  which allows to setup API callbacks on signature updates.

- Feature #3 - Added support for "approve tabs", which allow signer to sign a
  document without adding visible text/graphic to the document.

- Feature #5 - DocuSignClient.login_information raises DocuSignException and
  emits logs on error.


0.1 (2014-07-30)
----------------

Initial release.

- Introduced ``DocuSignClient`` client and models. Initial features around
  embedded signing workflow:

  * login
  * create envelope
  * get envelope's recipients (read envelope)
  * post recipient view (get embedded signing URL)


.. rubric:: Notes & references

.. target-notes::

.. _`milestones`: https://github.com/novapost/pydocusign/milestones
