0.5.82 - 2020-01-23 Added
Warnings in the logs if unrecognized keys used in interview YAML
disable others feature interfered with the
show if feature.
0.5.81 - 2020-01-22 Added
allow updates Configuration directive and
Docker environment variable.
Google Drive issue with files reporting no size.
Erroneous reference to text_type.
0.5.80 - 2020-01-20 Fixed
Variables with iterators or generic object references could not be
set through the API or
0.5.79 - 2020-01-18 Added
convert_file API endpoint.
Incorrect tab order in Playground Pull.
0.5.78 - 2020-01-14 Added
depends on modifier.
on change block.
.invalidate_attr() method of
invalidate option in a
0.5.77 - 2020-01-12 Added
Ability to convert DOCX to PDF using CloudConvert.
cloudconvert secret Configuration directive.
0.5.76 - 2020-01-08 Fixed
Playground variables sidebar did not always switch to the most
Restart process used IP address and port that may not be available
0.5.75 - 2020-01-07 Added
datetime format, and
Line breaking issue with
0.5.74 - 2020-01-06 Fixed
Error when checkbox values are not strings.
0.5.73 - 2020-01-05 Fixed
Error in watchdog process launch.
UI bug in list collect.
0.5.72 - 2020-01-05 Added
admin full width Configuration directive.
wrap lines in playground Configuration directive.
Moved Download button to below the editor in the Playground.
Not safe to concatenate a
DAList and a
0.5.71 - 2020-01-05 Changed
Discontinued support for Python 2.7.
0.5.70 - 2019-12-30 Added
fr-words.yml translation file in
Errors when building the Dockerfile on the ARM architecture.
0.5.69 - 2019-12-24 Added
.privilege_access() methods of
allow users, and
attachments and field modifiers for
User could not access a private and persistent file after the
deletion of the session in which the file was created.
js show if and
0.5.68 - 2019-12-21 Fixed
JQuery Validation Plugin message for integer and step input
validation was not customizable.
Dependency was incompatible with Python 3.5.
0.5.67 - 2019-12-19 Added
help generator and
image generator field modifiers.
code was used with
content file and the code
returned a list.
Backup of Redis database when password is used.
0.5.66 - 2019-12-19 Fixed
Issue with Redis and passwords.
0.5.65 - 2019-12-19 Added
The Configuration page now reports the underlying Python version.
PATCH endpoints for API-related API calls only accepted URL
step specifier for
datatype: range fields was not effective.
re_run_logic() function did not re-run from the start of the
interview logic in all situations.
redis directive in the Configuration did not support
A checkbox with the empty string as the value triggered an error.
0.5.64 - 2019-12-15 Fixed
Back button after
url_args are set repeated the setting of the
resume interview after login feature did not work correctly
with the default menu.
0.5.63 - 2019-12-14 Added
API endpoints for managing API keys.
0.5.62 - 2019-12-12 Fixed
default interview was ignored if a
Error in package listing when installing from GitHub.
0.5.61 - 2019-12-11 Fixed
subtitle screen part was not updated correctly by
In the Playground, the “Share” link was not updated when the
“Variables, etc.” file name changed.
0.5.60 - 2019-12-09 Fixed
0.5.59 - 2019-12-09 Fixed
0.5.58 - 2019-12-09 Fixed
Modules included in YAML files with relative references were loading
from the main YAML file’s package, not in the package of the YAML
file containing the
0.5.57 - 2019-12-09 Changed
Different way of finding GitHub e-mail address.
0.5.56 - 2019-12-08 Added
action buttons specifier for
0.5.55 - 2019-12-06 Fixed
Styling of Font Awesome icons inside buttons.
Some variables in Variables, etc. inappropriately flagged as undefined.
0.5.54 - 2019-12-05 Added
confirm registration Configuration directive.
CSRF errors pop up in a “flash” box.
Cron jobs run with nice 19 (system upgrade required for this
Messages from Flask-User are now translated through the
docassemble system phrase translation system. Fixed
Styling of Font Awesome icons inside buttons.
0.5.53 - 2019-12-03 Added
SQLObjectRelationship classes in
.filter() class methods of
_session attribute of
The option to opt out of module pre-loading by adding
# do not
pre-load to a line at the top of the module file.
message parameter of
.add_action() has been renamed to
label (backwards-compatibility is maintained).
.get_session() method of
SQLObject has been removed in favor
0.5.52 - 2019-11-29 Fixed
Bug in package update script.
0.5.51 - 2019-11-28 Changed
pt-words.yml file has been renamed to
you are using this file, you will need to change your
HTML codes non-printable in dropdown lists.
0.5.50 - 2019-11-26 Added
inline_markdown Jinja2 filter.
Problem with XLSX translation file colorization.
0.5.49 - 2019-11-24 Fixed
Python 2.7 bug introduced in 0.5.47.
0.5.48 - 2019-11-24 Added
external keyword parameter for the
Access to files is now granted to users across sessions, whether the
session was active in the browser’s session or not. Previously,
access was restricted based on sessions that had been active in the
.url_for() method when used with
temporary=True now implies
external=True, which means that the URL returned includes the
protocol and hostname. Use
external=False to preserve the old
A superscripted question mark icon is now shown in the green text
help is added to a field.
When committing to GitHub from the Playground Packages screen, you
can choose to also publish on PyPI and install the package on the
When publishing to PyPI from the Playground Packages screen, you can
choose to also install the package on the server.
0.5.47 - 2019-11-24 Added
interview delete days by filename Configuration directive.
review button color and
review button icon options under
sleep option for
Cron job inefficiencies.
check in and
list collect at the
admin user signs in with a social login.
input type: ajax in
list collect did not allow adding
Ampersands in Jinja2 code were converted to
0.5.46 - 2019-11-21 Fixed
Possible race condition in
0.5.45 - 2019-11-20 Added
backup directive under
Problem converting some types of interview answers to JSON.
0.5.44 - 2019-11-20 Fixed
Cron job was overtaxing the SQL server.
does_verb() used the wrong tense.
0.5.43 - 2019-11-18 Added
Ability to pass keyword parameters to the
show() method of a
Problem with object storage cache invalidation.
0.5.42 - 2019-11-17 Fixed
Problem unpickling from 2.7.
0.5.41 - 2019-11-16 Fixed
Problem with the Playground API using the Templates folder.
Playground API did not support projects other than the default
HTML typo that was introduced in 0.5.40.
Problem unpickling from 2.7.
0.5.40 - 2019-11-15 Added
button style Configuration directive.
disable analytics option under
The LDAP login feature was not compatible with the new version of
0.5.39 - 2019-11-13 Changed
Multi-server syslog system improved.
objects_from_file() now accepts
DAFile and related objects.
DAStore being used with the API.
Logrotate not rotating all files.
0.5.38 - 2019-11-11 Changed
Testing scripts now support the
aloe package as an alternative to
Web sockets logs not sent to syslog.
REDIS not overridden when
ENVIRONMENT_TAKES_PRECEDENCE is true.
Reverted change made in 0.5.37 regarding HTML codes.
0.5.37 - 2019-11-09 Added
Method of initializing admin e-mail and password through volume
collect statistics Configuration directive.
External PostgreSQL database created if it does not exist.
mod_wsgi caused problems when upgrading.
HTML codes non-printable in dropdown lists.
Potential problem with too-short RabbitMQ heartbeat.
0.5.36 - 2019-11-04 Fixed
Exceptions raised by syslog calls were not trapped.
Problems with restarting server in multi-server configuration.
0.5.35 - 2019-10-31 Changed
The “remember me” feature removed.
Deleted or renamed playground modules not culled from Python
Content of new file in Playground lost if filename blank.
session parameter added to result of
0.5.34 - 2019-10-30 Fixed
Erroneous dependency on
0.5.33 - 2019-10-30 Changed
All Python dependencies have version numbers explicitly indicated.
Backend server health check tests for completion of initialization.
websockets ip Configuration directive no longer defaults to localhost.
Better handling of Markdown when passing values to a DOCX file
Ordinal functions now accept arbitrary keyword arguments.
Some phrases for translation not detected.
verbatim() function did not escape formatting characters in
0.5.32 - 2019-10-25 Added
ENVIRONMENT_TAKES_PRECEDENCE Docker environment variable.
use minio Configuration directive.
account_type as a response from `get_user_info().
Improved backup and logging in multi-server configuration.
admin can upgrade or downgrade packages.
subtitle did not work with
Certain PDF fields raised error.
Not all language functions were compatible with keyword parameters.
Manual newlines in Markdown not converted to line breaks.
Double quotes in HTML input element values not properly escaped.
0.5.31 - 2019-10-13 Added
Ability to use
content file specifiers of
labels above fields is used, the input element will now be
wrapped in a
<div> with CSS class
Server-side validation errors are now scrolled to when the screen
Broken link to variables and values on error page.
0.5.30 - 2019-10-11 Fixed
Free disk space indicator not compatible with Python 2.7.
0.5.29 - 2019-10-11 Added
Ability to download all log files as a ZIP file.
Free disk space indicator on Configuration page.
Problem with Google Drive Sync and zero-byte files.
0.5.28 - 2019-10-10 Fixed
Problem with NGINX and
0.5.27 - 2019-10-10 Fixed
Problem with session deletion.
0.5.26 - 2019-10-09 Changed
Limited data retrieved by Google address autocomplete feature.
NGINX configuration omitted
0.5.25 - 2019-10-09 Changed
Configuration page now shows a listing of errors in the
Configuration, if there are any.
Error with URLs to cloud-hosted files.
0.5.24 - 2019-10-08 Fixed
Error with Run button in Playground.
Erroneous space in the CSS class names of some fieldsets.
Error with non-cloud temporary URLs.
0.5.23 - 2019-10-08 Added
Additional cache invalidation headers.
0.5.22 - 2019-10-08 Added
use cloud urls directive in the Configuration.
Miscellaneous problems with ajax field type.
Syntax with Let’s Encrypt renewal not compatible with all
Problem with obtaining JSON version of
js show if
is in use.
Unnecessary saving of interview answers with the wrong encryption.
0.5.21 - 2019-10-04 Fixed
Error when Playground project name matched name of a Playground
0.5.20 - 2019-10-04 Fixed
Problem with office task pane.
Problem with YAML in field scanner in utilities.
endpoint url option.
0.5.19 - 2019-10-02 Fixed
Problem with background tasks and uploads.
0.5.18 - 2019-10-02 Added
Projects system in the Playground.
0.5.17 - 2019-09-26 Added
An option for assembling text files by setting
raw: True under
0.5.16 - 2019-09-25 Added
Thumbnail generation bug.
Image icon problems.
External URLs calculated inconsistently.
0.5.15 - 2019-09-23 Added
css class screen part.
allow anonymous access Configuration directive.
0.5.14 - 2019-09-23 Fixed
Markdown of single-column
tables not recognized.
0.5.13 - 2019-09-22 Added
use_objects option for
use objects option for
objects from file.
objects_from_file() function and the
objects from file block
now support JSON files as well as YAML files.
Transitional error related to session upgrade.
0.5.12 - 2019-09-21 Changed
Users can run multiple sessions in different browser tabs.
i URL parameter is required for any endpoint that uses the
DAEmpty class now supports comparison operators.
IndexErrors appeared under some circumstances when using actions.
Live Help bug.
0.5.11 - 2019-09-16 Fixed
Problem with checkbox object initialization inside of
Error when trying to inspect functions to get usage information for
the Playground sidebar.
Renewal of Let’s Encrypt included obsolete domains.
0.5.10 - 2019-09-15 Added
symbol keyword parameter of
currency_symbol keyword parameter of
disable others when
allow non-idempotent questions
reconsider under certain circumstances.
command() used immediately after a file upload.
Error when exporting dates in a table to Excel.
0.5.9 - 2019-09-12 Fixed
NoneType error when using
Error when non-base64 dictionary keys happened to be valid base64.
0.5.8 - 2019-09-11 Added
delattr method of the
Different behavior when
allow non-idempotent questions is set to
Unpickling errors in
user_interviews() not trapped appropriately.
0.5.7 - 2019-09-10 Changed
functions are renamed to
Aliases are in place for backwards-compatibility.
Widths of images inserted into DOCX files now support centimeters
and twips as units.
continue button field can now be used with other types of
questions that set variables, rather than just
Unpickling errors in
user_interviews() not trapped.
0.5.6 - 2019-09-08 Added
flash() function to clear existing
Error when displaying the JSON form of certain
Error when using
Value objects in the
choices of a
0.5.5 - 2019-09-07 Added
require gathered specifier for tables.
.pop() on a
DAList no longer triggers list gathering.
Every module file installed in the
docassemble namespace that
contains a class definition will be loaded when the server starts or
Erroneous message about starting new interview was appearing on
Default values not appearing for some
datatype: object fields.
Unpickle errors when modules that contain classes are not loaded.
Tooltips not showing up on sliders.
0.5.4 - 2019-09-05 Fixed
maximum content length was being superseded by a NGINX content
Word add-in bug.
0.5.3 - 2019-09-04 Added
exit url specifier under
0.5.2 - 2019-09-03 Fixed
0.5.1 - 2019-09-02 Fixed
get_question_data() and related functions raised exception.
Let’s Encrypt renewal error.
0.5.0 - 2019-09-02 Added
advance_progress_meter option for the
/api/session POST API
DAWEBSERVER Docker environment variable and the
S3ENDPOINTURL Docker environment variable and the
url Configuration directive under
Upgrade Docker OS to Debian buster.
Upgrade Python from 3.5 to 3.6.
The default web browser under Docker is now NGINX.
The Docker image now builds in two parts. The jhpyle/docassemble-os
image is the base image for jhpyle/docassemble.
functions use the current user’s decryption key by default.
0.4.80 - 2019-08-22 Fixed
__version__ in Python 2.7 raised Unicode error.
Back button after action in URL repeated the action.
progress value was missing from the JSON representation of the
0.4.79 - 2019-08-21 Added
input type called
paragraphs Jinja2 filter.
__version__ variable is now defined in packages generated from
the Playground packages folder.
UTM parameters are retained if an
analytics id is defined under
google in the Configuration, or a
segment id directive is
defined in the Configuration.
The Playground packages folder GitHub commit process now uses
merge to merge changes, which means it might fail if a commit would
The Playground packages folder now allows for committing to a new
Incorrect behavior during initial visit to
interview uses unique sessions.
Interview advanced a step despite
validation code raising an
0.4.78 - 2019-08-15 Added
labels above fields.
sessions are unique and
0.4.77 - 2019-08-14 Added
enable playground Configuration directive.
The behavior of the
label option of
list collect no longer
prints text before
2., etc. Now the
label supplies the
whole label for the item, and it can include the number by way of
the index variable.
list collect feature raised an exception when the field
definition included Mako substitution.
Non-required upload fields were creating zero-byte files on some
0.4.76 - 2019-08-12 Changed
The syslog-ng server is now started after the web server.
Unhelpful error message when there was an interview parsing error.
DAStaticFile objects not being included in DOCX files correctly.
0.4.75 - 2019-08-12 Added
administrative interviews Configuration directive
sessions are unique,
required privileges for listing, and
hidden specifiers under
words system no longer uses code names like
required privileges specifier under
metadata now prevents
users without a valid privilege from starting the interview. The
required privileges for listing now controls whether the interview
is listed under
Passing an asterisk in a list to Flask-CORS resulted in a regular
Not all Flask packages accept integers as the
0.4.74 - 2019-08-09 Fixed
undefine() function did not always find the interview
0.4.73 - 2019-08-09 Added
Support for noun pluralizing and verb conjugation in Spanish,
French, Italian, German, and Dutch.
Additional methods for
The output of the
interview_menu() function, the
endpoint, and the
/list?json=1 endpoint now include interview
undefine() function now accepts multiple variables names.
DAObjects that are attributes of
DAList items had their
instanceNames rewritten when the parent list was altered.
When an object that was already defined was edited using
datatype: object or
datatype: object_radio, the default
value was not showing.
The office add-in was not using the best method to determine the
full URL of the server.
0.4.72 - 2019-08-07 Fixed
Translation of metadata titles not compatible with
Language not set when e-mailing assembled document in the
0.4.71 - 2019-08-06 Changed
API for making user accounts inactive now supports permanent
API for setting variables now supports initializing
Multiple choice options specified with code can be specified with
lists of tuples.
Missing system phrase used in input validation.
0.4.70 - 2019-08-03 Added
Account deletion options.
Options in the user profile for controlling which repositories will
be considered when the Playground packages folder looks for and
commits to GitHub repositories.
session lifetime seconds,
admin can delete account,
user can delete account, and
delete account deletes shared.
In tables, ordered dictionaries will use their built-in order.
Base64 padding removed from field names.
Poppler upgrade interfered with width of images in popups.
0.4.69 - 2019-07-29 Fixed
Unnecessary file cache invalidation affected Playground performance
when using cloud storage.
Incorrect method of setting Debian timezone.
0.4.68 - 2019-07-28 Added
/api/package_update_status API endpoints.
session parameters of
hook_after_gather() methods of
Bug in the
complete_elements() method of
Incomplete support for editing lists that have
0.4.67 - 2019-07-25 Added
confirm option for table editing.
The “Select…” option on a dropdown is omitted when the field is
required and a default value is selected.
keys() method of
DADict was removed when
keys included in
The language did not switch unless it did not match the default
Restart buttons did not work from
0.4.66 - 2019-07-23 Changed
Allow sending multiple invite e-mails at once.
Canceling phone live help availability failed.
The 404 error from
/interview did not use the 404 template.
0.4.65 - 2019-07-19 Fixed
Erasing phone number in Monitor raised an error.
OneDrive synchronization error.
0.4.64 - 2019-07-17 Changed
Error during initialize process possibly caused by stderr being made
File upload previews shown twice under certain circumstances due to
0.4.63 - 2019-07-16 Added
Unpickleable object added to the document cache in the internal
0.4.62 - 2019-07-14 Added
once_temporary options to the
interview_url() and related functions.
Too many monitor connections led to SQL error.
Some functions did not work in actions.
0.4.61 - 2019-07-10 Added
Restored pre-0.4.55 behavior allowing Mako in multiple choice
0.4.60 - 2019-07-09 Changed
More robust Docker scripts.
0.4.59 - 2019-07-05 Changed
Changes manually made to
/etc/apache2/sites-available files while
the container is running will now be backed up upon shutdown and
restored upon startup.
0.4.58 - 2019-07-05 Changed
CORS headers now handled by Flask rather than Apache.
cross site domain Configuration directive is renamed to
site domains and the value must be a list.
CROSSSITEDOMAIN Docker environment variable.
More frequent deletion of temporary files.
0.4.57 - 2019-07-01 Added
Problems with Google sign-in on Python 3.
0.4.56 - 2019-06-29 Added
initializeObject method of
datatype: checkboxes items.
Error when using
0.4.55 - 2019-06-28 Added
Mako no longer allowed in non-label items of
backup days is
0, no daily backups will be done.
dialects enabled under
0.4.54 - 2019-06-26 Added
language map directive under the
languages under the
voicerss Configuration directive to
dialects (with backwards compatibility).
list collect on empty non-object list did not show the first item.
Wrong protection on some cells in translation spreadsheets.
nan values appeared in translation spreadsheets.
Terms with capital letters were not being translated.
System terms were not appearing in translation YAML when Google
Cloud Translation API was not configured.
0.4.53 - 2019-06-26 Added
Ampersand correction for DOCX now happens in Jinja2 even if pipe
hint was missing from the data representation of a field.
html were missing from the data representation of a
field when not standalone.
Group editing did not work with non-object lists and dictionaries.
message() screens did not work.
0.4.52 - 2019-06-18 Added
Potential error in Playground sidebar if the same variable name is
used for two different types of object.
json URL parameter is not an integer.
0.4.51 - 2019-06-13 Changed
initial option for
update on start.
Using a different mechanism for restarting servers after a software
LibreOffice failing when multiple instances of LibreOffice run
0.4.50 - 2019-06-12 Added
update on start Configuration directive.
websockets ip, and
include_docx_template() function now includes images, shapes,
styles, footnotes, etc. from the sub-document.
Problem with websockets on servers with a
root other than
/api/session POST API endpoint will now convert dates to
DADateTime objects, unless the
raw parameter is
Triple spacing in RTF documents.
Flask route ambiguity with
0.4.49 - 2019-06-08 Changed
Revised the CSS classes for error messages.
Word add-in did not work for servers with a
root other than
0.4.48 - 2019-06-06 Added
.is_encrypted() method of
DAFile and other file objects.
Dependency problems when
docassemble.base was used without
Errors in the
DAFileCollection version of
.startsWith() methods, which are
not universally supported.
0.4.47 - 2019-05-31 Added
'link' style buttons with
Some types of
fields gave errors with
0.4.46 - 2019-05-30 Fixed
Recursion error with
A CSS class was called
vspace instead of
Multiple choice options not included in translation spreadsheets.
0.4.45 - 2019-05-27 Added
Made modifications to facilitate embedding interviews in a
in another site.
Errors from OneDrive integration.
Error reading fields from PDF.
Inserting certain types of images into RTF files resulted in a fatal
error rather than a non-fatal error.
0.4.44 - 2019-05-21 Added
sort_elements() methods for
auto terms are now compatible with the
Files in the Playground will be served from server rather than block
static_image() did not work with unqualified file names.
Some initial blocks were not included in side-by-side translation
Orphaned translations did not receive syntax highlighting in
Indented Mako was not receiving syntax highlighting in translation
Translations containing emojis were being truncated in translation
0.4.43 - 2019-05-16 Added
tag parameter for
DAContext object and the
use objects option for the
data from code blocks.
HTML error when
hide standard menu is in use.
0.4.42 - 2019-05-11 Changed
Many CSS classes and IDs renamed and given the
Errors with SMS interface.
DAList were not allowed in
0.4.41 - 2019-05-02 Added
get_docx_variables() method of
DAFile and other file
ProxyFix settings for Docker containers behind reverse proxies.
0.4.40 - 2019-04-29 Fixed
0.4.39 - 2019-04-29 Fixed
Variables could not be converted to JSON where
None used as
Compile errors due to unused non-Python-3-compliant code in copy of
Playground package description formatted as text area, which
resulted in newlines that caused problems when uploading to GitHub.
0.4.38 - 2019-04-25 Added
get_pdf_fields() method of
DAFile and other file objects.
playground examples directive in the Configuration.
new markdown to docx directive in the Configuration.
Style of chat messages updated; content of message from the monitor
is now contained in the notification received by the end user while
looking at a question.
Python 3.5 error in utility function for Azure Blob Storage.
0.4.37 - 2019-04-23 Fixed
Error affecting Python 2.7.
0.4.36 - 2019-04-23 Changed
Syntax highlighting and word wrap for interview phrase translation files.
New style for chat messages.
PAM failure in cron on Amazon Linux.
0.4.35 - 2019-04-20 Added
translations block and the interview phrase translation file
0.4.34 - 2019-04-16 Changed
0.4.33 - 2019-04-16 Added
XSENDFILE Docker environment variable.
API will now process JSON as well as form-data.
xsendfile will be set to
False in the initial
BEHINDHTTPSLOADBALANCER is true.
New version of ProxyFix not called with arguments for processing
0.4.32 - 2019-04-15 Added
as_df() method of a table.
segment id, and
ga id specifiers.
log format Configuration directive.
Error when reading log files in multiple server configuration in
0.4.31 - 2019-04-07 Fixed
0.4.30 - 2019-04-07 Added
editable mimetypes and
editable extensions configuration
worker.log no longer exempt from backup.
The Redis database now backed up to rolling backup.
Relaxed some restrictions on multiple developers working on same
package in their Playgrounds.
write() method of
Problem with creating packages when author not defined.
debug mode not in effect.
0.4.29 - 2019-03-28 Added
.size_in_bytes() method for
Python3 could not write to S3.
0.4.28 - 2019-03-28 Added
Swagger-generated setup.py files in ZIP files could not be parsed.
Error with gender set to “other”
0.4.27 - 2019-03-27 Added
list collect feature for allowing users to add multiple items
DAList on one screen.
GitHub error with packages that have dependency packages with null
0.4.26 - 2019-03-25 Fixed
Enter key caused browsers to press the
question back button.
Newest version of
textstat not compatible with Python 2.7.
0.4.25 - 2019-03-22 Changed
When using Google Drive Sync, deleting file from Playground now
permanently deletes file from Google Drive, rather than send it to
KeyError during initial GitHub repository creation.
Exception could be raised if docstring in a dependency module was
Methods not appearing in Playground sidebar in Python 3.
File uploads failing in Internet Explorer.
0.4.24 - 2019-03-21 Added
maximum content length configuration directive.
image upload type configuration directive, feature, and field
A long interview title could cause wrapping in the navigation bar on
0.4.23 - 2019-03-19 Added
progress bar multiplier and
progress bar method features.
Embedded blocks can use generic objects and iterators.
Help buttons are now “info” color instead of “secondary” color.
Error when uploading files through the API.
Error resulting from
add_action() under some circumstances.
0.4.22 - 2019-03-17 Fixed
0.4.21 - 2019-03-16 Added
Excessive memory usage while looking for cron tasks.
Could not upload more than one module file to Playground at the same time.
Playground Wizard errors.
0.4.20 - 2019-03-13 Added
id_tag option to
Field number in error messages.
Removed redirects after non-standard URL parameters.
add_action() button behaves more consistently with
new_window option to
action_button_html() can be used to set
target of the hyperlink.
0.4.19 - 2019-03-10 Added
allow non-idempotent questions specifier in
removed and replaced with a Configuration directive.
allow non-idempotent questions Configuration directive is set
False by default in the default Configuration. This will
affect new servers but not existing servers.
The API validation
Referer constraint checks against the
there is no
0.4.18 - 2019-03-09 Added
Fullscreen option for code editing.
Python 3 errors during GitHub integration process.
0.4.17 - 2019-03-08 Added
python packages Configuration directive and the
PYTHONPACKAGES Docker environment variable.
Error when updating references in .docx file.
object_type_repr error raised from Jinja2.
filter() returning zero elements from non-empty list caused
uncheck others fields had wrong CSS after unchecking.
Thumbnails for .docx files.
Blanking of dates in Firefox on blur.
0.4.16 - 2019-03-04 Fixed
Playground packages copied to wrong location on Python 3.
0.4.15 - 2019-03-04 Fixed
LuaLaTeX was not properly being detected.
0.4.14 - 2019-03-04 Fixed
LibreOffice initialization encountered circularity.
0.4.13 - 2019-03-03 Changed
none of the above specifier can be used with
docassemble.base.util is now loaded by default.
Switched to LuaLaTeX for better Cyrillic support. Requires server restart.
0.4.12 - 2019-03-01 Added
allow reordering specifier in
Unicode problem reading S3 keys as strings.
0.4.11 - 2019-02-28 Added
error action specifier in
0.4.10 - 2019-02-27 Added
tagged pdf option for
docx template file document assembly.
pdf/a options now create PDF/A documents directly with
comma_and_list() now work with a wider
variety of iterables.
0.4.9 - 2019-02-25 Added
Support for sending text messages using WhatsApp using
Non-required file upload variables will be set to
None instead of
Unicode error during package upgrade when
pip show returns bytes
that cannot be decoded as UTF-8.
0.4.8 - 2019-02-24 Changed
Upgraded Font Awesome to 5.7.2.
0.4.7 - 2019-02-23 Fixed
Unicode problem with user names.
Unicode problem with OCR.
SQL concurrency problem with row updates.
instanceName on file uploads.
0.4.6 - 2019-02-19 Changed
error help metadata specifier now accepts a dictionary of
language codes and messages.
verbose error messages configuration directive.
Unicode problem with Markdown documents.
Deep copy error with
0.4.5 - 2019-02-18 Changed
Group gathering with
ask_number=True will use the value of
there_are_any if it is defined and set to false.
When editing list using a table, completeness of elements will be
Back button embedded in question is now “link” style.
content_as_html() methods of objects
generated from a
hide navbar feature.
js_target URL parameter for embedding the
interview into an element on another web site. The
gathered_and_complete() method of the
Error logging in with Auth0 in Python 3.
comma_and_list() function was not Unicode-friendly.
Method of adjusting encryption of interviews in session after
logging in was inefficient.
API verification not working in Python 3.
Screen reader in Python 3.
Playground commit not pushing to organizational repositories.
0.4.4 - 2019-02-15 Added
convertapi secret configuration directive.
API endpoints for listing and deleting Playground files.
JSON serialization with unusual dict keys.
Screen scrolling problem in Playground folders.
0.4.3 - 2019-02-13 Added
PY2 names, imported from the
allow non-idempotent questions specifier in
post screen part is now positioned below the
part on small screens.
The screen parts feature was not fully implemented and documented.
required privileges feature was not fully implemented.
Editing yourself through
/userlist would disable yourself.
Error with text-to-speech cache.
Non-required file upload variables were being set to
instead of being ignored.
0.4.2 - 2019-02-10 Added
Additional SQL indexes.
default screen parts block.
required privileges specifier in
set_title() function was renamed to
set_parts() and now
supports setting any screen part.
Error with OCR.
Error with screen reader.
The current section when showing a
nav in a question was not
Wrong formatting of subsections in sections sidebar under some
0.4.1 - 2019-02-04 Added
Placeholder CSS classes for customization.
Support for alternative Redis ports and database offsets.
0.4.0 - 2019-02-04 Added
DAPYTHONVERSION Docker environment variable.
The system is now compatible with Python 3.5.
subdivision_type() algorithm was improved.
The update script failed under some circumstances due to a SQL
0.3.36 - 2019-01-24 Fixed
Not all login methods were redirecting the user back to the
interview when they should have.
0.3.35 - 2019-01-22 Added
resume interview after login configuration directive.
/api/session API endpoint and the
function now accept the
event_list parameter and can get past
More robust code injection detection mechanism.
Unicode error with certain Spanish numbers.
0.3.34 - 2019-01-20 Added
Customizability of standard validation messages using the
messages field modifier or the
default validation messages block.
.geolocate() method to populate attributes of
using a single-string address.
Options for setting
.alt_text attribute on
.get_alt_text() methods of file objects.
template password option for
pdf template file (new
Upgraded Pandoc to version 2.5.1 (new
docker run required).
UI changes for keyboard navigation of sections.
Empty documents generated by Markdown were resulting in zero byte
PDFs rather than one-page blank PDFs from Pandoc.
The field names on some types of PDF files were not being identified
correctly on the Utilities screen.
0.3.33 - 2019-01-16 Changed
API calls can be authenticated with an
X-API-Key cookie or HTTP
API responses contain CORS-friendly HTTP headers.
JSON error when running
XML error when assembling DOCX files.
0.3.32 - 2019-01-16 Changed
UI and HTML changes for accessibility.
Timing of initialization of Google autocomplete fields resulted in
OneDrive synchronization errors due to changes in the Microsoft Graph API.
0.3.31 - 2019-01-14 Changed
Additional information added to data representation of question.
HTML more standards-compliant for accessibility.
Package update process was not detecting missing packages.
The watchdog’s process terminations were causing unnecessary
internal server errors under high system load, mistaking a busy
Apache process for an out-of-control Apache process. The threshold
has been adjusted. The change will only take effect after a
docker start. Alternatively,
docker exec into the
container and run
supervisorctl restart watchdog.
0.3.30 - 2019-01-05 Added
/api/login_url API endpoint.
/api/user_info API endpoint.
/api/user/new API endpoint will now create a random password
if a password is not provided.
/api/user/new API endpoint used
email when the correct
0.3.29 - 2019-01-03 Added
question_name option for the POST method of the
API endpoint and the
Unicode error from
0.3.28 - 2018-12-31 Added
accept specifier for
datatype: file fields.
0.3.27 - 2018-12-24 Changed
Table edit attribute names treated as “follow up” actions.
0.3.26 - 2018-12-21 Changed
reconsider() to 0.3.24 version.
0.3.25 - 2018-12-20 Changed
Exception raised if unsafe filename used for a
Problem with caching of stand-alone
0.3.24 - 2018-12-17 Added
inline keyword parameter for the
describe() method of the output of
The result of
date_difference() when reduced to text now runs the
describe() method instead of stating the number of days.
space_to_underscore() function now uses
werkzeug.secure_filename() and replaces more than just non-ASCII
characters and spaces.
.export() method of tables.
0.3.23 - 2018-12-15 Added
Error from Playground sidebar for interviews using
0.3.22 - 2018-12-14 Added
Insertion of PDF files into DOCX files.
Links in Playground sidebar to source code on GitHub.
Data representation of a question now includes plain attachment file
Not all thread local variables were reset before request.
Unicode error when exporting README.
Azure Blob storage missing content type.
0.3.21 - 2018-12-10 Added
object labeler option in
0.3.20 - 2018-12-08 Added
exclude_privileges keyword parameter of the
last_access_time() function and related functions.
/api/user_list API method and the
now return a user’s privileges under a dictionary key called
privileges. Previously the key
roles was used.
has_key() methods of
DADict did not work.
templates on a screen using iterators did not work
Browser back button sometimes required two clicks to go back one
Unhelpful error when uploading invalid file type to Wizard.
Temporary PDF files accumulating in
0.3.19 - 2018-12-02 Added
Protections against adding non-modules to Modules folder.
Keep memory of visited sections when the available sections change.
/user/register while being signed in
will now redirect to the
auto resume interview, if any.
0.3.18 - 2018-11-30 Fixed
Unicode error in text to speech engine.
0.3.17 - 2018-11-30 Added
.show(editable=False) option for tables.
include_dict option for
formatted_unit() method for
Icons on the User List page highlighting users with special
Admin users cannot take away their own admin privilege.
Admin users cannot disable their own accounts.
Validation error messages in admin pages were black when they should
have been red.
.add_action() method for
pandas erroneously requires a
nanosecond attribute in dates.
instanceName guessing in the context of a function.
0.3.16 - 2018-11-26 Added
export() method of tables.
0.3.15 - 2018-11-26 Added
0.3.14 - 2018-11-25 Added
.filter() method of the
mmdc() function for generating diagrams and flowcharts with
mermaid. Requires system upgrade.
0.3.13 - 2018-11-23 Added
“Sync and Run” button in the Playground.
0.3.12 - 2018-11-22 Fixed
value() using a variable as an iterator.
0.3.11 - 2018-11-15 Added
/api/playground file upload feature.
0.3.10 - 2018-11-13 Added
page after login feature.
0.3.9 - 2018-11-10 Added
allow sms, and
two factor authentication.
progressive option for
0.3.8 - 2018-11-04 Added
backup days configuration directive.
word() function did not work on words with non-ASCII
Empty fields question skipping did not work where variable was
attribute of a non-existent object.
Interviews that changed the language changed the language of the Playground.
0.3.7 - 2018-10-28 Fixed
0.3.6 - 2018-10-28 Changed
Validation is now applied in required fields so that spaces alone
cannot bypass validation.
Color of pressed button now “secondary” rather than “success” and
colors of non-pressed buttons now “light” instead of “secondary.”
Problem with editing lists where the
complete_attribute is not
defined by a
No proper error message when a non-text string is used as a variable
Problems with locking-related changes from 0.3.5.
Admin users were allowed to give
admin privilege to users with
Python error in cron.py.
0.3.5 - 2018-10-23 Added
delete_url_only parameters to the
url_only parameter to the
message parameter to
add_action() is now passed through
Removed the new feature from 0.3.3 where interview answers are saved
Different method of locking while copying playground modules.
Percent signs in
number fields may have avoided validation.
Database access for chat log not protected by locking.
0.3.4 - 2018-10-20 Fixed
Links not appearing in the inline navigation bar.
Toggle button not present in the vertical navigation bar.
0.3.3 - 2018-10-19 Added
The ability to set a
read only attribute on a
table to indicate
that some rows cannot be deleted or edited.
Editing a table will cause the definition of the
attribute, if any, to be recomputed after the
edit attributes are
Interview answers saved before a
Background task callbacks that raise exceptions will no longer save
Dependencies not being properly scanned from
Review screen resume button that set variable had unicode instead of
boolean data type.
Text was not scanned for emojis unless
images were defined or the
default icons directive was set.
get() method of
DADict did not work.
Random errors where dictionary cannot be retrieved (potential fix).
minimum_number feature introduced in 0.3.2 did not work on
tables based on
Elements could not be added through
add_action() when the list was
rows directive of a table resulted in an error if the
expression used a compound operator (e.g.,
Changes to fields made by remote user not reflected in observer window.
Back button did not work when remote controlling.
Updated deprecated pandas code in the machine learning module.
0.3.2 - 2018-10-13 Changed
table with a
DADict now sets
row_index to the key and
row_item to the value, and
DADicts can be edited using tables.
No delete buttons on a
table when deletion would cause the number
of items to fall below
edit option on a
table can now use reference indices as well
message for the
add_action() method on a group is
“Add an item” if the group is empty.
Clicking on a navigable section header empties the action queue,
ensuring that clicking “Resume” puts the user back in the interview,
rather than the screen they saw before they clicked the header.
delete buttons option when using
edit on a
only_if_empty option on the
slice method of the
re_gather attribute of groups to
follow up option in a
preloaded modules configuration directive.
URL for restarting interview session conflicted with another URL
when user logged in.
tables could not appear inside of
review blocks because they
were always undefined.
Navigable section headers not styled correctly.
One of two processes simultaneously loading the playground modules at
same time could encounter an empty directory.
Screen loads through
url_action_perform() did not show the
Some thread variables were not reset between requests.
The OCR background function did not work, so rolled back celery and
kombu to 4.1.0.
0.3.1 - 2018-10-02 Changed
When a variable is force-asked or the goal of an action and a
question is not found, no error will be raised. This facilitates
the use of optional follow-up questions in a
Aliased template variables generated pickle errors.
0.3.0 - 2018-09-28 Changed
Upgraded OS from Debian stretch from Debian jessie. Upgraded pandoc
to version 2.3. LibreOffice upgraded to version in
stretch-backports. A system upgrade is required to realize these
minlength on a
datatype: checkboxes field turns off the
“None of the above” item.
LibreOffice upgraded to version in jessie-backports.
exit_logout under buttons,
Logging in with e-mail and password where e-mail already used for a
social login generated an exception.
.copy_into() method of
DAFile now accepts
DAFileCollection objects as
the argument, as well as the direct file path of the other file.
Problem with converting to PDF after
update references for some
tables of contents.
.from_url() methods now update PDF and
image information after the file contents change.
Additional test interviews.
html can now be used to insert text in the right
column, along side a field.
maxlength modifiers did not work on
insert_docx_template() function was not intercepting all
parameters of class
DAObject and passing them as objects.
Too many line breaks in .docx address block.
Static file videos did not work.
Static file videos were static width.
0.2.99 - 2018-09-19 Added
back button and
back button label modifiers.
show login directive in interview
0.2.98 - 2018-09-18 Fixed
Error in Word manifest XML file.
0.2.97 - 2018-09-18 Added
Playground “Variables, etc.” for the Word task pane.
It is no longer necessary to remove curly quotes from .docx Jinja2
code. They will be converted to straight quotes before processing.
choices list could not contain a list of numeric, boolean,
DAStaticFiles could not be inserted into .docx templates.
0.2.96 - 2018-09-12 Added
Integration between Microsoft OneDrive and the Playground.
debug directive inside
Upgraded Font Awesome to 5.3.1.
0.2.95 - 2018-09-08 Added
update references setting on
0.2.94 - 2018-09-05 Added
redact() function and
redact option on
table blocks now become
objects rather than
DATemplate objects. Their contents are
evaluated at the time they are reduced to text, not at the time they
currency() and other functions when used from a
template file where undefined variables did not raise exceptions.
create_new_interview() function caused unnecessary 4 second delay.
user privileges could not access API key management.
interview_url() function was returning a URL based on how the
current request was made, rather than the actual URL for getting to
0.2.93 - 2018-08-31 Fixed
DATemplate variables with string indices.
0.2.92 - 2018-08-27 Added
show progress bar percentage feature.
background_response() function can be called using
background_response('refresh') to refresh the user’s screen.
0.2.91 - 2018-08-25 Added
fields version of
background_response() could not set radio
0.2.90 - 2018-08-23 Fixed
Problem with checkboxes inside a
0.2.89 - 2018-08-20 Changed
variables_as_json() function now accepts
a keyword parameter.
variables_as_json() function now produces pretty-printed JSON
Only ordinary users will see flash messages about switching to a
Template and static file deletion in Playground.
Setting the instance name of items that are already in a list.
Non-mandatory questions were being marked as answered in the
0.2.88 - 2018-08-20 Fixed
The recent version of WTForms is incompatible; set to 2.1.
simplify parameter of
get_session_variables() was fixed to
0.2.87 - 2018-08-19 Changed
Moved interview HTML into a
<div> to provide compatibility with
0.2.86 - 2018-08-17 Added
js show if and
js hide if field modifiers.
continue button field feature.
Upgraded Font Awesome to 5.2.0.
DALists added together will yield a
zip_file() returned an empty archive when given a
0.2.85 - 2018-08-15 Fixed
Problem with screen reader flagging help text with Markdown
formatting as a defined term.
Problem with Internet Explorer passing through commas in numeric
0.2.84 - 2018-08-13 Changed
Word processing files and text files can now be included in
documents in the same way that images can.
DAFileCollection to text no longer attempts to show all
versions in the collection, but only includes one.
0.2.83 - 2018-08-11 Changed
Playground UI highlights most recently edited files.
0.2.82 - 2018-08-08 Changed
Some exceptions raised by Jinja2 will now be accompanied by a
snippet of document context.
Initial support for Travis CI deployment.
Setting of text fields to
None when the value is the string
Vertical alignment of section labels in horizontal mode.
User text causing Pandoc to enter LaTeX math mode.
Reconstruction of certain types of bookmarks after adding signature
Addresses that normalize without a street address.
0.2.81 - 2018-07-31 Changed
Interviews are now served from
/interview rather than
change is backward-compatible.
Error notification e-mails will no longer include the interview
variables as a JSON file unless
error notification variables is
set to true in the Configuration.
Non-mandatory blocks no longer get tracked in the internal
dictionary as having been answered.
root redirect url Configuration directive.
include_internal parameter of
mandatory is used on a block that does not support the
Missing unique IDs for API calls.
HTML typo in Logs page.
0.2.80 - 2018-07-24 Added
/me resource with information about the user.
JSON returned by API and
/vars is now pretty-printed.
Referencing a non-existent section no longer triggers an error.
0.2.79 - 2018-07-21 Changed
append method to the
DAList class now accepts an optional
Any package name starting with
demo was being blocked
allow demo was not set to
0.2.78 - 2018-07-17 Added
index() method of the
File uploads are now at the top of the screen in Playground folders.
datatype: checkboxes and
0.2.77 - 2018-07-13 Fixed
post HTML was missing on signature pages.
value() function was not working properly.
0.2.76 - 2018-07-11 Fixed
Possible fix for “group by” SQL error in
0.2.75 - 2018-07-11 Added
step option for
datatype: number and
datatype: number are no longer limited to two decimal
The “exit” command was logging the user out.
0.2.74 - 2018-07-11 Added
error help configuration and metadata directives.
.copy_deep() methods of
Error e-mails now attempt to attach the interview variables as a
Error in cron about missing
Auth0 login was erroneously enabled by default.
0.2.73 - 2018-07-07 Added
set_instance_name option for use with
skip undefined option for
block() method of
Address now includes the word “Unit”
before the unit, if the unit exists.
On iOS mobile devices, an
<optgroup> is now added to
Vertical spacing between buttons in the Actions column of a table.
Templates with variable names containing iterators were not being
Default date values were not displayed in
0.2.72 - 2018-06-27 Fixed
Error message when publishing to PyPI.
Unicode error in YAML dump.
0.2.71 - 2018-06-21 Added
set options inside of a
To indicate that a multiple-choice under
fields should use
pulldown, or a
input type instead of
datatype can then be set to something else, like
number. This change is backwards compatible.
Removed sublocality from normalized addresses.
values look like numbers.
delete_all function did not delete all interviews.
defined function did not work well with lists and dictionaries
in the process of being gathered.
0.2.70 - 2018-06-14 Changed
force_ask() and calls to actions now result in more
persistent variable seeking.
Improved editing of lists.
show if with
show if with a value of
0.2.69 - 2018-06-12 Fixed
Section headers with hyperlinks.
Google Drive with a large number of files.
0.2.68 - 2018-06-10 Fixed
Problems with Google Drive timestamps when cloud storage in use.
Invalid use of echo in Dockerfile.
0.2.67 - 2018-06-09 Changed
When a non-text field is not required, and the user does not provide
a value, the variable will be set to
Required field markers show differently in some contexts.
Additional log messages for Google Drive.
New Debian dependencies
Problems with Google Drive initial set-up.
0.2.66 - 2018-06-07 Changed
Code editing boxes are now sized relative to screen size.
0.2.65 - 2018-06-06 Added
Better error handling after uploads.
Better error handling during software updates.
0.2.64 - 2018-05-31 Added
Feature for uploading files through dataurls to the Template Folder
of the Playground.
Comboboxes now accept free text input.
PDF bookmarks restored after inserting images.
0.2.63 - 2018-05-25 Added
error notification email configuration option.
Error with PDF fields and signature overlay.
0.2.62 - 2018-05-23 Added
JSON interface to the “Variables, etc.” and list of Playground
Error during invitation and registration.
0.2.61 - 2018-05-19 Changed
disable others directive now accepts a list of fields.
Most natural language functions now accept an optional keyword
subdivisionfirst database fields have longer
Additional system phrases are translatable.
0.2.60 - 2018-05-15 Fixed
Error on registration page.
0.2.59 - 2018-05-15 Added
Horizontal navigation bar option.
Option for disabling the
pip cache when installing a package.
validation_error() function and the
interview_list() function now returns
PDF assembly resulted in a missing AcroForm error in some circumstances.
PyPI publishing code used out-of-date upload URL.
Deleting session in multi-user interview deleted sessions for all
Visiting registration page while logged in did not redirect to My
An inappropriate error was raised about
validate input validation
functions for certain input types and values.
0.2.58 - 2018-05-08 Added
Version number on the Package Management page.
Problem with checkboxes inside of
CSS problem with the “required” asterisk.
0.2.57 - 2018-05-07 Added
num_pages() method on
On the mobile
signature page, the “Clear” button is replaced with
a “Back” button.
validate code now works on document uploads.
question back button was missing from the buttons on the
Problem with spacing of the
question back button next to other
0.2.56 - 2018-05-07 Changed
max field modifiers on
datatype: date fields now
accept a wider range of date formats.
0.2.55 - 2018-05-06 Changed
DACloudStorage object can now be initialized to use
Configuration directives other than
max field modifiers now work with
slurp() method for
Support for editing HTML and other text file formats in the Static
Files folder of the Playground.
List of branches in pull-down cut off at a certain length.
Live Help had problems with encryption.
Missing help button on
0.2.54 - 2018-05-05 Fixed
0.2.53 - 2018-05-02 Changed
Social logins now populate first and last name in the user profile.
all_variables() function now has an optional keyword argument
special that returns information about an interview that is not
stored in the variables.
long_description in setup.py files.
Update button in
/updatepackage reverted package to
Unicode problem in
0.2.52 - 2018-05-01 Fixed
The setup.py file for
docassemble.webapp did not depend on
particular versions of
0.2.51 - 2018-05-01 Changed
advocate privilege grants access to see user information using
interview_list() function and
/api/interviews API now act
upon interviews of anonymous users.
Questions not centered on screen when navigation bar in use but empty.
Google Places API populating
subpremise and leaving
0.2.50 - 2018-04-28 Changed
Upgraded user interface from Bootstrap 3.3 to Bootstrap 4.0.0.
Headless Chrome now used by default in
show dispatch link Configuration directive.
Exception triggered by importation of word translation files with
indefinite_article() function used “a” for any capitalized
Issue where Chrome extensions interfered with file uploads.
0.2.49 - 2018-04-15 Fixed
Use of deprecated flag when calling
0.2.48 - 2018-04-14 Changed
Address methods no longer require
.city to be defined.
Address object and the
address autocomplete feature now
use more of the possible address components of addresses returned by
the Google APIs.
Bug in code for getting temporary URLs to cloud storage.
0.2.47 - 2018-04-12 Fixed
Problem with quoting glossary terms in HTML.
0.2.46 - 2018-04-11 Fixed
0.2.45 - 2018-04-11 Fixed
Identification of names of ZIP files uploaded through Package Management.
Exception raised by Unicode non-breaking spaces in interview files.
0.2.44 - 2018-03-31 Added
analytics id subdirective of the
google Configuration directive.
show ifs are supported.
Exception caused by mandatory
review blocks without an
0.2.43 - 2018-03-28 Changed
Exception caused by ampersands in docx template field values.
Exception caused by unicode in parameters passed to
Place Autocomplete returning
undefined for some address components.
0.2.42 - 2018-03-25 Added
allow downloading modifier.
right question part.
allow emailing modifier now accepts Python code.
Margins in navigation bar.
0.2.41 - 2018-03-24 Added
delete_variables option for the POST operation of the
Less stringent input sanitation so that Playground files with
parentheses can be deleted.
Labels inside buttons will now wrap.
Escaping of anchor text in
0.2.40 - 2018-03-19 Added
.complete_elements() method of
Removed any dependency on
0.2.39 - 2018-03-15 Changed
review block can now be used with
field instead of
Temporarily removed warning about
Issue with pressing enter causing two screens to submit.
0.2.38 - 2018-03-14 Added
show interviews link configuration directive.
The user profile link in the menu will always be shown if the user
Different formatting of user list.
Author name and e-mail in “Packages” folder of Playground.
show if not recognizing
False value of checkbox
0.2.37 - 2018-03-10 Added
Example for appending a row to a Google Sheet.
scale option for the
include_docx_template() function accepts keyword parameters.
This has the effect of including Jinja2
set commands at the
beginning of the included sub-document.
0.2.36 - 2018-03-08 Added
DALink object type, which allows hyperlinks to be inserted
into .docx files.
showifdef() functions can now be configured to
return a default value other than the empty string.
Cron jobs and environment variables. This requires a system reset.
0.2.35 - 2018-03-06 Changed
Replaced Package Management with the former “Update a Package.”
0.2.34 - 2018-03-06 Added
main page pre,
main page submit, and
main page post
post metadata items.
Pressing enter has effect of pressing Continue, even on pages
without input elements.
0.2.33 - 2018-03-04 Fixed
Problem with using Upgrade button.
0.2.32 - 2018-03-04 Added
ldap login configuration directive. Using this feature will
require a system upgrade (running a new instance), as the
libldap2-dev Debian packages are required
dependencies of the
python-ldap Python module.
0.2.31 - 2018-03-02 Added
use font awesome and
CSS support for Material Icons.
question help button feature.
label the help tab.
Reference to non-existent image file during image preloading.
Error when reviving SMS session for which answers had been deleted.
SMS interface bugs related to signatures and attachments.
0.2.30 - 2018-02-27 Changed
SVG instead of PNG for images in checkboxes and radio buttons.
Page layout when side navigation bar in use.
Slow submit time when many checkboxes are used.
0.2.29 - 2018-02-25 Added
question back button and
navigation back button.
raw global css and
Main content block for page is now centered on desktop.
Problem with calling background action from code triggered by the API.
Problem with including a table while gathering the rows of the table.
0.2.28 - 2018-02-08 Added
enable remember me configuration directive.
repr() of a
DASet is the
its elements, and
repr() triggers the gathering process.
.salutation() method of the
Individual object now uses the
exclude on a manual list of choices.
Lack of curly quote in “I don’t know” buttons.
0.2.27 - 2018-01-31 Added
package protection configuration option.
last_access_time() now returns the last access time as a
datetime object with a time zone; previously the object was “naive”
with respect to time zone.
Problem with branch name of new GitHub repository.
as_datetime() converting times to midnight when the
argument is already a datetime object.
noyeswide checkbox fields.
0.2.26 - 2018-01-29 Fixed
format_date() was acting like
0.2.25 - 2018-01-29 Changed
Tweaks to the
Unicode error on interview page after interview decryption failure.
Problem with list gathering and
0.2.24 - 2018-01-28 Fixed
Problem with missing uid in background tasks.
0.2.23 - 2018-01-28 Added
datatypes for fields.
/api/session/back API and the
/api/user/<user_id>/privileges APIs, and
.as_serializable() method of the
/api/session POST API now returns the current question, unless the
question data value is set to
/api/session POST API now accepts file uploads.
Changed the name “roles” to the name “privileges” in the
set_user_info() function can now be used to change user
datatype: date will now set a variable of type
DADateTime, rather than a plain text variable.
today() now returns a
DADateTime object if it is called
show if and
hide if functionality now
animates the showing and hiding of fields.
0.2.22 - 2018-01-23 Added
allow demo for allowing demonstration
interviews in production mode.
Ability to send e-mail using the Mailgun API instead of SMTP.
decimal places option for automatically formatting floating
point numbers passed to DOCX and PDF forms using
checkin interval configuration directive is set to
browser will not “check in” at all.
/api/session/question API encounters an undefined
variable for which a definition is not available, it will no longer
return an error code, but will return a success code and indicate
what variable was not defined.
Invalid HTML in navigation bar.
Removed unnecessary invalidation of interview cache.
Problem with address autocomplete when variable name contains a bracket.
0.2.21 - 2018-01-19 Added
An API interface.
user_interviews() was reporting the wrong
google maps api key when an
api key alone was set under
google in the Configuration.
Problem with formatting of chat log after going back into a session.
0.2.20 - 2018-01-14 Added
send_fax() function for sending faxes using Twilio.
include_docx_template() function for including .docx content
within a .docx file.
0.2.19 - 2018-01-12 Added
Ability to run
interview_list() on all users. Additional keys
email are included in results.
Integrated the Place Autocomplete feature from the Google Places API.
Bug in YAML parser triggered sometimes by fields with blank labels.
Newline to space error in docx templates that affected Word but not LibreOffice.
0.2.18 - 2018-01-06 Added
Typo in HTML when
camera and other HTML5 upload datatypes were used.
0.2.17 - 2018-01-04 Changed
Better features in background actions for handling exceptions.
0.2.16 - 2018-01-01 Fixed
Problems with cron jobs, including an error in the documentation;
the variable is not
0.2.15 - 2018-01-01 Changed
Calculation Order of the template file will be reproduced in the
resulting PDF file.
Calculation Order of the first file will be reproduced in the
resulting PDF file.
Problem with using specific person as sender of an e-mail.
0.2.14 - 2017-12-27 Added
Customizable 404 error message.
all_true() methods for the
Typo in password complexity error message.
0.2.13 - 2017-12-24 Added
Ability to change the
password complexity requirements in the
Ability to control whether registering users must retype their
0.2.12 - 2017-12-24 Fixed
for attributes of
<label> elements were mislabeled when a
show if defined the same variable.
0.2.11 - 2017-12-18 Fixed
Problem with validating fields inside
0.2.10 - 2017-12-15 Fixed
Problem recognizing string indices in code.
0.2.9 - 2017-12-15 Fixed
Problem with dictionaries inside of dictionaries.
Some of the administrative page customizations did not work.
0.2.8 - 2017-12-14 Fixed
Inserting images into PDFs using
0.2.7 - 2017-12-13 Added
into administrative pages.
0.2.6 - 2017-12-12 Fixed
GitHub pagination problem with
0.2.5 - 2017-12-12 Changed
global css and
Curly quote conversion is re-enabled.
Password protection on generated PDF files.
variable names containing generic object or
iterator references can now be used with
Error when uploading Zip file to Playground packages folder.
Problem setting boolean character of yesno variables that are
specified using brackets.
Problem with referring to
get_url_from_file_reference() outside of
0.2.4 - 2017-12-06 Changed
Automatically remove newlines from e-mail subject lines
PDF thumbnails now have the filename as the “title.”
Background tasks no longer try to process responses if exception
Ability to set
exit link and
exit label in metadata and
Error when pulling “master” branches of GitHub packages into the
Flash message showing when interview YAML file changes and “allow
login” is False.
0.2.3 - 2017-12-04 Changed
Turned off automatic curly quote conversion until Unicode error
in textstat can be fixed.
0.2.2 - 2017-12-04 Added
Pulling and pushing using GitHub branches.
.failed() method on result of background task.
0.2.1 - 2017-11-30 Changed
The hard-coded limit on JSON nesting depth, which was mentioned
in the 0.2.0 changes, has been changed from 6 to 20.
Apache could not start unless Docker container started with a
GitHub push using GitHub integration failed because of an SSH
0.2.0 - 2017-11-29 Added
logo option of
variables_as_json() functions now
contain a limitation on nesting depth. The limit is hard-coded at
6 levels, after which values will be “null.” This is to prevent
exceptions being triggered by circular references.
Setting Google Drive Synchronization folder to “Do not link” will
now erase the connection between the OAuth app and the user.
When populating PDF checkboxes, passing
None to the checkbox or to
noyes() functions will result in the box not
Apache web server variables are now reset after a restart (e.g.,
after the Configuration is changed.
When pulling the contents of a
docassemble extension package
into the Playground, it will now remember the GitHub URL or PyPI
package name so that when you go to Pull again, you will not need to
retype. This works even if you have not enabled GitHub integration. Fixed
PDF checkbox inconsistencies.
Git pull into Playground packages without integration generated an
When datatype is object and variable existed, it would try to reduce
the object to text in order to see if it should be highlighted as a
pre-selected default value.
0.1.99 - 2017-11-23 Added
Option for changing the UID and GID of www-data within the Docker
container, so that
/usr/share/docassemble/files can be mounted as
a Docker volume and the Playground files can be edited.
Multiple choice questions in
fields will set boolean
False if those are the only options.
Additional headers are set to enable cross-site resource sharing
if the CROSSSITEDOMAIN variable is set.
Apache configuration files in Docker are configured differently;
existing site configuration files will not be overwritten and
configuration options are now implemented as Apache variables.
DAList objects now work with the
+ operator; a regular list can
be added to a
DAList but not the other way around.
uncheck others feature triggered an error if it was not the
0.1.98 - 2017-11-20 Changed
Going to “/exit” will now log out the user, if the user is logged
&json=1 for JSON responses, the
logout, which works like
exit but also logs the user out.
Default values in object choices.
0.1.97 - 2017-11-14 Fixed
Problem with Playground interviews not being decrypted.
0.1.96 - 2017-11-12 Fixed
JSON conversion problem when using
0.1.95 - 2017-11-12 Fixed
Bug in 0.1.94 regarding detection of variable names.
0.1.94 - 2017-11-12 Fixed
Improved detection of variable names in code.
0.1.93 - 2017-11-10 Changed
Individual class no longer initializes the
expense attributes, but there are
objects blocks in
basic-questions.yml that will initialize these attributes.
Organization class no longer initializes the
offices is provided as a keyword parameter
during object construction.
Interview tags system and the
0.1.92 - 2017-11-09 Added
checkbox export value option when using
pdf template file.
The Markdown to HTML converter now uses the Attribute Lists extension.
server_capabilities() function now has a
When the server is not in
debug mode, users must be logged in as
with administrator or developer privileges to run interviews in
docassemble.demo. In the SMS interface,
interviews in these packages are always inoperable unless the server
server_capabilities() was not recognizing the
0.1.91 - 2017-11-07 Changed
Exceptions triggered during code block execution will now show the
line, not just indicate the line number.
server_capabilities() function is now imported by default and
it reports additional features.
interview_list() function now returns interview metadata.
cross site domain configuration directive and
CROSSSITEDOMAIN environment variable, for enabling APIs to be
Azure blob storage fixes.
0.1.90 - 2017-11-05 Changed
New features in the
session list interview and
dispatch interview configuration
0.1.89 - 2017-11-04 Added
Ability to use
Thread unsafe language setting.
0.1.88 - 2017-11-02 Fixed
object_name() raised an exception.
Including MP4 videos did not work when OGG not provided.
0.1.87 - 2017-11-02 Fixed
docx template file combined with
code resulted in error
due to recent change that attempted to provide better error
0.1.86 - 2017-11-01 Added
button icon size,
button icon units, and
button size configuration options.
Clicking the back button when looking at question help will return
the user to the question.
Width of images in .docx files.
0.1.85 - 2017-10-29 Added
google maps api key in the
google section of the
A Google API key is now required for using
0.1.84 - 2017-10-29 Fixed
UI issues when switching between help and questions tabs.
pop() method to
Machine learning errors when entries are blank.
0.1.83 - 2017-10-26 Added
fields option for
check in events can use the
background_response() to communicate results to the browser.
0.1.82 - 2017-10-26 Added
pdf_concatenate() function converts word processing files.
complete_attribute, list gathering will not
first seek a textual representation of the object.
Inclusion of images in RTF when a width not specified.
undefine() no longer raise exceptions
when passed constants or internal Python names.
Errors in list gathering.
0.1.81 - 2017-10-25 Changed
Google Drive synchronization is now handled as a background task so
that it will not be interrupted by a web browser timeout.
Uploads embedded in docx template files.
0.1.80 - 2017-10-23 Added
Interview title functionality in the
metadata initial block.
Image URLs to PDF page images with S3/Azure Blob Storage.
0.1.79 - 2017-10-23 Fixed
PDF page retrieval index error.
File permissions issue in S3 that prevents server restart. S3 users
must upgrade the Docker image.
Incorrect timestamps when downloading from persistent cloud storage.
0.1.78 - 2017-10-22 Changed
When using S3 or Azure Blob Storage, the files will now be cached
on the server file system and updated when they change.
When using the Playground and S3 or Azure Blob Storage is in use,
and there are more than ten decorations, no preview images will be
shown in “Variables, etc.”
The values of
SavedFile objects will be cached in memory for the
duration of a web request, so that when you create a new
SavedFile, attributes will be set from memory.
The first argument to a
MachineLearner object will no longer be
used as a literal
group_id. Rather, an argument
'fruit' it will
be converted into a group_id of the form
You can still set a literal
group_id using the keyword parameter
initial_file is given to a
MachineLearner object, two
different formats can be used: an array, or a dictionary of arrays.
If a dictionary of arrays, the keys will be checked and if the key
group_id (with the part before the final
colon, if any, removed), the array corresponding to that key will be
Playground wizard not including pdf and docx template files in package.
Playground wizard not including static files in package.
Playground wizard pickle error when using S3 or Azure blob storage.
Bug where key ‘sought’ not found.
0.1.77 - 2017-10-20 Added
Missing dependencies for
0.1.76 - 2017-10-20 Added
RandomForestMachineLearner for machine learning with numeric and
code to specify fields in docx template.
0.1.75 - 2017-10-18 Added
inline width field modifier for embedded fields.
get_data() methods for
DAFile initialize function now handles keyword arguments as
0.1.74 - 2017-10-15 Added
Validation errors for embedded fill-in-the-blanks elements now
appear under the fields.
Embedded radio buttons and checkboxes now use standard HTML
Embedded currency fields use standard text to represent the currency
0.1.73 - 2017-10-15 Changed
Referring to a non-existent DAList item after the list has been
gathered will now generate an exception.
Brought back gradients on buttons, which had been removed in 0.1.72.
0.1.72 - 2017-10-14 Added
bootstrap theme and
inverse navbar features and configuration
specified package now use the package of the features block.
Logout now deletes cookies.
0.1.71 - 2017-10-11 Changed
currency() now returns
'' on non-numeric input.
AWS secret access codes with slashes.
Recognition of iterators with constant integers.
0.1.70 - 2017-10-10 Added
Lettuce tests in directory
Playground variable detection now shows attributes.
Playground variable detection now adjusts for temporary Mako variables.
split() function now splits on newlines.
Playground no longer loads each example interview into memory.
Template file Google Drive deletion.
Problem with pickling result of
Scanning for variable names involving patterns like
0.1.69 - 2017-10-05 Added
.using() for adding parameters to object definitions.
Backups only kept now for 14 days. Container upgrade necessary.
Use of iterators and generic objects in
Azure cron backup. Container upgrade necessary.
0.1.68 - 2017-10-05 Added
Interview cache invalidation now handled through thread local
variables and a redis counter, rather than by modification times on
YAML files. This may avoid potential problems with Google Drive
Google Drive sync now has a page that tells the user not to stop the
Error on URL redirection.
Playground package page asking for GitHub sign-in after expiration
History on error page restored.
0.1.67 - 2017-10-02 Added
Warnings in the Playground when use of a particular file name would
overwrite an existing file.
Fields in a PDF fill-in form can be specified as a list of dictionaries.
maximum image size in effect, files that got converted to PNG
by the browser still had original file extensions.
Typo introduced in 0.1.65 affecting the processing of lists of
choices in multiple-choice questions.
0.1.66 - 2017-10-01 Fixed
Problem with empty upload fields.
0.1.65 - 2017-09-30 Changed
More consistent behavior in multiple choice listings.
When a multiple choice question’s choices are determined by code,
the image can be an uploaded file.
scan for variables modifier.
has_been_gathered() method on groups.
More expansive error messages in debug mode.
Errors if variable names in
question blocks are invalid.
Layout problem when sections and progress meter both turned on.
0.1.64 - 2017-09-26 Fixed
Gathering of Asset items.
0.1.63 - 2017-09-26 Added
Example of editing a list after it has been gathered.
Embedded fields where the variable names contain iterators.
Lists instanceNames adjusting after removal of a list element.
0.1.62 - 2017-09-24 Changed
Fields can now be embedded in
Multiple choice type
datatype: combobox for
Mandatory multiple-choices questions with embedded code blocks.
DADict objects in choices lists.
0.1.61 - 2017-09-23 Changed
After back button is pressed, defaults will be populated on fields
that accept defaults.
DAFileCollection so that it can be used like a
Checkbox defaults specified as
DADict objects not recognized.
0.1.60 - 2017-09-21 Changed
Added a new type of infinite loop detection.
0.1.59 - 2017-09-21 Changed
Added a different type of infinite loop detection.
0.1.58 - 2017-09-19 Added
Multiple choice type
Code example for
YouTube video widths not responsive.
0.1.57 - 2017-09-19 Fixed
Bug that affected some file-related operations.
Detection of infinite loops.
0.1.56 - 2017-09-17 Changed
The way that the
objects block gets executed has changed. It no
longer executes as a mandatory block unless it is marked as
In addition, the way that questions are asked has changed
accordingly. If any fields that would be set by the question have
docassemble will try to ensure that the underlying
variable is already defined, which may trigger a process of defining
the variable. This will ensure that objects mentioned in object
blocks will be created before they are necessary. These new changes enable the use of iterator variables like
Problem with deletion of keys on S3.
Problem with response() on second and subsequent screens.
0.1.55 - 2017-09-16 Added
precedence modifiers and the
order initial block.
The JSON interface.
0.1.54 - 2017-09-16 Fixed
Upgraded from boto to boto3.
Fixed issues with documents and cloud storage.
0.1.53 - 2017-09-15 Fixed
Problem with docassemble.base as a dependency in extension packages.
0.1.52 - 2017-09-15 Fixed
Problem with assembled documents on cloud storage.
0.1.51 - 2017-09-14 Added
JSON version of information on each screen.
Problem with signatures in pdf fill documents.
0.1.50 - 2017-09-10 Added
maximum image size to reduce size of uploaded images
in the browser before uploading.
cache documents for disabling document caching.
E-mailing of assembled documents.
0.1.49 - 2017-09-07 Added
Additional document caching feature.
Problem with caching of certain document types.
0.1.48 - 2017-09-06 Added
go full screen that limits behavior to mobile only.
Caching of assembled documents. Clicking on assembled documents
will now open them in a new browser tab rather than offering them
as attachment downloads.
In Google Drive synchronization, .tmp and .gdoc files are now
Spinner did not appear on signature pages.
Date validation forcing input even when date not required.
Images included in terms not appearing unless fully qualified.
0.1.47 - 2017-09-04 Added
referring_url() for accessing the original “referer” URL.
go full screen for breaking out of iframes.
Support in Docker for MySQL connections.
Error accessing machine learning training area.
Undefined mimetype error with e-mail receiving feature.
“Next will be” message in SMS interface skipped
0.1.46 - 2017-09-02 Added
Multiple choice questions where list of selections is empty.
SMS interface for multiple choice questions where list of
selections is empty.
0.1.45 - 2017-08-31 Added
password login, which will hide the
username and password fields on the login screen.
Better error messages when packages fail to install.
Better error messages in
worker.log when background processes
do not complete.
0.1.44 - 2017-08-30 Changed
object_checkboxes will now create the variable if it does not
Control mode submitting clicks twice in some circumstances.
Voice call forwarding.
Duplicate checkbox validation error message.
send_email() did not e-mail .docx files when given
Inconsistency in handling of nested questions.
0.1.43 - 2017-08-27 Fixed
Extraneous call to checkin for chat log.
Clicking elements in control mode in live chat.
Problems with db table prefixes.
Adjusted to changes in flask-user.
Downgraded to Debian jessie because there was a problem with corrupt
0.1.42 - 2017-08-24 Added
set_attributes() method for
DAFileList in order to
allow uploaded files to be used across interview sessions and not be
deleted when the session in which the file was uploaded is deleted.
url_for() method for
Hyperlinks to actions (e.g., created through
action_menu_item()) are now carried out through Ajax.
Compatibility of UI elements with ‘control’ live help feature.
Extraneous “Menu” entry in mobile menu when custom menu used.
0.1.41 - 2017-08-23 Added
require referer that allows users who use
referer blockers to use
.show() method for
DATemplate objects, for interchangability
with images in
valid types was set to
docx template file
was in use.
Typo in HTML of monitor page.
Auto-updating of version numbers in package listing.
Updating of package table so that core packages are retrieved from
pip, not GitHub.
0.1.40 - 2017-08-23 Changed
Upgraded from Debian jessie to Debian stretch
Ability to specify filenames in
attachment blocks using
Error when GIFs inserted into RTF file.
0.1.39 - 2017-08-20 Added
Page where administrator can add users manually without going
through invitation process.
Non-ASCII characters in PDF field defaults no longer stripped out
when scanning through utilities.
0.1.38 - 2017-08-16 Fixed
Bug in Alembic upgrade process
0.1.37 - 2017-08-16 Changed
datatype: checkboxes now have a “None of the above”
option by default, and input validation ensures that something is
none of the above field modifer configures it.
After registration, users will bypass the “Interviews” screen and
go right back to their interview, if they have started an interview.
uncheck others when
noyeswide. Enables a yes/no
field to act as a “None of the above” option.
“Upgrade docassemble” button on the “Update a package” page.
Automatic login after registration was not working, so users had to
enter username and password information twice.
Improved CSS for when name of interview on mobile is too long to fit
in navigation bar.
Non-ASCII characters in PDF fields when scanning through utilities
no longer cause an error.
Fixed problem introduced in 0.1.22 where interview data would be
destroyed when switching back to an interview during the same session.
0.1.36 - 2017-08-13 Fixed
Small typo that made 0.1.35 unusable.
0.1.35 - 2017-08-13 Added
Support for help text next to choices in a multiple choice list.
Database upgrades now handled by alembic by default. See the ‘use
alembic’ configuration directive.
Extension packages no longer depend on the docassemble.base or
docassemble.webapp packages. As a result, installation of an
extension package will no longer trigger a total software update.
If you want to upgrade docassemble, upgrade docassemble.webapp.
Note that packages created in earlier versions will still have these
dependencies until they are regenerated in the Playground. You can
install_requires in the setup.py file.
Bug fixes to SMS interface.
0.1.34 - 2017-08-10 Fixed
DADicts a few weeks ago but the auto-gathering
system on them was not turned off; it is turned off now.
0.1.33 - 2017-08-09 Fixed
Backwards compatibility for interviews started before
nav added as
a variable in the user dictionary.
Extension packages now depend on
docassemble.webapp so that when a
package is updated, all of docassemble is updated, not just
0.1.32 - 2017-08-08 Changed
force_ask() can ask a series of questions.
Configuration directives for customization of start page and
0.1.31 - 2017-08-07 Changed
Review page buttons now Ajax.
Screen reverts to review page after field edit.
Problem with PDF/A due to old version of pdfx.
0.1.30 - 2017-08-07 Added
Navigation bar option.
Problem with files when user logged in.
0.1.29 - 2017-08-03 Added
Input validation with Python code.
0.1.28 - 2017-08-01 Fixed
DADict object now defines ask_object_type by default
using combined with
0.1.27 - 2017-07-31 Added
mlarea data types and training system.
Better error message in Playground when interview has a syntax error.
Problem with temporary files introduced in 0.1.23 that was causing
PDF fill-in to fail.
0.1.26 - 2017-07-25 Fixed
0.1.25 - 2017-07-24 Changed
0.1.24 - 2017-07-24 Fixed
0.1.23 - 2017-07-23 Changed
Additional deletion of temporary files through cron job.
Improved performance by optimizing markdown and regex.
Newer version of labelauty, with modifications to include benefits
of older version, for compatibility with IE/Edge.
0.1.22 - 2017-07-22 Added
new_object_type option for groups.
The default for the
debug configuration directive is now
disable others field modifier can now be used on a field with
the same variable name as that of another field on the same page.
Term definition Markdown is now converted to HTML.
Fixed bug with code blocks using iterators.
Fixed problem with document attachments affecting data storage and
multiple application servers.
Playground run now resets page counter.
0.1.21 - 2017-07-14 Changed
Checkboxes now create
DADict objects rather than
all_false() methods for DADict.
Fixed bug when user invitation e-mail fails to send.
Error message when code and question blocks are combined.
0.1.20 - 2017-07-10 Fixed
Fixed another bug in edit user profile page.
0.1.19 - 2017-07-10 Fixed
Fixed bug in edit user profile page.
0.1.18 - 2017-06-28 Added
Pull package into Playground with PyPI.
initial directive now accepts code, just like
Error page now returns 404 instead of 501 when user tries to access
an interview file that does not exist.
Added MANIFEST.in so that README.md is included when packages are
bundled using setup.py.
Uploading files to Playground now checks to make sure the file is
YAML and is readable.
0.1.17 - 2017-06-24 Changed
Updated the required system version to 0.1.17.
If you updated the Python packages to 0.1.15 or 1.1.16 without
updating the system, you may have experienced an error. Now, if
changes to the Python packages alter the necessary PostgreSQL
columns or tables, those columns and tables will be changed upon
reboot after the updating of the Python packages, and will not have
to wait until an upgrade of the system.
Fixed reference in Dockerfile to non-existent file.
0.1.16 - 2017-06-24 Added
Changed PyPI username and passwords from a configuration setting to
a user setting.
More stable transition when transitioning server from non-cloud data
storate to cloud data storage
month_of() now uses defined language/locale rather than system
Executables that run as root no longer writable by www-data.
Turned off auto-start on sync supervisor process.
0.1.15 - 2017-06-18 Added
SMS option for two-factor authentication.
Option for requiring confirmation of user e-mail addresses.
Problem with apt-get update at start of Dockerfile.
0.1.14 - 2017-06-17 Changed
Renamed configuration directives from “second factor” to “two factor.”
0.1.13 - 2017-06-17 Added
0.1.12 - 2017-06-06 Changed
To facilitate GitHub workflow, attempted to preserve timestamps on
filenames in Zip files.
0.1.11 - 2017-06-04 Changed
Increased font size for better mobile experience.
0.1.10 - 2017-06-03 Changed
Look and feel of signature pages now match regular interface on
0.1.9 - 2017-06-02 Fixed
Various bugs from previous version.
0.1.8 - 2017-06-01 Fixed
Bug with Google Drive integration.
0.1.7 - 2017-06-01 Fixed
Bug with server-side encryption.
0.1.6 - 2017-05-30 Added
Google Drive integration.
0.1.5 - 2017-05-28 Fixed
Bug with logins in the middle of interviews.
0.1.4 - 2017-05-27 Changed
New algorithm for generic variables and index variables.
[Unreleased] - 2017-05-26
PDF fill-in files now editable.
Started using bumpversion.
Started a changelog.