Change Log

3.1.1 (2022-07-28)

  • Fix regression in demo site due to improper runtime type validation on QRCodeOptions.
  • Minor improvements to documentation.
  • Modernize code syntax for Python >= 3.7.

3.1.0 (2022-06-26)

  • Add support for more properties for vCard: cellphone (TEL;TYPE=CELL), homephone (TEL;TYPE=HOME), workphone (TEL;TYPE=WORK)
  • Add support for simple iCalendar event (VEVENT). (#38)
  • Add support for Django 4.0.
  • BREAKING CHANGES:
    • Introduce type validation at runtime with pydantic. Existing code might need some type-related fixes.
    • Drop support for Django 2.2.

3.0.0 (2021-11-27)

  • Add support for European Payments Council Quick Response Code (EPC QR Code) version 002.
  • Add support for vCard v3 QR code.
  • Revamp support for MeCARD QR code to provide a cleaner API (old API remains available for compatibility).
  • Introduce qr_from_data and qr_url_from_data to allow optimized encoding of alphanumeric, numeric, and byte data (adopt appropriate encoding mode depending on data content).
  • Introduce support for boost_error flag.
  • Introduce support for encoding parameter.
  • Several breaking changes in API and generated QR codes:
    • text parameters renamed to data;
    • class methods make_qr_text renamed to make_qr_data;
    • uses UTF-8 encoding by default for application and text QR codes (you must set the new encoding option or use the new qr_from_data and qr_url_from_data template tags to emulate old behavior);
    • encoded geolocations always contain a decimal separator.
  • Improve API documentation.
  • Add support for Python 3.10
  • Drop support for Python 3.6.
  • Drop support for Django 3.1.

2.3.0 (2021-11-07)

  • Add support for ECI mode to control bytes encoding.
  • Fix handling of micro QR code option when using URLs to serve image via {% qr_url_from_text %}.
  • Fix handling of cache_enabled option when using URLs to serve image via {% qr_url_from_text %}.
  • Fix handling of url_signature_enabled option when using URLs to serve image via {% qr_url_from_text %}.

2.2.0 (2021-06-03)

  • Change encoding from URL-safe Base64 to standard Base64 for text query argument (used for serving QR code images).
  • Fix #31 by passing the border parameter for segno.QRCode.save.
  • Ensure compatibility with Django 3.2.
  • Drop support for Django 3.0.

2.1.0 (2021-01-23)

  • Change encoding from URL-safe Base64 to standard Base64 for text query argument (used for serving QR code images).
  • Introduce setting SERVE_QR_CODE_IMAGE_PATH to configure the path under which QR Code images are served.
  • Reorganize and improve documentation.
  • Fix #23
  • Introduce usage of type hints.

2.0.1 (2020-11-24)

  • Update the install_requires after the move from qrcode to Segno.

2.0.0 (2020-11-22)

  • Remove dependency to Pillow / qrcode
  • Switch to Segno for generating QR Codes
  • Add support for QR Codes with multiple colors
  • Add support for Micro QR Codes
  • Stable SVG format for QR code between 32-bit and 64-bit architecture (#19)
  • Use hyphens in URLs (#16)
  • Add support for Python 3.9

1.3.1 (2020-09-07)

  • Fix local testing script.
  • Fix date of release 1.3.0 in readme.
  • Code cleanup.

1.3.0 (2020-09-05)

  • Drop support for Django 2.1.
  • Ensure compatibility with Django 3.1.

1.2.0 (2020-04-26)

  • Ensure compatibility with Django 3.0.
  • Upgrade Pillow requirement to 7.1.
  • Drop support for Python 3.5.
  • Drop support for Django <2.2.
  • More modern build environment and configuration for ReadTheDocs.

1.1.0 (2019-11-16)

  • Ensure compatibility with Django 2.1.
  • Ensure compatibility with Django 2.2.
  • Upgrade qr_code library from 5.3 to 6.1 (several fixes).
  • Drop support for Python 3.4.
  • Fixed error when generating qr code from lazy text. (#1)
  • Add support for customizing usage of URL signature token via template tags (allows to generate URLs for serving QR code images that do not include a signature token). (#4)
  • The caching of QR codes images could allow to bypass checking the user when external access is active.
  • Upgrade Pillow requirement to 6.2.0 (CVE-2019-16865).
  • Adopt a dedicated logger, and move message “Pillow is not installed. No support available for PNG format.” from info to debug. (#6)

1.0.0 (2018-03-23)

  • BREAKING CHANGES:
    • QR code options have been factorized and now use the QRCodeOptions class.
    • The context for rendering a QR code encoding a Wi-Fi configuration uses the dedicated WifiConfig class.
    • The context for rendering a QR code encoding a contact detail uses the dedicated ContactDetail class.
    • qr_for_contact and qr_url_for_contact keyword arg has been renamed from contact_dict to contact_detail.
    • qr_for_wifi and qr_url_for_wifi keyword arg has been renamed from wifi_dict to wifi_config.
    • Reorganize code and split qr_code.py into several modules.

The changes mentioned above might break the compatibility with code using qr_code.py’s API directly, but template tags are not impacted, except for qr_for_contact, qr_url_for_contact, qr_for_wifi, and qr_url_for_wifi if they were using a keyword argument.

  • Other changes:
    • Added support for error_correction parameter when generating a QR code.
    • Added support for coordinates keyword argument to qr_for_geolocation, qr_for_google_maps, qr_url_for_geolocation, and qr_url_for_google_maps.
    • Additions to documentation.
    • Added ability to use a QRCodeOptions instance with options keyword argument in all tags.
  • Bug fixes:
    • Fixed non-closed tag when generating embedded PNG image.
    • Escape colon char (’:’) if it appears within a contact detail or a wifi configuration.
    • Add a second terminal semi-colon at the end of the text representing a wifi configuration, as recommended in some sources.

0.4.1 (2018-03-10)

  • Fixed unescaped chars when generating QR code for a contact.
  • Simplify handling of default values for QR code options.
  • Add documentation about what a QR code can encode.

0.4.0 (2018-03-09)

  • Added support for multiple new tags:
    • qr_for_email and qr_url_for_email
    • qr_for_tel and qr_url_for_tel
    • qr_for_sms and qr_url_for_sms
    • qr_for_geolocation and qr_url_for_geolocation
    • qr_for_google_maps and qr_url_for_google_maps
    • qr_for_youtube and qr_url_for_youtube
    • qr_for_google_play and qr_url_for_google_play
    • qr_for_contact and qr_url_for_contact
    • qr_for_wifi and qr_url_for_wifi
  • Reformat documentation on the demo site for better readability.
  • Drop support for Django <1.11.

0.3.3 (2017-08-16)

  • Added app_name namespace to qr_code.urls (better compatibility with include() function provided with Django >= 1.9).
  • Update documentation regarding the inclusion of qr_code.urls for distinct versions of Django.
  • Minor improvements to the documentation.

0.3.2 (2017-08-13)

  • Allows optional installation of Pillow (PNG format unavailable, fallback to SVG).
  • Fixed caching of images (not working due protection against external queries).
  • Fixed conditional view processing (HTTP 304) for rendered QR codes (not working due protection against external queries).

0.3.1 (2017-08-12)

  • Added a mention about Pillow library requirement in documentation.
  • Minor improvements to the documentation and the demo application.

0.3.0 (2017-08-12)

  • Added new tag qr_url_from_text:
    • Separate image from the page displaying the image
    • Handle caching of images
    • Conditional view processing (HTTP 304) for rendered QR codes
    • Protection against external requests
    • Settings to configure URLs accesses as a service for generating QR code images
    • Add documentation for new features
    • Add tests for new features
    • Add examples to demo site
  • More robust testing of make_embedded_qr_code’s arguments.
  • Improved documentation.
  • Demo site is compatible with Django 1.8.
  • Added support for Docker Compose for running the demo application and running the tests.

0.2.1 (2017-08-05)

  • Added support for Django 1.8.
  • Fixed version specifiers for Django requirement so that it wont force the installation of Django 1.11.
  • Added badges for PyPi, Read the Docs and Travis CI to readme file.
  • Several additions to the documentation.

0.2.0 (2017-08-04)

  • Add support for PNG image format via an img tag.
  • Add documentation for users and developers.
  • Improve examples in demo app.

0.1.1 (2017-08-02)

First public release.