Change Log

1.4.103 - 2024-04-29

Added

  • Interface in the Word sidebar for changing the Playground project.
  • Additional language functions accessible through methods on standard classes.
  • attachment object of the result of current_context() containing information about the attachment currently being assembled.

Changed

  • Changes to HTML for accessibility purposes.

Fixed

  • PostgreSQL error in multiserver configuration when two servers try to delete a package at the same time.
  • The ask_object feature did not work when new_object_type was used with .using().

1.4.102 - 2024-03-18

Fixed

  • Bug with ip address ban enabled.

1.4.101 - 2024-03-15

Added

  • The noun_is_singular keyword parameter to the noun_plural() function.

Changed

  • The date_difference() function’s describe() method will now describe times.
  • In error messages from YAML parsing, fall back to displaying YAML with repr() if displaying the YAML as YAML fails.

Fixed

  • Bug with ip address ban enabled.
  • Bug with displaying interview logic history.

1.4.100 - 2024-03-07

Fixed

  • Problems with comboboxes and disable others.
  • Problem with TIFF to PDF conversion not using compression.
  • Problem with show if when comparing a variable to the empty string.
  • An empty js show if caused the field not to be shown, instead of being ignored.

1.4.99 - 2024-03-02

Changed

  • DAWeb no longer requires the data parameter to be a dictionary; it will pass the data parameter directly to requests.
  • Upgraded redis, celery, aiohttp, and Pillow.

1.4.98 - 2024-02-29

Fixed

  • Issue with one of the fixes in 1.4.97.

1.4.97 - 2024-02-29

Added

  • The pdftk option under attachment and features for filling in pdf template file attachments using pdftk instead of pikepdf.

Changed

  • During the Docker image build process, pandoc will run once, so that the first user to assemble a document with pandoc will not experience slowness due to LaTeX needing to generate files.
  • Appearance streams will be generated when using pdf template file.
  • Error messages related to problems in the source code will no longer be displayed to the user unless the user is an administrator or developer. If you want these error messages to appear to all users, set debug: True and development site is protected: True in the Configuration. The error messages will be available in docassemble.log.

Fixed

  • Fixed security issue identified by Riyush Ghimire, affecting versions 1.4.53 to 1.4.96, that could cause contents of files in the filesystem to be revealed. This is a high severity issue and upgrading as soon as possible is recommended.
  • Fixed security issue identified by Riyush Ghimire, affecting versions up to 1.4.96, that allowed an open redirect URL to be formed.
  • Fixed security issue identified by Riyush Ghimire, affecting versions up to 1.4.96, that would allow HTML or JavaScript injection.

1.4.96 - 2024-02-14

Fixed

  • Issue with installation of SSL certificates stored on S3.

1.4.95 - 2024-02-04

Fixed

  • The small screen navigation option under features could not be overridden to True.
  • The nice_number() function sometimes did not properly detect whether a number was an integer.

1.4.94 - 2024-01-23

Added

  • The raw html special field type under fields and review. This is similar to html but allows modification of the structure of the HTML in the list as a whole.

1.4.93 - 2024-01-20

Added

  • The current_context() function, which is the new function to use in place of user_info() for attributes that are not related to the logged in user. The object returned by current_context() also has a new attribute, inside_of, which can be used to detect whether the Python code that is currently executing is executing inside of a particular type of document assembly process.

Changed

  • The user_info() function had previously provided much of the information that the current_context() function now provides. However, the name user_info() was not suitable for that information. A deprecation warning will be logged if code accesses the attributes of user_info() that do not relate to the logged-in user. In a future version, accessing these attributes will raise an exception.
  • The behavior of the object returned from user_info() is different, which might be a breaking change if you used user_info() in a certain way. Previously, user_info() returned an object with static attributes. Now, the attributes of the object returned by user_info() are dynamic attributes (using the @property decorator). If you set u = user_info() and u becomes a variable in the interview answers, u.id will always return the user id of the current logged-in user, not necessarily the user who was logged in when u was defined.
  • The new function current_context() works the same way. If you set c = current_context() then c.current_section will be the current section at the time the attribute was accessed, not the time that c was defined.
  • Another difference in the way that user_info() operates is that if the user is not logged in, the attributes other than first_name and last_name will exist, but will be None. Previously, those attributes did not exist, and accessing them would raise an AttributeError. If you want to test whether the user is logged in, use user_logged_in().

Fixed

  • A non-required boolean field value that was not filled out was set to False instead of None as the documentation specified. The default value is now None.
  • The words directive was unable to load translations from Playground packages.

1.4.92 - 2024-01-17

Fixed

  • The reconsider and need modifiers were not active on all mandatory blocks.
  • The depends on and on change features did not work on all code blocks executed during process_action().
  • Playground raised exception if playground examples is an empty list.

1.4.91 - 2024-01-07

Changed

  • Improved error messages when Python code contains errors.

Fixed

  • Error when YAML parsing did not succeed.

1.4.90 - 2024-01-05

Fixed

  • Error when YAML parsing did not succeed.

1.4.89 - 2023-12-23

Added

  • The invite_user() function.

Changed

  • Upgraded dependencies.
  • The /api/user/<user_id> PATCH endpoint now allows changing whether the user is active.
  • Changed the background color of the signature canvas to grey when dark mode is in effect.

1.4.88 - 2023-12-03

Changed

  • When min or max is used with a datatype: date or datatype: datetime, the minimum and/or maximum are now indicated in the HTML so that browser widgets know what they are.
  • When the browser uses dark mode, the red asterisk is less bright.
  • When grid is used, items are aligned to the bottom of the row.

Fixed

  • Bug in /api/playground_install.
  • Fixed formatting in grid mode when label is empty.
  • When browsing other users’ playgrounds, the Download and GitHub buttons in the Packages folder did not work as intended.

1.4.87 - 2023-11-28

Changed

  • Set a specific maximum number of open file descriptors (1048576) to avoid problems with ulimit -n being too high on some kernels (system update required).

1.4.86 - 2023-11-26

Added

  • The disabled field modifier for showing a field on the screen that is always disabled.
  • The under text field modifier for showing help text under a form field in a smaller font.
  • The item grid field modifier, which is similar to the grid modifier, but affects whether the choices in a list of radio buttons or checkboxes wrap.
  • The developer can install Configuration directive.
  • The debug startup process Configuration directive for logging the timing of the different parts of the uwsgi loading process.
  • The current_section attribute of the output of user_info().
  • The owner password option under attachment for protecting a PDF file with an owner password.
  • Support for login using Zitadel.

Changed

  • The CSS for <code> elements no longer collapses spaces.

Fixed

  • The UI of fields with datatype: range were not shown as disabled even if the underlying <input> was disabled.
  • Sync and Run did not work correctly in some browsers because of a JavaScript timing issue.
  • Module files in zipped packages were not detected unless a root directory was used.

1.4.85 - 2023-11-02

Added

  • The run oauthlib on http Configuration directive. You may need to set this to True if you use the oauthlib library on a server that uses http:// instead of https://.

Fixed

  • If integration with GitHub goes wrong, the user could continue to see errors after correcting the configuration.

1.4.84 - 2023-10-26

Fixed

  • An incorrect instanceName was used when a variable name in an objects, objects from file or data block contained an iterator variable.

1.4.83 - 2023-10-25

Added

  • The default rendering font Configuration directive. This allows you to specify a system-wide font that should be used for rendering form fields when using an attachment with pdf template file and editable: False.

Changed

  • The feature from 1.4.79, described below as “pdftk will render form fields to text using the msttcorefonts version of Arial, which has better support for Unicode characters,” has been removed because with this font, pdftk rendered text too small when the font size in the field was “Auto.” To reenable this feature, specify a default rendering font in your Configuration, or specify a rendering font with each attachment.

Fixed

  • Error when non-str values are used as datatype: checkboxes values.
  • The css class of a question persisted after the Continue button was pressed.

1.4.82 - 2023-10-15

Changed

  • Selected dependencies upgraded.
  • Users whose accounts are made inactive will be immediately logged out.
  • When a relative file reference is given to bootstrap theme in features, the reference will be resolved using the package in which the immediate YAML file is located, rather than the package of the main interview file.
  • The docassemble.webapp package now depends on certbot, certbot-apache, certbot-nginx, and acme, even though it does not use these packages. This is because upgrades to docassemble.webapp may upgrade dependencies of certbot and cause certbot to fail.

Fixed

  • The web server that responds while docassemble is starting up no longer returns 404 errors (system upgrade required).
  • Incorrect input validation of email field when editing profile of a user who uses the phone-based login method.

1.4.81 - 2023-10-03

Fixed

  • Test for appropriate system version before using a rendering font.

Changed

  • Added clipboard button next to API key.
  • Avoid exceptions when invalid values are passed to ordinal() and ordinal_number().

1.4.80 - 2023-10-01

Changed

  • Added error message if more than one of show if, hide if, disable if, or enable if is used on the same field. The only situation in which these can be combined on a single field is if one is using the code form and the other is not.

Fixed

  • Inefficient JavaScript for handling nested show if field modifiers.
  • The input validation error message for entering a non-number did not appear if the validation failed on the regular expression pattern.

1.4.79 - 2023-09-18

Added

  • The rendering font option to attachment.

Changed

  • pdftk will render form fields to text using the msttcorefonts version of Arial, which has better support for Unicode characters.
  • Updated the collection of Material Icons.

Fixed

  • Exception raised in certain circumstances when using depends on.
  • When hide corner interface was used, on small screens the toggler still showed.

1.4.78 - 2023-09-16

Added

  • The pen color modifier for the signature block.
  • The file css class field modifier for datatype: file and datatype: files fields. This can be set to None to disable the Bootstrap File Input plugin for the file upload input element.

Fixed

  • Errors with the Apache web server option (system upgrade required).
  • Error with js show if when used in conjunction with grid.

1.4.77 - 2023-09-10

Added

  • The hide continue button and disable continue button modifiers for question.
  • The offset option for the grid field modifier for inserting horizontal space before a field.

Fixed

  • Error when calling .privilege_access() on a DAFile.
  • Error when using social logins.

1.4.76 - 2023-09-09

Added

  • The grid field modifier for displaying fields side-by-side in a responsive flexbox.
  • The tabular modifier for the review block, which will cause the items to be displayed in an HTML <table>.
  • The abbreviate optional keyword parameter of the states_list() function.

Changed

  • Altered the CSS of radio, yesno, yesnowide, and checkboxes labels so that the text will not wrap under the bullet.
  • Configuration will not save if there are duplicate keys in the YAML.

Fixed

  • Avoided KeyError when combining terms and autoterms.

1.4.75 - 2023-09-05

  • No changes, version advanced by accident.

1.4.74 - 2023-09-05

Fixed

  • Bug with datatype: object.

1.4.73 - 2023-09-04

Added

  • The gotenberg url Configuration directive, which allows for the use of an external Gotenberg server for DOCX to PDF conversion.
  • The Docker environment variable SUPERVISORLOGLEVEL, which can be set to debug so that application log messages can be viewed with docker logs (system upgrade required).

Changed

  • Additional fonts are installed in the operating system to support a greater variety of languages (system upgrade required).
  • Upgraded pdftk and Pandoc (system upgrade required).
  • Disabled autocomplete on login and register pages.
  • The DAFileList is now initialized with the complete_attribute set to initialized and the object_type of DAFile.

Fixed

  • Issue with JSON representation of the question when fields were generated by code.
  • When using Keycloak, logging out resulted in an error message due to a change in the Keycloak code.

1.4.72 - 2023-08-23

Changed

  • The pseudo-fields favorite_fruit[nota] and favorite_fruit[aota] referring to the “None of the above” and “All of the above” checkboxes in a datatype: checkboxes field can now be used in a boolean show if.

1.4.71 - 2023-08-22

Changed

  • The val(), getField(), and setField() JavaScript functions can references pseudo-fields favorite_fruit[nota] and favorite_fruit[aota] to refer to the “None of the above” and “All of the above” checkboxes in a datatype: checkboxes field.

Fixed

  • Bug introduced in 1.4.70 relating to GitHub URLs.

1.4.70 - 2023-08-20

Changed

  • When installing a package with a GitHub URL, the #egg=mypackagename feature of GitHub URLs is now respected, and the name of the package will be extracted from #egg instead of from the GitHub repository name.
  • Grouped the initialize, postgres, and redis Supervisor processes into a group called main so that they shut down simultaneously rather than sequentially.

Fixed

  • The js show if feature did not work correctly when an expression reference two different fields.
  • The auto terms and terms features interfered with each other when the same term was referenced in each.
  • Bug in locale-setting code.
  • The system for forcing the admin user to change their password when the password is password introduced unnecessary delay on page loads.
  • The “Please wait while docassemble starts . . .” page would refresh into an error rather than refresh into the default interview under some conditions.

1.4.69 - 2023-08-15

Fixed

  • The val() JavaScript function erroneously returned encoded values for datatype: object and datatype: object_radio fields. The function has been modified so that it returns the instanceName of the selected object.
  • The combobox HTML did not set an aria-label.
  • Markdown-to-HTML conversion in popover help text was not full-featured.

1.4.68 - 2023-08-10

Changed

  • The ldap login feature now supports TLS and anonymous binding.

Fixed

  • Error with exporting tables to Excel, caused by the upgrade of the Pandas dependency.
  • The way that locale-related functions actually worked did not match the way they were documented; they have been fixed so that they match the way they are documented. The update_locale() function is also now imported by default.
  • Bug with handling of non-required object fields that are not answered.

1.4.67 - 2023-07-28

Changed

  • Upgraded webdriver_manager.
  • The .delete() method of DAGlobal will now exit silently if called on a DAGlobal object that has already been deleted.

1.4.66 - 2023-07-24

Changed

  • Upgraded dependencies. Packages that might require code changes include selenium (now at version 4) and matplotlib (see the “Generating a graph and inserting it into a document” recipe). Due to incompatibilities with the latest version of markdown, the mdx_smartypants extension is no longer being used. Instead the standard smarty extension is used. There are some differences between the two extensions, such as the transformation of ellipses.

Fixed

  • Adapted code so no error will be raised if docassemble tries to create a directory where one already exists. A race condition of some sort seemed to be causing such errors for some users.

1.4.65 - 2023-07-13

Fixed

  • The navigation: horizontal feature was not functional.

1.4.64 - 2023-07-11

Fixed

  • Issue with the NameError exception change in 1.4.63.

1.4.63 - 2023-07-02

Changed

  • If a NameError exception arises out of code in a module file, docassemble will raise an exception instead of treating the exception as a reference to an undefined variable.

Fixed

  • Issue with using default admin account to set a default API key if an external Redis server is not being used (requires system upgrade).

1.4.62 - 2023-06-21

Fixed

  • Issue with administrative interviews not appearing in the menu.
  • Issue with unchecked checkbox fields subject to a show if not being located for purposes of placing an error message.
  • Issue with failing to process false values of object_checkboxes.

1.4.61 - 2023-06-18

Fixed

  • Issues with the timing of change event triggers on the combobox.

1.4.60 - 2023-06-17

Fixed

  • Bug with datatype: raw.

1.4.59 - 2023-06-12

Fixed

  • Adapted the fix made in 1.4.58 to work correctly with objects with random instance names.

1.4.58 - 2023-06-10

Added

  • The optional keyword argument evaluate of force_ask().

Changed

  • The CSS of signature screens was changed so that the compact mode only takes effect if the screen is small and has a landscape orientation.

Fixed

  • The value() function (which is used by reconsider() and the reconsider modifier) did not raise the correct undefined variable exceptions when the variable name included variable aliases. The code was fixed so that the exceptions raised correspond with the exceptions that would be raised if the expression was evaluated by Python. It is possible that interview logic in existing interviews may rely upon the quirks of the previous version of the code, so it is important (as it always is) to test interviews before deploying this version in production.
  • The JSON representation of a question did not show fields that were generated by code.
  • Error with the rtf to docx file type.
  • The instanceName of a DAFileCollection object generated by an attachment or attachments block was set to the literal variable name without interpolation of variables.

1.4.57 - 2023-06-05

Fixed

  • Modified the change that 1.4.56 made to force_ask() and reconsider() to work better with objects with random instance names.

1.4.56 - 2023-06-04

Added

  • The hide corner interface option under features.

Changed

  • The administrative interviews Configuration directive now accepts items that add custom URLs to the menu.
  • force_ask() or reconsider() will now attempt to act on the intrinsic name of the referenced variable rather than the literal string passed to the function.
  • The functions format_date(), format_datetime(), format_time(), month_of(), year_of(), day_of(), dow_of(), qr_code() are now available as Jinja2 filters.
  • The JavaScript functions var(), getField(), setField(), and getFields() were modified to work better with multiple choice fields. getField() now returns the <fieldset> parent element rather than the first input element. val() will return an array of answers for a checkbox or multiselect. Object-based fields use instance names as values.

Fixed

  • Items under administrative interviews will now appear for users who are not logged in if the permissions allow anonymous users to see the item.
  • When a datatype: checkboxes field has required: False, the “None of the above” selection does not need to be selected.

1.4.55 - 2023-05-21

Fixed

  • Issue with the “Run” button in the variables sidebar in the Playground, introduced by the upgrade of Flask in 1.4.52.

1.4.54 - 2023-05-21

Fixed

  • Updated setup.py to require Python 3.10. Version 1.4.53 has been deleted from PyPI so that users with Python 3.8 cannot upgrade past 1.4.52.

1.4.53 - 2023-05-21

Added

  • The delete keyword parameter to set_session_variables().

Changed

  • Use importlib.resources instead of pkg_resources.

1.4.52 - 2023-05-17

Changed

  • Upgraded Flask.
  • depends on will now invalidate dependencies.

Fixed

  • Allow use of True and False as radio button values in pdf template file document assembly.
  • Allow _use_jinja2 in include_docx_template().

1.4.51 - 2023-05-08

Fixed

  • Bug introduced in 1.4.48.

1.4.50 - 2023-05-08

Fixed

  • Bug introduced in 1.4.48.

1.4.49 - 2023-05-07

Changed

  • A unoconv job will not be submitted while another unoconv job is still running.

1.4.48 - 2023-05-05

Fixed

  • Avoid exceptions based on invalid version names.
  • Issue with Playground variable parser.

1.4.47 - 2023-04-29

Changed

  • Names for keys in the dictionary returned by all_variables(special='title') now correspond with the names used to set the values (with backward compatibility).
  • Preserve capitalization when conjugating verbs.
  • Upgrade reportlab, docxtpl, and pikepdf dependencies.

Fixed

  • Issue with file inputs not enabling and disabling.
  • Bug that caused wrong exception to be raised if DOCX to PDF conversion failed.
  • Replaced description-file with description_file in setup.cfg.
  • Error with /restart_session endpoint when user not logged in.

1.4.46 - 2023-04-19

Changed

  • Added all and any as Jinja2 filters.

Fixed

  • Issue with placement of server-side validation messages when a custom data type has a show if.

1.4.45 - 2023-04-14

Changed

  • Failure to convert DOCX to PDF will raise an Exception.

Fixed

  • JavaScript issue with the “None of the above” checkboxes when choice-specific help is applied to a checkbox choice.

1.4.44 - 2023-04-09

Added

  • The bearer authentication option for DAWeb.
  • The sheets_service() method of DAGoogleAPI.
  • Google Fonts (system upgrade required).

Changed

  • Package versions in the Packages folder of the Playground must be valid Python version numbers.
  • Upgraded cryptography, redis, and pikepdf.
  • Upgraded Pandoc (system upgrade required).

Fixed

  • Issue with rotation of supervisord.log.
  • Accessibility problem with toggler in the sections interface.

1.4.43 - 2023-03-24

Added

  • navigation bar html option for administrative page screen parts.

Fixed

  • Bug introduced in 1.4.42.
  • Issue with /api/resume_url when URL parameters are provided.

1.4.42 - 2023-03-19

Added

  • The revoke() method of the object returned from background_action().

Changed

  • When listing choices in a multiple choice question, you can use show if to conditionally include the choice in the list of choices.

1.4.41 - 2023-03-14

Changed

  • The check in feature now sends two additional action arguments, _changed and _initial. These arguments are not reported by action_arguments() but can be retrieved with action_argument().
  • The defined(), value(), and showifdef() functions now accept a keyword argument prior which can be set to True in order to correctly handle situations where the user has just clicked the Back button and it is necessary to know the value that a variable had prior to the user pressing the Back button. If prior is True, the set of interview answers that was just discarded will be accessed first, and then the current interview answers will be accessed. In situations where the user has not just pressed the Back button, setting prior to True has no effect.
  • The countries_list() and states_list() functions now return alphabetically sorted results. states_list() returns an empty dictionary when the country_code is invalid.
  • When the second argument of background_response() is 'fields', and the first argument is a dictionary of variable names and values, the value of a dropdown field can be set to a dictionary with keys value and choices. The choices will replace the options in the dropdown for that field.

Fixed

  • Upgraded pikepdf and fixed issue with way it is called.

1.4.40 - 2023-03-07

Changed

  • The analytics id subdirective of google can refer to a list of IDs, all of which will be configured.

Fixed

  • The state_name() function did not work with countries that lack “state” abbreviations.
  • Cursor was not pointer over combobox drop-down items.
  • Better handling of radio buttons in PDF files.
  • Support for / characters in GitHub branch names.
  • Better method of calling git.

1.4.39 - 2023-02-22

Fixed

  • Moved the daPageLoad event trigger until after the setup of the jQuery Validation Plugin.

1.4.38 - 2023-02-20

Fixed

  • Issue with SendGrid e-mail sending.

1.4.37 - 2023-02-17

Added

  • The auto color scheme Configuration directive.

Fixed

  • Issue with double quotation marks in variable names under objects and objects from file.

1.4.36 - 2023-02-08

Fixed

  • CSS issue on small screens.

1.4.35 - 2023-02-06

Fixed

  • Issue with package upgrading.

1.4.34 - 2023-02-06

Fixed

  • Small screen menu button had wrong color.
  • E-mail sending bug introduced in 1.4.33.

1.4.33 - 2023-02-05

Changed

  • Updated Python and JavaScript dependencies.
  • Upgraded Bootstrap to version 5.3.
  • Added support for using min and max with datatype: time and datatype: datetime.
  • The data and data from code blocks can be used with an objects: objects modifier, which will cause the data structure to be interpreted in the manner of objects_from_file(). A gathered modifier is also supported.
  • continue button field can now be used with buttons where one of the items under buttons is continue.
  • The Configuration directive mail now accepts a list of configurations, and send_mail() now accepts a config keyword parameter.

Fixed

  • Removed code that transformed \\_ into __ in Markdown.
  • Ensured that dropdown options are free of HTML.
  • Default values of object-based fields did not appear in all circumstances.
  • The editable: False option for pdf template file now shows better formatting of fields.

1.4.32 - 2023-01-28

Fixed

  • Bug in 1.4.31.

1.4.31 - 2023-01-28

Added

  • The all of the above and check others modifiers for checkbox fields.
  • The celery modules Configuration directive.
  • Recipe for calling background tasks from Flask endpoints.

Changed

  • When setting up two factor authentication with the authenticator app, a code is shown in addition to a QR code.
  • The way that objects from file works has changed; it is no longer treated as a mandatory block, but instead acts like an objects block that is called upon when a variable is needed.

1.4.30 - 2023-01-23

Fixed

  • Scrolling issue when moving from one screen to another.
  • JavaScript bug.

1.4.29 - 2023-01-20

Fixed

  • Follow-up fix to 1.4.28 change regarding unicode values in js show if.

1.4.28 - 2023-01-19

Fixed

  • The “branch” drop-down on the Package Management page was not working on production servers.
  • Follow-up fix to 1.4.26 change regarding unicode values in datatype: checkboxes.
  • JavaScript warning message from Google API regarding a callback function.

1.4.27 - 2023-01-16

Changed

  • The jQuery Validation Plugin settings were adapted to always apply validation to hidden elements.

1.4.26 - 2023-01-15

Fixed

  • Removed dependency on sklearn.
  • Issue with unicode values in datatype: checkboxes.

1.4.25 - 2023-01-05

Fixed

  • Rolling backup files on S3 were copied to the wrong directory during initialization.
  • Issue with objects from file blocks being run repeatedly if they are not marked as mandatory.

1.4.24 - 2022-12-30

Added

  • Option for using show if in action buttons.

Fixed

  • Error with pdf template file and image inclusion introduced in 1.4.21.
  • Error with .from_url() method of DAFile.

1.4.23 - 2022-12-10

Added

  • The screen parts continue button color, resume button color, help button color, and back button color.
  • The question modifiers continue button color and resume button color.
  • Additional options labelauty and labelauty nota under the button colors Configuration directive.

Changed

  • Items in multiple choice lists, when expressed as a dictionary, can now include keys css class and color. The HTML element for the item will have the css class as a CSS class. The color is expected to be a Bootstrap color name. This will change the background color of the HTML element, unless the element is an <option> element. The css class and color keys have no effect on combobox items.
  • Buttons in action buttons can be modified with a css class.

1.4.22 - 2022-12-08

Fixed

  • Error with the .fix_up() method of DAFile introduced in 1.4.21.

1.4.21 - 2022-12-07

Added

  • The suppress autofill directive under features.
  • The grid classes Configuration directive.
  • The alert html and alert container html Configuration directives.

Changed

  • Replaced PyPDF2 with pikepdf.
  • Bates numbering is more efficient.
  • The section modifier now accepts Mako templating.

Fixed

  • Overzealous matching of DAContext variables in data blocks.
  • Possibly remedied an inefficiency in labelauty.
  • Not all object types were allowed in data from code.

1.4.20 - 2022-11-16

Fixed

  • Updated the CloudConvert API.
  • Fixed typo affecting /run/packagename/directoryname/filename links.

1.4.19 - 2022-11-13

Added

  • The wide side by side directive under features.

Changed

  • Better example code for running Alembic from a package that uses SQLObject.

Fixed

  • UI error on administrative screens on mobile.
  • Cancel button on Change Password page directed to the wrong place when show profile link: False is in the Configuration.

1.4.18 - 2022-11-06

Added

  • Ability to pass options directly to the Google Places JavaScript API when using address autocomplete.
  • The hidden input type for defining variables that are populated by JavaScript.

Fixed

  • The YAML on the Configuration page can now be searched in its entirety using the web browser’s search feature.

1.4.17 - 2022-11-03

Added

  • The suppress login alerts Configuration directive.

Fixed

  • Changed NGINX configuration so that requests for hostnames other than external hostname are redirected.
  • Changed list collect behavior to prevent reaching circularity limit when quantity of items is very large.
  • Issue with validation code on file fields with show if.

1.4.16 - 2022-11-01

Fixed

  • Issue with alembic not running properly during restart.

1.4.15 - 2022-10-31

Fixed

  • Problem with authorized registration domains.

1.4.14 - 2022-10-25

Fixed

  • Additional fix to allow the use of table prefix in db.

1.4.13 - 2022-10-24

Changed

  • The include_internal option of store_variables_snapshot(), variables_as_json(), and all_variables() now controls whether the nav variable is included in the output.
  • The authorized registration domains Configuration directive now applies to social login methods as well as username/password login.
  • Increased accessibility of the datatype: combobox interface.

Fixed

  • Problem with the exim4 mail configuration.
  • Problem when table prefix in db was used.

1.4.12 - 2022-10-02

Added

  • The mms attachments option in the twilio configuration.

1.4.11 - 2022-10-01

Fixed

  • Issues with SMS interface.

1.4.10 - 2022-10-01

Added

  • The signature pen thickness scaling factor Configuration directive.

Changed

  • Upgraded Mako to version 1.2.2.
  • The field modifiers address autocomplete, label above field, and floating label can now refer to Python expressions.
  • Upgraded Google OAuth.

Fixed

  • Issue with exim4’s overinclusive dc_other_hostnames setting.
  • Error with images in Markdown to DOCX conversion.
  • Error with overlay_pdf().
  • Error with temporary session when user is not logged in.

1.4.9 - 2022-09-10

Added

  • The voices option of the voicerss Configuration.
  • The voice keyword parameter of the set_language() function.
  • The auto login Configuration directive.
  • The output_to keyword parameter of the .convert_to() method of DAFile.
  • The output_to keyword parameter of the .export() method of DALazyTableTemplate.
  • The output_to keyword parameter of pdf_concatenate(), docx_concatenate(), zip_file(), overlay_pdf().
  • The extract_pages() method of DAFile.

Changed

  • If an attempt is made to access the contents of a DAFile that is not yet initialized, the .initialized attribute will be sought. The .initialize() method sets .initialized to True. Thus, if you have a code block that calls .initialize() on a DAFile called myfile, you can attach sets: myfile.initialized to the code block and it will be called upon if the interview logic requires the contents of myfile.
  • When an attachment that has a name creates a DAFileCollection object, the DAFile attributes will have their alt_text set to the name followed by the file type in parentheses.

Fixed

  • Adjusted the Dockerfile so that the server can start up even if the internet is not available.

1.4.8 - 2022-08-25

Fixed

  • Google Analytics JavaScript was being called in a way that used to work but does not work anymore.

1.4.7 - 2022-08-24

Added

  • The module whitelist and module blacklist Configuration directives.
  • The user profile fields Configuration directive.

Changed

  • The SQLObject methods were changed so that they will raise exceptions if there is an unexpected error.
  • Upgraded jQuery Validation Plugin.

Fixed

  • Fixes to multifactor authentication to make configuration easier.
  • JavaScript issues with comboboxes.

1.4.6 - 2022-08-13

Fixed

  • Backwards-compatibility issue involving backports.zoneinfo. This is an important fix if you upgraded your system version from 1.3.x to 1.4.x.

1.4.5 - 2022-08-11

Fixed

  • Exception raised due to interaction of SQLObject and create_session().

1.4.4 - 2022-08-11

Fixed

  • Bug with default values that evaluate to the empty string.

1.4.3 - 2022-08-09

Fixed

  • Bug in User List interface.

1.4.2 - 2022-08-08

Fixed

  • Unicode characters in the id of a question were not sent to the browser as Unicode.

1.4.1 - 2022-08-05

Changed

  • Upgraded docxtpl.

Fixed

  • Problem with restarting the server when using a single-server configuration.

1.4.0 - 2022-07-31

Added

  • The floating labels feature and the floating label field modifier.
  • The root owned Configuration directive.
  • Support in the Kubernetes implementation for using a read-only file system where all Configuration changes and package updates take place using Docker images and the only directories on the server that are writable are directories for storing runtime information (e.g. PID files) or log files.
  • The ip address ban enabled Configuration directive.
  • The old_password parameter for set_user_info() and the API endpoints for changing user information, so that the user’s encrypted data can be migrated.
  • The transform_json_variables() function.
  • Support for server-side encryption when using S3.

Changed

  • In the Docker container, the operating system is upgraded to Ubuntu 22.04 LTS and Python is upgraded to 3.10.
  • aloe is no longer a required package. It has a dependency, nose, that is not compatible with Python 3.10. Instead, behave is now a required package.
  • Switched to the Azure CLI for managing files in Azure Blob Storage from shell scripts.
  • A restart (e.g., saving the Configuration, installing a package) will erase any IP address bans caused by failed login attempts.
  • The API endpoints for changing information about existing users now work with PATCH as well as POST.

Fixed

  • Links in dropdown navigation menu for mobile devices were not clickable.
  • The session parameter of /api/resume_url was not working (it was expecting session_id.
  • Optimized interview_list for cases where action='delete_all' and query are used together.
  • Unnecessary transmittal of background task result to web browser when the refresh option of background_action() is used.
  • Migration of encrypted DAStore objects when password is changed.
  • The set_parts() function did not support all of the screen parts.

1.3.52 - 2022-07-08

Changed

  • Upgraded atomicwrites.

1.3.51 - 2022-06-18

Changed

  • Upgraded jQuery to 3.6.0.

Fixed

  • Fixed issue with comboboxes introduced in 1.3.50.

1.3.50 - 2022-06-11

Added

  • The enable shared playgrounds Configuration directive.

Changed

  • Upgraded to Font Awesome 6.1.1.

Fixed

  • In a list of fields in a review screen item, the invalidate command was not available.

1.3.49 - 2022-06-09

Added

  • Example interviews relating to inserting graphs and cards.

Changed

  • Changed the name of the explanation() function to logic_explanation(). NOTE THAT THIS IS A BREAKING CHANGE. However, you are most likely not using the explanation() function, so this probably will not matter.

Fixed

  • Cleared spurious syslog-ng error message.
  • Error getting the data format of a question when debug is false.

1.3.48 - 2022-06-05

Fixed

  • Error with user profile screen.

1.3.47 - 2022-06-04

Fixed

  • Error parsing hostname from Redis URL.
  • Number of items not preserved when pressing Back button and arriving at a list collect question.

1.3.46 - 2022-06-03

Added

  • The allow log viewing (DAALLOWLOGVIEWING) Configuration directive.
  • The forget_prior keyword parameter for force_ask() and force_gather().
  • The _forget_prior keyword parameter for url_action() and interview_url_action().
  • The forgetPrior parameter for the JavaScript functions url_action(), action_call(), and action_perform().
  • The logoutpage Configuration directive.
  • The allow changing password directive.

Changed

  • Upgraded to Bootstrap 5.2.
  • The interview_url() and url_of('interview') functions now accept unqualified i parameters, which will be interpreted as references to interview files in the current package.

Fixed

  • The HTML version of the error notification e-mail lacked some of the information in the plain text version.
  • The next parameter of url_of() was not functional for leave, logout, exit, and exit_logout.

1.3.45 - 2022-05-27

Added

  • The pip index url (PIPINDEXURL) and pip extra index urls (PIPEXTRAINDEXURLS) Configuration directives.
  • The allow configuration editing (DAALLOWCONFIGURATIONEDITING) Configuration directive.
  • Docker environment variables DADEBUG (corresponding to debug) and DAENABLEPLAYGROUND (corresponding to enable playground).
  • The insertion_order option for .true_values() and .false_values().

Changed

  • API keys can now be passed in a header using the format Authorization: Bearer H3PLMKJKIVATLDPWHJH3AGWEJPFU5GRT.
  • Removed pathlib as a dependency.
  • If allow updates is set to false, the /api/package endpoint cannot be used to install or uninstall packages.
  • If enable playground is set to false, the Playground-related APIs are disabled.

Fixed

  • When a yesnoradio or yesnomaybe field is not required and is not answered, the variable will now be set to None instead of False. THIS MAY BE A BREAKING CHANGE FOR YOU if you relied on variables being set to False when the user did not provide a value for a yesnoradio or yesnomaybe field. The documentation for required has always stated that the variable will be set to None if the user does not provide a value, so this change brings the code into line with the documentation.
  • Error when target_number is not an int and an .add_action() is triggered.
  • docassemble.base.legal did not import all of docassemble.base.util’s names.
  • set and follow up were not recognized in all valid review block syntax forms.
  • The to parameter of send_email() and send_sms() did not process a DAList the same way as a list.
  • Under some circumstances, the navigation bar showed already-visited sections as not visited.
  • error actions resulted in unnecessary contention for access to the interview answers.

1.3.44 - 2022-05-16

Added

  • The temp_url variant of url_of(), which functions like the /api/temp_url API endpoint.
  • The login_url variant of url_of(), which functions like the /api/login_url API endpoint.
  • The overwrite parameter for /api/session/action.
  • The run_action_in_session() function.
  • A Jinja2 filter called chain that concatenates lists or other iterables (itertools.chain).

Changed

  • The /goto and /auto_login endpoints return a blank page if the User-Agent header indicates that the HTTP client is a bot.

Fixed

  • Added a color conversion strategy to Ghostscript for PDF/A compliance.

1.3.43 - 2022-05-11

Changed

  • Accessibility improvements.

1.3.42 - 2022-05-10

Fixed

  • Error in set_session_variables().

1.3.41 - 2022-05-09

Fixed

  • action buttons were not called using Ajax.
  • response() was not functional when called from an action via Ajax.

1.3.40 - 2022-05-05

Fixed

  • Logged-in user could not delete own interview session using interview_list() without special permissions.

1.3.39 - 2022-04-30

Changed

  • Calling all_variables(simplify=False, include_internal=False) now omits _internal.
  • The HTML now uses required and aria-required="true" to indicate required fields.

Fixed

  • interview_url() can now receive session without also receiving i and i will be set to the current filename without overwriting session.
  • Calling create_session() and other functions for manipulating other sessions could disrupt _internal variables in some circumstances.
  • url_ask() can now begin with an action.
  • Error in session deletion that caused sessions not to be deleted in some circumstances.

1.3.38 - 2022-04-28

Changed

  • The permissions system can now give privileges to anonymous (non-logged in) users.

Fixed

  • Error with new Playground initialization.

1.3.37 - 2022-04-25

Fixed

  • Error with user registration.

1.3.36 - 2022-04-23

Fixed

  • Error with background tasks.
  • Minor user experience issues in Playground.

1.3.35 - 2022-04-20

Added

  • Recipe for creating appointment invitations.

Fixed

  • Error with implicit instantiation of dictionary keys after certain uses of defined() or showifdef().
  • Issue with populating default values in time fields.
  • Error with obtaining API keys for non-admin users.

1.3.34 - 2022-04-19

Fixed

  • Error that interferes with package updates.

1.3.33 - 2022-04-19

Fixed

  • Error introduced in 1.3.32 with filenames on download.

1.3.32 - 2022-04-19

Added

  • The DAGlobal class.

Changed

  • Upgraded dependencies.

Fixed

  • Issue with CSS classes and disable others.

1.3.31 - 2022-04-13

Fixed

  • Bug in delete_all feature of interview_list().

1.3.30 - 2022-04-10

Added

  • The query option for interview_list() and API endpoints like /api/interviews.
  • Recipes for setting screen parts and watermarking Markdown-to-PDF files.
  • The raw_result keyword parameter for ocr_file() and ocr_file_in_background() when used with Google Cloud Vision.

Changed

  • SQL tables now use a uniqueness constraint on primary key columns.
  • Errors with bookmarks in PDF templates will be ignored instead of raising exceptions.

Fixed

  • Problem with the processing of metadata in the Markdown-to-PDF feature.
  • Issue with __getattr__() causing objects to be created as a result of testing for their existence.

1.3.29 - 2022-04-07

Added

  • The option for using Google Cloud Vision when using ocr_file() and ocr_file_in_background().

Changed

  • When new template markdown behavior: True is set in the Configuration (which is now part of the default initial configuration), template variables do not have the markdown filter automatically applied when they are used in a DOCX template file. It is recommended that you add this to your Configuration, and then modify your docx template file templates that use template variables, adding ` | markdown` if necessary.

Fixed

  • Improved efficiency of system shutdown. (Requires a system upgrade.)
  • Problem with Let’s Encrypt certificates not renewing. (Requires a system upgrade.)
  • The single_worker.log file was missing from log rotation.
  • Erroneous exceptions could be raised if a DAObject attribute name began with _. Attributes can begin with _ but they cannot begin with __.
  • The DBSSLMODE, DBSSLCERT, DBSSLKEY, and DBSSLROOTCERT variables were not affected by ENVIRONMENT_TAKES_PRECEDENCE.

1.3.28 - 2022-03-26

Added

  • The default language specifier in metadata.
  • Recipe for running reports.

Fixed

  • Some functions did not work in on change code.
  • UI issue with comboboxes.

1.3.27 - 2022-03-20

Changed

  • Favicons not present will not be referenced in HTML.

1.3.26 - 2022-03-19

Added

  • The favicon tile color Configuration directive.
  • The favicon version Configuration directive.

Changed

  • Favicon feature now uses the package version number when available.
  • Favicon feature now supports site.webmanifest.
  • Additional logging during server restart.
  • UI accessibility improvements.

Fixed

  • Problem importing unclassified machine learning entries from JSON.

1.3.25 - 2022-03-16

Changed

  • complete_attribute can refer to a list of attributes.

Fixed

  • Markdown-to-HTML conversion was not being applied to the pre or submit screen parts.
  • [TARGET ...] was not working in html.
  • Issues with the Training page.

1.3.24 - 2022-03-14

Added

  • The custom datatypes to load directive under features.
  • The set_variables() function.
  • The process_objects parameter for set_session_variables.

Changed

  • Support for importing and exporting datetime.date and datetime.time objects in the JSON representation of objects.
  • input type: area text boxes are resizable in both dimensions.

Fixed

  • Issue with show if and labels above fields.
  • Issues with using SSL for external PostgreSQL and Redis connections.

1.3.23 - 2022-03-07

Changed

  • Upgraded CodeMirror.

Fixed

  • Error with overlay_pdf() introduced in the last version.

1.3.22 - 2022-03-05

Added

  • The permissions Configuration directive.
  • Ability of admin users to create API keys with limited permissions.
  • The multi option of overlay_pdf().
  • The /api/user_invite API endpoint.
  • The api key option of default admin account.
  • The allow forgot password Configuration directive.

Changed

  • Upgraded the boto3 and docxtpl libraries.
  • The Logs are now shown in a resizable <textarea>.
  • Safer implementation of exit link and exit url.
  • For safety reasons, url_of('exit') and similar URLs no longer accept next parameters.
  • The JavaScript for CustomDataType objects will only be inserted if the interview uses the custom datatype.

Fixed

  • URL of exit link was being set to /interview in some circumstances.
  • When server-side validation failed, the fields the user saw on the next screen were not always populated with the user’s answers.
  • HTML typos in <form> elements.
  • Problem converting DOCX to PDF when attachment filename contained a space.
  • Inaccurate exceptions were sometimes raised when AttributeError or IndexError exceptions arise during assembly of a DOCX file.
  • Fixes to Google geocoding for situations where the latitude and longitude are undefined.

1.3.21 - 2022-02-05

Added

  • The fax provider Configuration directive.
  • Option for faxing with Telnyx instead of ClickSend.

Changed

  • The server name of a DAFile can be changed using .set_attributes().
  • NLTK data files are downloaded during the building of the Docker image, so that the initial boot process does not require an internet connection.

1.3.20 - 2022-01-25

Fixed

  • Error with the .convert_to() method of DAFile.
  • Issue with display of modules in the Playground variables.

1.3.19 - 2022-01-17

Fixed

  • Issue with the sizing of images inside of terms descriptions.

1.3.18 - 2022-01-15

Added

  • Support for using md as one of the valid formats in an attachment when using content or content file.
  • The enable unoconv Configuration directive (requires system upgrade). This provides a faster method for converting DOCX files to PDF.

Fixed

  • When raw: True was enabled for an attachment, the file was not included in e-mails sent from the user interface of the attachment block.
  • When raw: True was enabled for an attachment, and the DAFileCollection was passed to send_email() or send_sms(), the assembled file was not included.
  • Fixed error from 1.3.17 relating to updating references.

1.3.17 - 2022-01-13

Changed

  • Environment variable for S3 region for use in shell scripts.

1.3.16 - 2022-01-08

Changed

  • Security updates to dependencies.

Fixed

  • Better support for including a variety of image types in documents by converting the image type to PNG or EPS as appropriate.
  • Problem with order of table model module loading.

1.3.15 - 2022-01-06

Added

  • The TestContext object for testing docassemble code from the command line.
  • The .pngs_ready() and .page_path() methods of DAFile, for use when the DAFile is a PDF.
  • The page and size parameters for the .url_for() method of DAfile, for use when the DAFile is a PDF.
  • The authorized registration domains Configuration directive.

Fixed

  • CSS error in active subsection headings.
  • Error with getting status of background tasks.
  • Error with videos included using [FILE].
  • Some API keys would not authenticate.
  • Error with DAGoogleAPI.

1.3.14 - 2021-12-28

Fixed

  • Error in 1.3.11 related to Upgrade button.

1.3.13 - 2021-12-28

Fixed

  • Error in 1.3.11 related to oauth logins.

1.3.12 - 2021-12-27

Fixed

  • Error in 1.3.11 related to ClickSend.

1.3.11 - 2021-12-27

Changed

  • API keys can now only be viewed when initially obtained.
  • Code that runs when a module is loading now runs in a context where the original admin user is logged in.

Fixed

  • Bootstrap typo affecting alignment of dropdown menu.
  • Issue with machine learning sometimes returning no results when results exist.

1.3.10 - 2021-12-16

Changed

  • In the Playground, pressing buttons is disabled during Ajax requests.
  • The Playground “Pull” process now uses SSH to clone repositories when GitHub integration is enabled, unless a personal access token is embedded in the URL.

Fixed

  • CSS error resulting in certain validation errors being invisible on administrative pages.

1.3.9 - 2021-12-11

Added

  • The /api/playground_pull endpoint for pulling a package into a Playground.
  • The /api/config PATCH endpoint for updating specific Configuration directives.
  • The /api/restart endpoint for triggering a server restart.
  • The /api/restart_status endpoint for monitoring the status of a server restart.

Changed

  • The /api/config API endpoint now returns status code 200 on success, not 204. The response contains a code that can be passed to /api/restart_status to check on the status of the restart.
  • The /api/playground POST and DELETE endpoints will now return status code 200 instead of 204 if the server needs to restart. The response contains a code that can be passed to /api/restart_status to check on the status of the restart.

Fixed

  • NGINX configuration syntax.
  • Better error message if Celery is used inside of Celery.
  • Gave the single Celery process a unique name.
  • Adjust for situation where Ajax request fails without a response.
  • Fixed JavaScript errors in some Playground pages.
  • Fixed issue where GitHub SSH only worked during a Playground pull if there was an active package.
  • Miscellaneous undefined variables in rarely-run code.

1.3.8 - 2021-12-05

Fixed

  • Issues with show if and list collect.

1.3.7 - 2021-12-04

Added

  • The footer css class Configuration directive.

Changed

  • Upgraded pip from 20.1.1 to 21.1. Previously, pip had been deliberately downgraded because the new resolver caused pip to hang. Hopefully that issue does not appear again.
  • The docassemble-os Docker repository, which is a dependency of this Docker repository, is now based on Ubuntu 21.10 rather than Debian testing.

Fixed

  • Bug related to deleting Playground “projects” when S3 or Azure blob storage is enabled.
  • Improved method for detecting variable names in Jinja2 files.
  • Increased threshold for detecting whether a server has become unresponsive during the restart process.

1.3.6 - 2021-11-26

Fixed

  • Adjustments to behavior of skip undefined with DOCX files.
  • Security update of reportlab dependency; incorporated marisol into docassemble.base because of conflicting dependency.

1.3.5 - 2021-11-13

Added

  • Data parameters for CustomDataType.
  • The css class field modifier.

Fixed

  • Adjusted CSS to fix navigation bar and required field CSS issues on small screens.
  • Prevented the enter key from submitting the form in the Playground.

1.3.4 - 2021-11-11

Changed

  • Upgraded from Bootstrap 4 to Bootstrap 5. This changes the HTML and CSS significantly, so you may need to adjust your customizations and testing scripts. Bootstrap 5 is not necessarily more “attractive” than Bootstrap 4, but it has better accessibility.
  • The Source tab is now represented by a “code” icon.
  • The administrative UI was adjusted for consistency.
  • Changed the appearance of help on field labels.

1.3.3 - 2021-11-07

Added

  • The short logo screen part for specifying a different logo for small screens.
  • The navigation bar html screen part for adding HTML to the navigation bar.
  • The _screen_size option for action_menu_item() for hiding menu items depending on the screen size.

Fixed

  • Decreased the max-width of the interview title in the navigation bar to avoid problems with the navigation bar wrapping onto two lines.

1.3.2 - 2021-11-06

Added

  • The DABreadCrumbs class for displaying a breadcrumbs UI to the user when the current question is the result of a nested action.

1.3.1 - 2021-11-05

Added

  • The button colors Configuration directive for customizing the Bootstrap colors of buttons.
  • The label above field modifer that puts the label above the field for a specific field, which is preferable to using no label in combination with a note.
  • The login link style Configuration directive for enabling separate “Sign up” and “Sign in” buttons in the upper right corner instead of “Sign in or sign up to save answers.”

Changed

  • Changed the default color of review screen edit buttons and the “add another” button from Bootstrap success (green) to secondary (grey).
  • Added the Font Awesome pencil icon to review screen edit buttons.
  • Substituted a different Font Awesome icon for the selected radio button option so that it is not the same as the icon for a selected checkbox option.
  • Changed the left arrow icon in the “back to question” button so that it matches the left arrow icon of “Back.”
  • Added a light grey background color behind review screen button items to help differentiate the sections of a review screen.
  • When question help button is used, the question-related help now appears below the buttons, and the navigation bar help only displays the interview help (if present).
  • The skip undefined option now works with docx template file.

Fixed

  • Inactive sections in the sections sidebar are no longer <a> elements that screen readers may describe as clickable.

1.2.108 - 2021-10-29

Fixed

  • On reset, kill zombie LibreOffice processes that might prevent DOCX-to-PDF conversion from succeeding on the server.
  • Changed order of backup to prioritize file storage over logs in case shutdown process is terminated.

1.2.107 - 2021-10-26

Fixed

  • Problem with spinner staying on the screen after certain types of URL redirects.

1.2.106 - 2021-10-22

Fixed

  • Fix to the filename security adjustment in 1.2.105.

1.2.105 - 2021-10-18

Added

  • ClickSend fax support.

Changed

  • Additional bracket expressions now valid with Jinja2 markdown filter.
  • The blockquote Markdown format now indented on right and single-spaced when used the the Jinja2 markdown filter.
  • Filename security in the Playground now allows reading existing Playground files with names that contain spaces, although the filename will be changed.

1.2.104 - 2021-10-11

Fixed

  • Issue with counting SQL results for non-admin developers.

1.2.103 - 2021-10-07

Fixed

  • check in actions were not aware of the current x, i, j, etc.
  • Population of fields by address autocomplete did not trigger the change event on the fields.

1.2.102 - 2021-09-28

Changed

  • Added a check during startup to see if PostgreSQL primary key sequences have been reset and if so set their values to the maximum value id in the table.

Fixed

  • Error getting JSON version of question involving list collect.

1.2.101 - 2021-09-21

Fixed

  • [BEGIN_CAPTION] in HTML mode now behaves like [BEGIN_TWOCOL] in that the columns are converted from Markdown and inserted in the table as paragraphs.

1.2.100 - 2021-09-14

Changed

  • Added descriptive log messages to initialize service.
  • Traceback now included in API when error message is “failure to assemble interview.”

Fixed

  • Issue with package update screen being unresponsive under some conditions due to HTTP timeout.
  • Issue with duplicative entries in install table.
  • Default in multiple choice question not shown when selected value was None.
  • Problem setting code-generated checkbox fields when restrict input variables in effect.

1.2.99 - 2021-08-30

Changed

  • The on_success and on_failure parameters of DAWeb methods can be set to content, text, or status_code in order to return the undecoded response, decoded response, or status code of the HTTP request.

Fixed

  • The pdf_concatenate() function will no longer try to guess an appropriate instanceName for the returned DAFile object.

1.2.98 - 2021-08-17

Added

  • Feature for using Jinja2 as a preprocessor to construct YAML.

Changed

  • Disabled DAGoogleAPI when the architecture is not amd64.
  • Adjusted use of \xspace for new version of Pandoc.
  • If an inactive server in the cluster is detected during the restart process, the server will be removed from the list of servers.

1.2.97 - 2021-08-13

Added

  • Feature for downloading the installed version of a package installed by uploading a ZIP file or installing a Playground package.

Changed

  • No restoration from backup files is performed if system had an unsafe shutdown (requires system upgrade).

Fixed

  • Error in get_geocode_response().
  • Missing entries in system phrases file for e-mails sent from Flask.

1.2.96 - 2021-08-05

Fixed

  • Exception with phone verification.
  • Bad error message with OCR functions under certain circumstances.

1.2.95 - 2021-08-02

Added

  • API for managing Playground projects.

Fixed

  • Exception raised from cron job.
  • Issue with newlines being converted to spaces when inline Markdown added to DOCX.
  • Issue with numbering ordered lists with markdown filter.

1.2.94 - 2021-07-29

Fixed

  • Issue with [SKIPLINE] interfering with other formatting directives.
  • _internal could not be set with set_session_variables().
  • docassemble.webapp.createminio was not updated for the latest version of the minio package.

1.2.93 - 2021-07-22

Fixed

  • Issue with www-data losing its shell.

1.2.92 - 2021-07-22

Fixed

  • Issue with www-data losing its shell.

1.2.91 - 2021-07-21

Changed

  • Re-ordering a list now triggers hook_after_gather().
  • The inverse navbar Configuration directive now affects administrative screens.

Fixed

  • Word-to-Markdown conversion now uses Pandoc’s markdown_phpextra format.

1.2.90 - 2021-07-12

Fixed

  • Security improvements.

1.2.89 - 2021-07-11

Added

  • The azure maps and geocoder service Configuration directives.

Changed

  • Removed wait times and explicit application exit in LibreOffice PDF conversion macro.

Fixed

  • PyPDF2 raised exception when another package tried to issue a warning.
  • Nested show if conditions did not always show the correct showing and hiding when the screen first loaded.
  • Security issue with next parameters in URLs.

1.2.88 - 2021-07-04

Changed

  • If behind https load balancer is set, the IP address will be obtained from X-Real-Ip or X-Forwarded-For rather than from the remote IP address.

Fixed

  • The DELETE endpoint of /api/interviews did not delete sessions owned by non-logged-in users.
  • The refresh button generated a spurious warning in some circumstances.

1.2.87 - 2021-06-27

Added

  • The register_jinja_filter() function.
  • The sv-words.yml file in the data/sources folder of docassemble.base with system phrases in Swedish.

1.2.86 - 2021-06-24

Fixed

  • Missing .delta attribute of the output of date_difference().
  • Syntax error introduced in 1.2.85.

1.2.85 - 2021-06-24

Added

  • The backup file storage Configuration directive (requires system upgrade).

Changed

  • When using docx template file in combination with fields or field code, the interview answers will be used for any variables not defined in the fields or field code.

Fixed

  • Issue with exceptions being triggered because keycloak OAuth information not defined in the Configuration.
  • Non-string values in field code raised exceptions.

1.2.84 - 2021-06-20

Fixed

  • Variable not marked as defined if defined by code block triggered by a different missing variable name.
  • Instance names not reset after reordering.

1.2.83 - 2021-06-16

Changed

  • The depends on invalidation will now be triggered when a variable is defined while invalidated.

Fixed

  • Misplacement of buttons on desktop signature page when subquestion is lengthy.

1.2.82 - 2021-06-13

Added

  • Support for login using Keycloak.

Fixed

  • API sessions could not follow action paths.

1.2.81 - 2021-06-07

Added

  • Support for additional file types in fix_up().

1.2.80 - 2021-06-02

Added

  • The methods fix_up() and uses_acroform() of DAFile and related classes.

Changed

  • If a PDF file cannot be opened by PyPDF2, an attempt will be made to convert the file with qpdf.

1.2.79 - 2021-06-01

Added

  • The methods disable(), enable(), and enabled() of the nav object.

Fixed

  • Adjusted .get_pdf_fields() so that it works with PDF files in which the dimensions of a form field are object references.

1.2.78 - 2021-05-27

Fixed

  • Error with depends on and generic object variables.
  • Error with websockets.

1.2.77 - 2021-05-27

Added

  • The current_package and current_filename attributes of user_info().
  • The progress can go backward setting under features.

1.2.76 - 2021-05-24

Added

  • Support for using Azure Key Vault References in the Configuration.

Fixed

  • Internet Explorer issue with Word sidebar.
  • Issue with Wizard and global variables.

1.2.75 - 2021-05-21

Changed

  • When specifying multiple choices using code containing dictionary items, you can use the keys label and value in a dictionary to represent the label that appears on the screen and the value to which the variable should be set.
  • Widths in percentage format (e.g., 50%) are now valid when inserting images into PDF files assembled from Markdown.

1.2.74 - 2021-05-17

Added

  • Support for using AWS Secrets Manager ARNs in the Configuration.
  • The config from Configuration directive.

Fixed

  • Issues with the Active checkbox and the Roles multiselect on the edit user profile page.
  • Issue with SQL query for finding a user.

1.2.73 - 2021-05-15

Fixed

  • Issue with the “none of the above” option when uncheck others refers to a list.
  • Issue with validate and list collect.
  • Issue with pg_restore.

1.2.72 - 2021-05-15

Fixed

  • Upgraded dependencies.

1.2.71 - 2021-05-14

Changed

  • The Docker image now uses Debian testing and Python 3.8.10 rather than buster and 3.8.6.

Fixed

  • Issue with validation of Playground Packages form.

1.2.70 - 2021-05-13

Fixed

  • Trap potential error in SQL statement when querying admin users for purposes of processing Modules in the Playground.

1.2.69 - 2021-05-13

Fixed

  • Issue with package system where duplicate entries in the package list cause the upgrade process to raise an exception.

1.2.68 - 2021-05-13

Changed

  • Upgraded various dependencies, including docxtpl, the new version of which allows images to be inserted into headers and footers of DOCX files.
  • DO NOT ATTEMPT TO INSTALL 1.2.68 WITHOUT DOWNGRADING PIP FIRST. The latest versions of pip will stall indefinitely or use up all of the memory in your system because of the way that pip’s new dependency resolution system works. To downgrade pip, go to Package Management, enter pip==20.1.1 into the “Package on PyPI” field, then click “Update.” Only then should you attempt to click “Upgrade” to upgrade docassemble to 1.2.68.

Fixed

  • Issue with interview_url() and related functions when style is used.

1.2.67 - 2021-05-08

Fixed

  • Possible fix to issue with /interviews page and interview_list() (this turned out to have been caused by a third-party package that some people were using).

1.2.66 - 2021-05-04

Fixed

  • Suppress Markdown deprecation warning.

1.2.65 - 2021-05-04

Fixed

  • A very serious security vulnerability was patched. Everyone should upgrade to this version AS SOON AS POSSIBLE (upgrade to 1.2.66, actually). Upgrade by going to Package Management and clicking Upgrade. If you are on the 1.1.x series, you can upgrade to 1.1.113 with the Upgrade button or by entering docassemble.webapp==1.1.113 into the PyPI field. If you are using the stable branch, you can upgrade to 1.0.15.

1.2.64 - 2021-05-04

Added

  • The popover trigger feature.

Fixed

  • Added validation error on the edit user profile page when changing e-mail address to an address that is a case-insensitive match to an e-mail address that already exists.

1.2.63 - 2021-05-02

Changed

  • Optimizations for interview_list().

1.2.62 - 2021-05-01

Changed

  • Optimizations for the restart process.

1.2.61 - 2021-05-01

Added

  • The resume_existing option for login_url.

1.2.60 - 2021-04-30

Added

  • The multiselect data type.

1.2.59 - 2021-04-28

Fixed

  • Problem with reset_geolocation().

1.2.58 - 2021-04-27

Fixed

  • Bug with list collect and checkboxes.

Changed

  • The <fieldset> containing a question’s buttons now has the class da-button-set.
  • The signature_of() method of the SigningProcess class in the signature recipe now has a width parameter.

1.2.57 - 2021-04-26

Added

  • The authorize() method of DAOAuth, which adds OAuth2 authorization headers to a DAWeb object.

Changed

  • The .geolocate() method has been renamed to .geocode() and other associated attributes have also been renamed. Backwards compatibility will be maintained until the next minor version update.

Fixed

  • The attachment code specifier now accepts DAList objects.
  • Interference between help and operation of show if.

1.2.56 - 2021-04-22

Fixed

  • Screen reader issue with lists.
  • Problem with DATemplate when used in the context of a DOCX template.

1.2.55 - 2021-04-20

Added

  • reload option for message().

Fixed

  • Error with protecting PDFs with password.

1.2.54 - 2021-04-15

Changed

  • DAList and DASet methods will now return objects of the same subclass.

1.2.53 - 2021-04-12

Changed

  • The GitHub integration feature now sets the name of the SSH key to the appname followed by the user ID.

1.2.52 - 2021-04-11

Changed

  • Added mechanism in classes Person, etc. for indicating what class should be used for attributes that are objects.
  • Added support for QR codes when filling PDF files.

Fixed

  • The .address_block() method now supports the international and show_country keyword parameters.

1.2.51 - 2021-04-07

Changed

  • Added optimizations for network usage on first page load (requires system update).

1.2.50 - 2021-04-04

Changed

  • OCRing in background now uses one process per machine (requires system update).

1.2.49 - 2021-04-03

Fixed

  • Issue with SVM library.

1.2.48 - 2021-03-31

Fixed

  • Error with SMS interface.
  • Better trapping of unicode errors in case of a YAML error.

1.2.47 - 2021-03-26

Fixed

  • Enter key on Playground Packages page.
  • Word wrap on buttons.

1.2.46 - 2021-03-24

Fixed

  • Error with reading zip files.
  • Error when the complete_attribute is a @property.

1.2.45 - 2021-03-19

Fixed

  • Error with allow reordering.

1.2.44 - 2021-03-16

Changed

  • The possessify() function and the object methods that use it will return a Unicode apostrophe when called from the context of a DOCX template.

1.2.43 - 2021-03-15

Added

  • The /api/playground_install endpoint.
  • The bold and italic functions as Jinja2 filters.

Changed

  • As soon as the container starts, a dummy web server begins listening on port 80 (or PORT). This web server turns off before NGINX starts.
  • Verbose pip logs no longer saved to worker.log.

1.2.42 - 2021-03-13

Changed

  • The optional second positional parameter of noun_plural() and noun_singular() can now be a list, dictionary, set, or tuple, in which case the length is used.
  • Elements with aria-hidden="true" or CSS class sr-exclude will be ignored by the VoiceRSS screen reader.
  • force_ask(), force_gather(), undefine(), forget_result_of(), and reconsider() now accept generators as positional parameters.
  • When given Person objects, send_email() will include names in To, Cc, and Bcc if the names are defined.

Fixed

  • A fields question with no variable-setting fields or a continue button field did not get marked as answered.

1.2.41 - 2021-03-09

Fixed

  • Bug in 1.2.40.

1.2.40 - 2021-03-08

Added

  • Support for the PORT Docker environment variable, which defaults to port 80.

1.2.39 - 2021-03-06

Fixed

  • Issues with Word add-in.

1.2.38 - 2021-03-04

Fixed

  • Default value on combobox fields.

1.2.37 - 2021-03-03

Fixed

  • Default value on combobox fields.

1.2.36 - 2021-03-02

Fixed

  • Package install errors not being sent to screen.

1.2.35 - 2021-02-27

Added

  • The .item_name() and .delitem() methods of DAList.
  • The .item_name(), .delitem(), .invalidate_item(), and .getitem_fresh() methods of DADict.
  • The restart option for /api/package.

1.2.34 - 2021-02-25

Added

  • The .getattr_fresh() method.

Fixed

  • Bug in .from_url().

1.2.33 - 2021-02-20

Changed

  • When datatype is password, autocomplete will be turned off.

Fixed

  • code with content file in raw mode.
  • .get_pdf_fields() raised exception when no fields present.

1.2.32 - 2021-02-17

Fixed

  • Issue with logging messages during post-update restart.

1.2.31 - 2021-02-16

Added

  • The post option for need.

Changed

  • Deleting a package in the Playground will now delete the memory of the last pull of that package.

1.2.30 - 2021-02-13

Fixed

  • False positive infinite loop detection with objects block.

1.2.29 - 2021-02-12

Fixed

  • Package Management issue with waiting for restart.

1.2.28 - 2021-02-09

Changed

  • In the question data, decoration_url and decoration_name have been converted to a decoration dictionary.

Fixed

  • The title_case function now converts its parameter to a string.
  • Package Management issue with waiting for restart.

1.2.27 - 2021-02-05

Fixed

  • Restored default behavior of not converting to HTML in question data.

1.2.26 - 2021-02-04

Changed

  • Added variable_name to items under attachments in the JSON representation of a question.

Fixed

  • Removed use of certbot-auto.

1.2.25 - 2021-01-27

Added

  • The region parameter under the google Configuration directive, for biasing the address autocomplete feature.

Fixed

  • Unicode characters in PDF forms were altered if they were not part of latin1.

1.2.24 - 2021-01-24

Not changed

  • The license. (Just in case you thought the 1/14/2021 @docassemble Twitter thread about the dystopian MIT-SAFE License was real.)

Changed

  • The from_url() method will now raise an exception if there is an error retrieving the URL.
  • The avconv Configuration directive is now called ffmpeg.
  • Uploading a video no longer runs a conversion to .ogg.

Added

  • Option for connecting to a PostgreSQL database using SSL with db and other database configurations. A system update is required to use this feature.

Fixed

  • Problem writing error messages to the logs when Mailgun mail sending fails.
  • Error in pdf_concatenate() when JavaScript in a PDF is text instead of bytes.
  • Non-graceful failure on Google Drive configuration page when API for obtaining a file listing raises an exception.

1.2.23 - 2021-01-07

Changed

  • Expanded the information available in the data view of a question.
  • Unicode passed in URL arguments is no longer escaped.

Fixed

  • The next parameter now contains the session ID upon attempting to access a session in an interview with require login.
  • depends on and on change now can be used with generic object and/or index variables even when the fields being changed do not literally match the variable name specified in depends on or on change.
  • Problem with show if when there are two fields with the same name visible on the screen at the same time.

1.2.22 - 2021-01-04

Changed

  • Expanded the information available in the data view of a question.

Fixed

  • Issue with combobox update triggers.
  • Issue with DADict objects in code for multiple choice lists.

1.2.21 - 2020-12-29

Changed

  • The list collect feature will now show the minimum_number of entries if minimum_number is set.

1.2.20 - 2020-12-28

Fixed

  • Error with generic object inheritance.

1.2.19 - 2020-12-26

Fixed

  • Error in .object_name().

1.2.18 - 2020-12-22

Fixed

  • Adapted to new version of pip.

1.2.17 - 2020-12-22

Changed

  • Different startup mechanism for celery.
  • Removed --force-reinstall from pip invocation.

1.2.16 - 2020-12-15

Added

  • The chain function from itertools.

Fixed

  • Forced deletion of Flask-User.

1.2.15 - 2020-12-14

Fixed

  • Pinned dependencies of fork dependencies.

1.2.14 - 2020-12-09

Fixed

  • Problem with the way in which pip was invoked, given new version of pip.

1.2.13 - 2020-12-09

Fixed

  • Typo in setup.py.

1.2.12 - 2020-12-09

Changed

  • Dependencies on aloe and selenium.

Fixed

  • Interview filenames with spaces in the Configuration were disregarded.

1.2.11 - 2020-12-07

Added

  • XLIFF support.
  • The user can request developer account Configuration directive.

Fixed

  • User information that non-privileged users are not allowed to edit in Profile but that was set with code was overwritten when user edited their user profile.
  • Problem with datereplace.js in recipe.

1.2.10 - 2020-12-05

Added

  • The raw datatype.

Changed

  • Additional items colorized in spreadsheet translations.
  • HTML stripped from fields with datatype of text.

Fixed

  • Issue with server-side validation where multiple question blocks have the same id.

1.2.9 - 2020-12-04

Fixed

  • Bug in comma_and_list().

1.2.8 - 2020-12-03

Changed

  • Different limiting mechanism for the nested use of include_docx_template().
  • Enabled the md_in_html extension of the Markdown package.

1.2.7 - 2020-12-02

Added

  • The new window option to action buttons.

Fixed

  • Ajax error with xhr responses.

1.2.6 - 2020-12-01

Fixed

  • Error in update_terms().

1.2.5 - 2020-11-30

Fixed

  • JavaScript error in Internet Explorer.

1.2.4 - 2020-11-29

Changed

  • The setup.py file created by the Playground now sets the minimum version of dependencies to the latest version on PyPI that is not more recent than the version installed on the server.

Fixed

  • Browser warning about Google Analytics cookies.

1.2.3 - 2020-11-29

Fixed

  • Upgraded to new version of Azure Blob Storage API.

1.2.2 - 2020-11-29

Fixed

  • Reverted Azure Blob Storage API version.

1.2.1 - 2020-11-28

Fixed

  • Error on Package Management page.

1.2.0 - 2020-11-28

Changed

  • Upgraded Python to version 3.8 and upgraded dependencies. These changes require a system upgrade. See https://docassemble.org/docs/docker.html#upgrading for instructions on how to perform a system upgrade. Because Python changed between version 3.6 and and 3.8, you should test your code carefully to make sure it still works in Python 3.8.
  • Among other upgrades, Bootstrap has been upgraded to version 4.5.3. If you are using Bootstrap themes, you may wish to upgrade your Bootstrap theme.

Fixed

  • Issue with user privileges.

1.1.113 - 2021-05-05

Changed

  • The Upgrade button has been restored but it is non-functional.

Fixed

  • Important security vulnerability.

1.1.112 - 2020-11-26

Changed

  • Upgrading through Package Management is turned off because the upgrade to 1.2.0 requires a system upgrade.

1.1.111 - 2020-11-26

Fixed

  • Some Jinja2 filters did not work correctly.

1.1.110 - 2020-11-25

Changed

  • The API can now be used to set variables to class names.

Fixed

  • The sort Jinja2 filter did not work correctly.

1.1.109 - 2020-11-24

Added

  • The suppress error notificiations Configuration directive.
  • Error message if file upload will exceed maximum content length.

Fixed

  • Google Drive synchronization did not work with shortcuts to folders.

1.1.108 - 2020-11-22

Changed

  • The markdown and inline_markdown filters now respect the type and start attributes of <ol>.

1.1.107 - 2020-11-21

Changed

  • Upgraded LibreOffice (system upgrade required for this change).

Fixed

  • Bug in previous version.

1.1.106 - 2020-11-21

Added

  • The change_numbering keyword parameter to include_docx_template().

1.1.105 - 2020-11-20

Changed

  • The .make_ocr_pdf_in_background() method can now handle mixed file types.

Fixed

  • Markdown internal anchor links now work in the web interface.

1.1.104 - 2020-11-20

Added

  • German translations of country names.

Changed

  • The states_list(), state_name(), and subdivision_type() functions now pass output through the word() translation system.

Fixed

  • The language modifier for an attachment did not work with docx template file attachments.

1.1.103 - 2020-11-19

Added

  • The temporary session specifier under metadata.

Changed

  • The countries_list() and country_name() functions will now pass country names through the word() translation system.

1.1.102 - 2020-11-19

Fixed

  • The local PostgreSQL database was being created with the default encoding, which did not allow UTF-8 strings to be saved in jsonb format.
  • An attachment that uses a different language than the current language did not restore the correct language after an exception.

1.1.101 - 2020-11-14

Fixed

  • Issue with interview_url() and interview_url_action() with i parameter when short URL is in use.

1.1.100 - 2020-11-13

Fixed

  • Translation of phrases on registration page.

1.1.99 - 2020-11-12

Changed

  • Different logic for whether hyperlinks open in the same tab or a different tab.

1.1.98 - 2020-11-12

Fixed

  • Bug in bates_number().

1.1.97 - 2020-11-10

Added

  • The /api/clear_cache endpoint.

1.1.96 - 2020-11-08

Added

  • The lang URL parameter for non-interview screens.

1.1.95 - 2020-11-06

Fixed

  • Unnecessary incrementing of PyPI version.
  • Recent installations (since June 25, 2020, possibly) contained a Debian security update that disabled ImageMagick’s ability to inject signature images onto PDFs. Running docker stop and docker start is required to enable the PDF signature image feature.

1.1.94 - 2020-11-03

Added

  • The set_object_type() method of DAList and DADict.
  • The variable attribute of the return value of user_info().
  • The reset_geolocation() method of Address and the reset keyword parameter of the geolocate() method.

Fixed

  • The map Jinja2 filter looked up dictionary items instead of attributes.
  • Could not mix a Python-based show if with a JavaScript-based hide if or vice-versa.

1.1.93 - 2020-10-27

Fixed

  • Markdown in popover field help.

1.1.92 - 2020-10-24

Added

  • The update_terms() function.

Changed

  • When using terms, you can specify that text other than the term name should be displayed using |.
  • When specifying terms and auto terms, you can use phrases and definition to indicate that multiple terms are associated with a single definition.

1.1.91 - 2020-10-24

Fixed

  • Bug in GitHub configuration.

1.1.90 - 2020-10-20

Changed

  • Enabled a variety of functions to operate as Jinja2 filters.

Fixed

  • Corrected operation of selectattr Jinja2 filter.

1.1.89 - 2020-10-19

Added

  • The make_ocr_pdf() and make_ocr_pdf_in_background(), and bates_number() methods of DAFile and DAFileList.
  • The reverse(), insert(), and count() methods of DAList.

1.1.88 - 2020-10-16

Added

  • The required privileges for initiating specifier under metadata.

Changed

  • The JSON format of questions now includes analytics information.

Fixed

  • The delete_variables feature of /api/session did not work when passing the request in JSON format.

1.1.87 - 2020-10-14

Fixed

  • False error messages on package update screen.

1.1.86 - 2020-10-13

Changed

  • Monitor disabled when checkin interval is zero.

Fixed

  • Potential OAuth2 issue with Google Drive.

1.1.85 - 2020-10-12

Added

  • The table css class screen part.
  • The show_as_markdown() method for templates.
  • The _inline option for include_docx_template().
  • Ability to list multiple files under docx template file.
  • Ability to set the pre and post screen parts directly on a question.
  • The enable if, disable if, js enable if, and js disable if field modifiers.

1.1.84 - 2020-10-07

Fixed

  • GitHub commit issue.

1.1.83 - 2020-10-07

Fixed

  • cross site domains was not being used by CORS for web sockets.

1.1.82 - 2020-10-06

Fixed

  • GitHub commit error.

1.1.81 - 2020-10-05

Fixed

  • Tweak to focusing on first element.

1.1.80 - 2020-10-04

Added

  • The middle_initial() method of Name.

Changed

  • First input element on the screen is focused only if visible in the viewport.
  • [FILE ...] can now be used with images declared in images or image sets.

Fixed

  • Issue with floating point/integer numbers and input validation.

1.1.79 - 2020-09-28

Fixed

  • Problem with using [TARGET] inside of right.

1.1.78 - 2020-09-25

Fixed

  • Issue with get_info().
  • Issue with show if code and generic objects/iterators.

1.1.77 - 2020-09-22

Fixed

  • Issue with fix in the previous version regarding group-level file permissions.

1.1.76 - 2020-09-22

Added

  • The question_id attribute of user_info().

Fixed

  • Issue with group-level file permissions.

1.1.75 - 2020-09-20

Fixed

  • Issues with show if and js show if when multiple fields with the same name are on the screen.
  • Issues with server-side validation not recreating values on the screen on error.

1.1.74 - 2020-09-18

Changed

  • Setting url_args without causing a change to the url_args does not cause a new step to be created.

Fixed

  • An empty string min or max was not being ignored.
  • Issue with generic object.

1.1.73 - 2020-09-13

Changed

  • The use_word keyword attribute to nice_number() and ordinal() can be used to force a textual representation of any number.

1.1.72 - 2020-09-10

Fixed

  • Removal of new_session from URLs formed with interview_url().

1.1.71 - 2020-09-07

Fixed

  • Better support for iterables in comma_list() and other places.
  • Markdown table alignment in Bootstrap.
  • Upgraded Pillow.

1.1.70 - 2020-09-05

Added

  • The reply_to option for send_email().

Changed

  • The current section name is now the label of the small screen navigation: dropdown button.
  • The breakpoint for the mobile signature view is now Bootstrap xs.

Fixed

  • Multiple choice fields with empty choices were being set to None despite code-based show if deselecting the field.

1.1.69 - 2020-09-02

Added

  • The /api/stash_data and /api/retrieve_stashed_data endpoints.
  • The stash_data() and retrieve_stashed_data() functions.
  • The current option for referring_url().

1.1.68 - 2020-09-02

Fixed

  • Improper verb conjugation for non-English languages.

1.1.67 - 2020-09-01

Fixed

  • Issue with two POST requests being sent during inline file uploads.

1.1.66 - 2020-08-30

Added

  • The small screen navigation option under features.
  • The email template, email subject, email body, and email address default options for customizing the functionality of the attachment/attachment code interface.

Changed

  • The horizontal section interface is no longer hidden on small screens.
  • The vertical section interface becomes the horizontal section interface on small screens.
  • The default body of the e-mail that the user can send from an attachment/attachment code interface is now translated using the phrases Your document, %s, is attached. and Your documents, %s, are attached..

1.1.65 - 2020-08-28

Added

  • The style keyword parameter for interview_url().

Changed

  • The /start/ path for starting an interview now transforms into /run instead of /interview. It also has a second form for referring to the package name and filename (without using dispatch).

Fixed

  • The Playground “Share” link did not update correctly based on the interview being run.

1.1.64 - 2020-08-26

Fixed

  • Issue with relative image URLs when embedding in a <div>.

1.1.63 - 2020-08-25

Added

  • The corner back button label screen part.

Changed

  • Upgraded bootstrap-fileupload.

Fixed

  • The progress modifier did not behave as described in the documentation.

1.1.62 - 2020-08-23

Added

  • The modifiers include attachment notice, include download tab, and manual attachment list for tweaking the display of attached documents.

Fixed

  • Step advanced when session started with URL parameters.
  • The signature screen scrolled at submission.
  • The next parameter was forgotten when using social login methods.
  • The reconsider modifier did not work with iterator variables.

1.1.61 - 2020-08-20

Fixed

  • JavaScript error with getField().

1.1.60 - 2020-08-19

Changed

  • Playground Packages page now reports local date and time of a commit.

Fixed

  • Issue with two file fields or two fields with a validate that have the same variable name and one is hidden by show if.

1.1.59 - 2020-08-18

Fixed

  • Cron problem introduced in 1.1.56.

1.1.58 - 2020-08-16

Fixed

  • Backwards-compatibility issue related to DAEmpty introduced in 1.1.54.

1.1.57 - 2020-08-16

Fixed

  • Backwards-compatibility issue related to DAEmpty introduced in 1.1.54.

1.1.56 - 2020-08-16

Added

  • The session_local, device_local, and user_local objects in the interview answers.
  • The require login metadata directive.

Changed

  • When the API is in use, interface() will return 'api'.

Fixed

  • review blocks were not compatible with iterator variables.
  • combobox fields not working right in list collect mode.
  • address autocomplete did not initialize when the address was hidden by a show if.
  • Submission blocked when an empty non-required file upload field was present in an embedded interview.

1.1.55 - 2020-08-06

Added

  • The create_session() function.
  • The package attribute of the output of user_info().
  • The make_copy keyword parameter for all_variables().
  • The overwrite keyword parameter for set_session_variables().
  • The overwrite parameter for the /api/session POST endpoint.
  • The persistent option for the /api/session/action POST endpoint.
  • Recipe for passing variables from one session to a newly created other session.

1.1.54 - 2020-08-04

Added

  • The attr_name() method of the DAObject class.
  • The dry_run keyword parameter for send_email() and send_sms().

Changed

  • The str keyword parameter when initializing a DAEmpty object.
  • New recipe for gathering multiple signatures; uses a modular approach.

Fixed

  • Missing control for capitalize in some language functions.
  • SendGrid fails when subject line is empty string.
  • The temporary and once_temporary keyword parameters for interview_url_action() were not working.
  • Problem with running interviews in a different tab in Playground on Chrome.

1.1.53 - 2020-07-29

Fixed

  • Error in Docassemble-Flask-User dependency.

1.1.52 - 2020-07-29

Fixed

  • Moved evaluation of section information to post-assembly when getting question data.

1.1.51 - 2020-07-28

Added

  • The footer screen part.
  • terms and autoterms are now included in JSON question data.

Fixed

  • signature blocks did not support continue button field.
  • System message translation system had gaps due to the integration with Flask-User’s translation system not working as intended.
  • Inconsistent behavior of force_ask() depending on whether an item was listed first or not.

1.1.50 - 2020-07-21

Added

  • Feature for viewing names in an interview and the YAML blocks associated with them.

Fixed

  • Missing .copy() method for DAList.
  • The init() method of the DAFileCollection class did not accept arbitrary parameters.
  • Fully qualified image URLs now work in e-mail HTML.

1.1.49 - 2020-07-07

Fixed

  • Additional input validation on parameters passed to APIs.

1.1.48 - 2020-07-06

Fixed

  • The /api/user_info API endpoint and the get_user_info() function now do case insensitive searches for e-mail addresses.

1.1.47 - 2020-07-05

Added

  • The store_variables_snapshot() function.

1.1.46 - 2020-07-05

Fixed

  • Error in restart module.

1.1.45 - 2020-07-05

Fixed

  • Error in table creation module.

1.1.44 - 2020-07-05

Changed

  • The interview_list() function, when called without an action, now uses pagination and returns a tuple instead of a list. Note that this change is not backwards-compatible, so you will need to change any code that you have that calls interview_list().
  • The get_user_list() function now uses pagination and returns a tuple instead of a list. Note that this change is not backwards-compatible, so you will need to change any code that you have that calls interview_list().
  • The /api/interviews, /api/user/interviews, /api/user/<user_id>/interviews, and /api/user_list GET endpoints of the API now use pagination and return a dictionary, not a list. Note that this change is not backwards-compatible, so you will need to change any code that you have that uses these APIs.
  • Removed the PY2, string_types, and text_type names from docassemble.base.util. Note that if you have used any of these, this change may break your code.

Added

  • The persistent optional keyword parameter for mark_task_as_performed() and related functions.
  • The task_persistent optional keyword parameter for send_email(), send_sms(), and the DAWeb methods.

Fixed

  • Issue with encryption in functions launched during the loading of the first page of an interview session.
  • Issue with multi-server configurations and the order in which container software is updated that can result in some containers unable to start.

1.1.43 - 2020-06-30

Changed

  • The complete_elements() method now returns a DAList. Note that this may break existing code that uses complete_elements(). To get a plain list of the complete elements, use complete_elements().elements.
  • Spanish ordinal numbers removed.
  • Upgraded jQuery and jQuery Validation Plugin.

Fixed

  • Possible fix to iframe reloading issue.

1.1.42 - 2020-06-25

Added

  • Aliases for JavaScript functions that have the da prefix.

Fixed

  • Jinja2 filter was converting Python built-in types to strings.

1.1.41 - 2020-06-22

Fixed

  • Bug in recursive_eval_textobject().

1.1.40 - 2020-06-19

Added

  • question metadata, field metadata, and the send question data option under features.
  • The country keyword parameter for .sms_number().
  • The field keyword parameter for validation_error().

1.1.39 - 2020-06-17

Fixed

  • Issue with interview_url_action() and force_ask().
  • Upgraded docxtpl and docx.

1.1.38 - 2020-06-11

Added

  • The add another label option for list collect.
  • The manual_line_breaks Jinja2 filter.

Changed

  • The .all_false() and related DADict methods reflect Python notions of true and false values rather than literal equivalence of the values to True or False.
  • Sessions that were created using the API will now appear immediately in My Interviews.

1.1.37 - 2020-06-10

Fixed

  • Attempt to force reinstall of pdfminer.six.

1.1.36 - 2020-06-10

Fixed

  • Another attempt to force uninstall of pdfminer3k.

1.1.35 - 2020-06-08

Fixed

  • Force uninstall of pdfminer3k.

1.1.34 - 2020-06-08

Fixed

  • Error with objects_from_file().

1.1.33 - 2020-06-04

Changed

  • help can be added to note and html fields.

Fixed

  • Support for icons in terms.

1.1.32 - 2020-05-30

Fixed

  • Issue with objects_from_file().

1.1.31 - 2020-05-29

Fixed

  • Issue with nested question file inclusion change in 1.1.30.

1.1.30 - 2020-05-29

Fixed

  • Issue with screen reader and labels containing HTML codes.
  • Issue with nested question file inclusion.

1.1.29 - 2020-05-27

Fixed

  • Issue with set_save_status().
  • Issue with checkbox validation text when the “none of the above” choice contained HTML.
  • Bug prevented admin users from changing other users’ information with the API.

1.1.28 - 2020-05-21

Added

  • The skip undefined option for pdf template file

Fixed

  • Issue with nested datatype: object fields in a list collect.
  • Issue with disable others referring to a list in a list collect.

1.1.27 - 2020-05-19

Fixed

  • Issue with js show if and list collect.

1.1.26 - 2020-05-17

Fixed

  • Duplicative under text when attachment is used.
  • Error when reading certain types of PDF files.

1.1.25 - 2020-05-07

Added

  • The if_started keyword parameter for the number_gathered() method.

Changed

  • If ask_number on a DAList or DADict is True and target_number is defined, removing an item using the table editing interface will decrease target_number by one.

1.1.24 - 2020-05-04

Fixed

  • Unicode problem with JSON sent from the browser.

1.1.23 - 2020-05-03

Added

  • The getFields() JavaScript function.

Changed

  • A question with fields that contains a single multiple choice field where the choices are empty is not skipped if the question has a continue button field.
  • The branch and commit are shown in the Packages page of the Playground when GitHub integration is enabled and the package has a known presence on GitHub.
  • Upgraded Font Awesome to 5.13.0.

Fixed

  • Infinite loop when a list is gathered and object_type is set to a class for which the textual representation or complete_element is pre-defined and a set number of items are to be gathered.
  • The sql ping feature was not fully implemented.

1.1.22 - 2020-04-30

Changed

  • When a item is added to or removed from a group, the there_are_any attribute is updated even if there_are_any was not previously defined.

Fixed

  • Package update problem due to pip freeze changing behavior in version 20.1.

1.1.21 - 2020-04-30

Fixed

  • PDF export value issue where two export values are present in the PDF for a checkbox field.

1.1.20 - 2020-04-30

Changed

  • Upgraded LibreOffice to version 6.4.

Fixed

  • review screens shown as part of the interview logic were being treated as actions.

1.1.19 - 2020-04-29

Changed

  • If help accompanies a yesno field, it will be available as a popup accessed from an icon.

Fixed

  • GitHub issue when committing to a new branch.
  • Exception when trying to edit a non-existent user.
  • Bug in comma_and_list().
  • The disable others and uncheck others features did not work correctly in a list collect.

1.1.18 - 2020-04-28

Changed

  • The checkbox export value feature is no longer documented because PDF field filling now inspects the PDF for the export value.

Fixed

  • The address autocomplete feature was not compatible with show if.

1.1.17 - 2020-04-27

Added

  • The hyperlink style option for an attachment.

Fixed

  • Sendgrid API e-mails to multiple “To” recipients only reached the first recipient.

1.1.16 - 2020-04-26

Added

  • Test script screenshot mechanism.

Changed

  • Subfolder paths now allowed in URLs for static files.

Fixed

  • S3 file sync problem.

1.1.15 - 2020-04-23

Added

  • The default date min and default date max options under features.

1.1.14 - 2020-04-22

Changed

  • The GitHub button on the Playground Packages page will now respect the GitHub repository that was pulled and will make an initial commit when the repository exists on GitHub but is empty.

1.1.13 - 2020-04-21

Added

  • The title url and title url opens in other window screen parts.
  • A “retry” button on the error screen.

Changed

  • Auto-focus on page load will only be given to an element in the first non-note, non-html field.

Fixed

  • Pressing enter key on the list collect screen clicked a hidden button.
  • Changes in 1.1.11 blocked certain types of uploads.

1.1.12 - 2020-04-20

Fixed

  • Fields with an object-based datatype did not work when list collect was used.
  • Error with exporting tables to Excel.

1.1.11 - 2020-04-19

Added

  • Ability to download files by specifying a filename parameter to GET requests to /api/playground.
  • The use_word keyword argument to ordinal().
  • The always include editable files specifier for omitting the checkbox in the attachment UI.
  • The nginx ssl protocols Configuration directive.

Changed

  • If use https or behind https load balancer are enabled, a Strict-Transport-Security header is returned.
  • If allow embedding is not set to True, the X-Frame-Options and Content-Security-Policy will block iframes. If allow embedding is set to True and cross site domains is set, the list of domains will be used for the Content-Security-Policy header.
  • More than one address autocomplete can now be used on a screen.

Fixed

  • Disconnecting from GitHub integration failed if the existing integration no longer functioned.

1.1.10 - 2020-04-15

Added

  • The mailgun_variables option for send_email().
  • The docx_concatenate() function.

Changed

  • When more than one file with the same name is added to a ZIP file, the files are renamed to avoid name collision.

1.1.9 - 2020-04-14

Fixed

  • Typo in Address.on_one_line().

1.1.8 - 2020-04-13

Fixed

  • Error when code is used to generate fields and manually entered fields follow.
  • Jinja2 index error converted to attribute error.
  • Incorrect focus when first fields have hide if.

1.1.7 - 2020-04-13

Fixed

  • Error with serving files through /uploadedfile/<number>.

1.1.6 - 2020-04-12

Added

  • The social Configuration directive for meta tags.
  • The social specifier under metadata for meta tags.
  • The allow robots Configuration directive.
  • Czech translation.

1.1.5 - 2020-04-09

Added

  • The required modifier for the signature block.

Fixed

  • Error message about blank signature not showing.

1.1.4 - 2020-04-08

Changed

  • DAEmpty now accepts index assignments.
  • Obtaining a new_session during an interview now preserves url_args and the referring_url(), consistent with the behavior of restart.

1.1.3 - 2020-04-06

Added

  • The use_familiar attribute of the Individual class.
  • The familiar() method of the Name class.

Fixed

  • Issue with too many flash messages on CSRF error.
  • Issue with multiple DOCX documents and subdocuments.

1.1.2 - 2020-04-04

Fixed

  • Issue with file names and .url_for().

1.1.1 - 2020-04-04

Added

  • The attachment keyword parameter for .url_for().
  • The _attachment keyword parameter for url_of().

Changed

  • Securing of uploaded filenames less strict.

1.0.14 - 2021-05-05

Fixed

  • Missing file in setup.py.

1.0.13 - 2021-05-04

Fixed

  • Suppress Markdown deprecation warning.

1.0.12 - 2021-05-04

Fixed

  • Important security vulnerability.

1.0.11 - 2020-04-15

Fixed

  • Typo in Address.on_one_line().
  • Error when code is used to generate fields and manually entered fields follow.
  • Jinja2 index error converted to attribute error.
  • Incorrect focus when first fields have hide if.

1.0.10 - 2020-04-12

Fixed

  • Removed 302 redirects.
  • Mako filter error.
  • Inline upload error.

1.0.9 - 2020-04-06

Fixed

  • Issue with too many flash messages on CSRF error.
  • Issue with multiple DOCX documents and subdocuments.

1.0.8 - 2020-04-05

Added

  • The DASQLPING Docker environment variable

1.0.7 - 2020-04-05

Fixed

  • Display of available version on Package Management page.

1.0.6 - 2020-04-04

Added

  • The stable version Configuration directive.

1.0.5 - 2020-04-02

Fixed

  • Apache initial certbot run used wrong syntax.
  • Synchronizing local updates to files inside projects on OneDrive failed.

1.0.4 - 2020-03-31

Fixed

  • Error when disable others is used inside of a show if or js show if.

1.0.3 - 2020-03-30

Fixed

  • update_ordinal_numbers() and update_ordinal_function missing from docassemble.base.util.
  • sql ping workaround for SQL connections being cut off.

1.0.2 - 2020-03-25

Fixed

  • Fixed issue with incomplete pull request by dependabot.

1.0.1 - 2020-03-25

Fixed

  • Deprecated use of access token in URL parameter when retrieving branch listing from GitHub API when repository reference uses an oauth-basic URL.

1.0.0 - 2020-03-22

Added

  • The show_country keyword parameter for the .on_one_line() and .block() methods of the Address class.
  • The international keyword parameter for the .block() method of the Address class.
  • The assemble_docx() function.

Changed

  • Switched to a different versioning system. The stable branch on GitHub will be version 1.0. Patch versions within version 1.0 (1.0.1, 1.0.2, etc.) will be for bug fixes and security upgrades only. The master branch on GitHub will be version 1.1. Patch versions within version 1.1 will include bug fixes as well as feature enhancements.
  • The omit_default_country parameter of the .on_one_line() method of the Address class is deprecated.

Fixed

  • Bug with restrict input variables and attachment e-mailing and downloading.
  • pip show inefficiency unnecessarily slowed down initial start up time.

0.5.111 - 2020-03-20

Added

  • The auto open option for the sections block.
  • The pages() method for Twilio fax status.

Fixed

  • The caret next to automatically closed subsections in the section navigation bar defaulted to the wrong setting.
  • The received() method of the fax send status did not correctly respond True when the fax was in 'delivered' status.
  • Error message when clicking the back button under certain circumstances.

0.5.110 - 2020-03-17

Fixed

  • Bug affecting raw global javascript.

0.5.109 - 2020-03-11

Changed

  • Deleting an item in a table now undefines there_is_another when it is True.

Fixed

  • The bootstrap theme in the Configuration will apply to interviews if bootstrap theme in features is not set.
  • Errors in global CSS and JS Configuration directives not intercepted and logged.

0.5.108 - 2020-03-08

Fixed

  • Issue with bootstrap theme and other Configuration directives that require Flask URL formation.

0.5.107 - 2020-03-03

Changed

  • More flexible handling of default values with datatype: date.
  • The allow embedding Configuration directive now accepts the value 'Lax', which is the default.

0.5.106 - 2020-02-29

Changed

  • LibreOffice Word to PDF conversion no longer reduces image resolution.

Fixed

  • Log server in multi-server mode accessed on wrong port.
  • URL parameters stripped when redirecting to login when allow anonymous access is False.

0.5.105 - 2020-02-26

Changed

  • If the database is PostgreSQL, the Alembic table alteration introduced in 0.5.97 for MySQL compatibility purposes is no longer applied by default because it might take too much time on a server with a large SQL database. The discrepancy between the SQLAlchemy column type specification (varchar) and the actual PostgreSQL column types (text) is harmless. If your SQL database is not large, you can set force text to varchar upgrade: True in your Configuration before upgrading to force the column type alteration to take place during the upgrade. After upgrading to 0.5.105+, you can remove force text to varchar upgrade from the Configuration. This is only applicable if upgrading from 0.5.96 or before; if you already upgraded to 0.5.97 - 0.5.104, then the alteration has already taken place.

Fixed

  • Upgraded bleach due to security vulnerability.

0.5.104 - 2020-02-25

Fixed

  • Error with allow embedding.

0.5.103 - 2020-02-23

Fixed

  • Error with DAContext variables.

0.5.102 - 2020-02-23

Added

  • The user auto delete Configuration directive.
  • The allow embedding Configuration directive, which if True sets the SameSite flag in cookies to None.

Changed

  • The SameSite flag is now set to Strict in cookies by default. For the old behavior, set allow embedding: True in the Configuration.

0.5.101 - 2020-02-23

Changed

  • Playground syntax highlighting now highlights Python code as Python code.

Fixed

  • The interview_menu() function did not accept parameters.

0.5.100 - 2020-02-20

Added

  • The .data_type_guess() method of DACatchAll.
  • The .keys() method of DAStore.

Fixed

  • Issue with default values after input validation fails and two fields set the same variable.

0.5.99 - 2020-02-19

Added

  • Catchall questions.

Fixed

  • When item under edit in a table has no question associated with it, an error was raised only if the item was first.

0.5.98 - 2020-02-18

Fixed

  • Typo causing /playgroundstatic file links to fail.

0.5.97 - 2020-02-17

Added

  • The forget prior option for action buttons.

Changed

  • Calls to subprocesses now have timeouts.
  • Database columns used as indices changed from text to variable character.

Fixed

  • Bug with table export.

0.5.96 - 2020-02-15

Changed

  • depends on no longer implies need.

0.5.95 - 2020-02-14

Added

  • The show incomplete and not available label options for table blocks.
  • The gathering_started() method of groups.

0.5.94 - 2020-02-13

Added

  • The allow external auth with admin accounts Configuration directive.
  • The url parameter feature of url_of().

0.5.93 - 2020-02-13

Changed

  • code blocks with event work with depends on now.
  • Playground folders have download buttons now.
  • re and json are now available inside the interview namespace.

Fixed

  • Let’s Encrypt issue.

0.5.92 - 2020-02-11

Added

  • The add_separators() function.
  • The session error redirect url Configuration directive.

Changed

  • Calling as_noun() on a group with one item will return the noun_singular() of the applicable noun.

0.5.91 - 2020-02-07

Added

  • The /api/interview_data API endpoint.

Fixed

  • Interview cache not cleared after Playground pull.

0.5.90 - 2020-02-06

Added

  • The convert_to method of DAFile.

Changed

  • Functionality of depends on extended to additional block types.

0.5.89 - 2020-02-04

Changed

  • Backend health monitor HTTP server moved to port 8082 from port 8080.

0.5.88 - 2020-02-03

Added

  • The response_code option for response() and json_response().
  • The sendgrid api key Configuration directive for sending e-mail using the SendGrid API.

Changed

  • A question with a Continue button that sets a variable to True, or a review screen with a Continue button instead of a Resume button, can be indicated with continue button field instead of field.

0.5.87 - 2020-02-02

Fixed

  • Overwriting of README in Playground Packages when README.md is in a first level subfolder.
  • Fields hidden by show if that uses code could prevent the display of a question.

0.5.86 - 2020-01-31

Added

  • The default_for class method and is_object attribute of CustomDataType.

Changed

  • The datatype of area should now be expressed as input type: area. For backwards compatibility, datatype: area still works.

Fixed

  • Bug in /api/file introduced in 0.5.85.

0.5.85 - 2020-01-28

Added

  • CSS classes on HTML elements related to attachments.

Fixed

  • Missing static file in existing package generated exception instead of a 404 error.

0.5.84 - 2020-01-27

Added

  • The restrict input variables Configuration directive.
  • The allowed to set question modifier.

Fixed

  • PDF image overlays failed with any image that contained a density in the metadata.

0.5.83 - 2020-01-26

Added

  • Input validation features for CustomDataType classes.
  • Ability to use DAOAuth without being logged in.

Fixed

  • JavaScript failure on error screens during interviews.

0.5.82 - 2020-01-23

Added

  • Warnings in the logs if unrecognized keys used in interview YAML dictionaries.

Fixed

  • The disable others feature interfered with the show if feature.

0.5.81 - 2020-01-22

Added

  • The allow updates Configuration directive and DAALLOWUPDATES Docker environment variable.

Fixed

  • 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 set_session_variables().

0.5.79 - 2020-01-18

Added

  • The convert_file API endpoint.

Fixed

  • Incorrect tab order in Playground Pull.

0.5.78 - 2020-01-14

Added

  • The depends on modifier.
  • The on change block.
  • The invalidate() function.
  • The .invalidate_attr() method of DAObject.
  • The invalidate option in a review block.

0.5.77 - 2020-01-12

Added

  • Ability to convert DOCX to PDF using CloudConvert.
  • The cloudconvert secret Configuration directive.

0.5.76 - 2020-01-08

Fixed

  • Playground variables sidebar did not always switch to the most recently-run interview.
  • Restart process used IP address and port that may not be available internally.

0.5.75 - 2020-01-07

Added

  • The date format, datetime format, and time format interview-wide defaults.

Fixed

  • Line breaking issue with terms and auto terms.

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

  • The admin full width Configuration directive.
  • The wrap lines in playground Configuration directive.

Changed

  • Moved Download button to below the editor in the Playground.

Fixed

  • Bug in legal.py.
  • Not safe to concatenate a DAList and a DAEmpty.

0.5.71 - 2020-01-05

Changed

  • Discontinued support for Python 2.7.

0.5.70 - 2019-12-30

Added

  • The phone_number_formatted() function.
  • The fr-words.yml translation file in docassemble.base.

Fixed

  • Errors when building the Dockerfile on the ARM architecture.

0.5.69 - 2019-12-24

Added

  • The .user_access() and .privilege_access() methods of DAFile.
  • The persistent, private, allow users, and allow privileges specifiers for attachments and field modifiers for datatype: file fields.

Fixed

  • User could not access a private and persistent file after the deletion of the session in which the file was created.
  • Issue with js show if and list collect.

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

  • The help generator and image generator field modifiers.

Fixed

  • Error when 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 DAWeb object.
  • The Configuration page now reports the underlying Python version.

Fixed

  • The PATCH endpoints for API-related API calls only accepted URL parameters.
  • The step specifier for datatype: range fields was not effective.
  • The re_run_logic() function did not re-run from the start of the interview logic in all situations.
  • The redis directive in the Configuration did not support passwords.
  • 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 url_args.
  • 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

  • JavaScript error, introduced in 0.5.31, impeded embedded field validation.
  • The default interview was ignored if a dispatch directive existed.
  • Error in package listing when installing from GitHub.

0.5.61 - 2019-12-11

Fixed

  • The subtitle screen part was not updated correctly by set_parts().
  • In the Playground, the “Share” link was not updated when the “Variables, etc.” file name changed.

0.5.60 - 2019-12-09

Fixed

  • Issue with supersedes.

0.5.59 - 2019-12-09

Fixed

  • Issue with supersedes.

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 modules or imports block.

0.5.57 - 2019-12-09

Changed

  • Different way of finding GitHub e-mail address.

Fixed

  • Cron issues.

0.5.56 - 2019-12-08

Added

  • The action buttons specifier for questions.

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

  • The confirm registration Configuration directive.

Changed

  • CSRF errors pop up in a “flash” box.
  • Cron jobs run with nice 19 (system upgrade required for this change).
  • 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

  • The hook_on_remove() method.
  • The SQLObjectList, SQLRelationshipList, StandardRelationshipList, and SQLObjectRelationship classes in docassemble.base.sql.
  • The .any(), all(), and .filter() class methods of SQLObject.
  • The .has_child(), .add_child(), .get_child(), .del_child(), .has_parent(), .add_parent(), .get_parent(), and .del_parent() methods of SQLObject.
  • The _session attribute of SQLObject.
  • 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.

Changed

  • The message parameter of .add_action() has been renamed to label (backwards-compatibility is maintained).
  • The .get_session() method of SQLObject has been removed in favor of the ._session attribute.

0.5.52 - 2019-11-29

Fixed

  • Bug in package update script.

0.5.51 - 2019-11-28

Changed

  • The pt-words.yml file has been renamed to pt-br-words.yml. If you are using this file, you will need to change your words configuration.

Fixed

  • HTML codes non-printable in dropdown lists.

0.5.50 - 2019-11-26

Added

  • The inline_markdown Jinja2 filter.

Fixed

  • 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

  • The external keyword parameter for the .url_for() method.

Changed

  • 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 browser’s session.
  • 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 behavior.
  • A superscripted question mark icon is now shown in the green text when 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 server.
  • 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

  • The prevent_dependency_satisfaction decorator.
  • The interview delete days by filename Configuration directive.
  • The review button color and review button icon options under features.
  • The sleep option for response() and command().

Fixed

  • Cron job inefficiencies.
  • JavaScript error when using check in and list collect at the same time.
  • Error when admin user signs in with a social login.
  • An input type: ajax in list collect did not allow adding additional items.
  • Ampersands in Jinja2 code were converted to &amp;.

0.5.46 - 2019-11-21

Fixed

  • Possible race condition in interview_list().

0.5.45 - 2019-11-20

Added

  • The backup directive under db.

Fixed

  • 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 template.

Fixed

  • 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 project.
  • HTML typo that was introduced in 0.5.40.
  • Problem unpickling from 2.7.

0.5.40 - 2019-11-15

Added

  • The button style Configuration directive.
  • The disable analytics option under features.

Fixed

  • The LDAP login feature was not compatible with the new version of the python-ldap package.

0.5.39 - 2019-11-13

Changed

  • Multi-server syslog system improved.
  • objects_from_file() now accepts DAFile and related objects.

Fixed

  • Problem with 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 lettuce.

Fixed

  • Web sockets logs not sent to syslog.
  • RABBITMQ and 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 mount.
  • The collect statistics Configuration directive.

Changed

  • External PostgreSQL database created if it does not exist.

Fixed

  • Dependency on 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.

Fixed

  • Deleted or renamed playground modules not culled from Python installation.
  • Content of new file in Playground lost if filename blank.
  • Erroneous session parameter added to result of interview_url_action() if i specified.

0.5.34 - 2019-10-30

Fixed

  • Erroneous dependency on pkg-resources in docassemble.base for Python 2.7.

0.5.33 - 2019-10-30

Changed

  • All Python dependencies have version numbers explicitly indicated.
  • Backend server health check tests for completion of initialization.
  • The websockets ip Configuration directive no longer defaults to localhost.

Fixed

  • Better handling of Markdown when passing values to a DOCX file directly.
  • Ordinal functions now accept arbitrary keyword arguments.
  • Some phrases for translation not detected.
  • The verbatim() function did not escape formatting characters in some circumstances.

0.5.32 - 2019-10-25

Added

  • ENVIRONMENT_TAKES_PRECEDENCE Docker environment variable.
  • The use minio Configuration directive.
  • Added account_type as a response from `get_user_info().

Changed

  • Improved backup and logging in multi-server configuration.
  • Any admin can upgrade or downgrade packages.

Fixed

  • The subtitle did not work with set_parts().
  • 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 code in content file specifiers of templates and attachments.

Changed

  • When labels above fields is used, the input element will now be wrapped in a <div> with CSS class dafieldpart.
  • Server-side validation errors are now scrolled to when the screen loads.

Fixed

  • 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.

Fixed

  • Problem with Google Drive Sync and zero-byte files.

0.5.28 - 2019-10-10

Fixed

  • Problem with NGINX and POSTURLROOT.

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.

Fixed

  • NGINX configuration omitted POSTURLROOT.

0.5.25 - 2019-10-09

Changed

  • Configuration page now shows a listing of errors in the Configuration, if there are any.

Fixed

  • 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

  • The /api/fields endpoint.
  • The use cloud urls directive in the Configuration.

Fixed

  • Miscellaneous problems with ajax field type.
  • Syntax with Let’s Encrypt renewal not compatible with all configuration types.
  • Problem with obtaining JSON version of question where 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 package.

0.5.20 - 2019-10-04

Fixed

  • Problem with office task pane.
  • Problem with YAML in field scanner in utilities.
  • Problem with 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.
  • The verbatim() function.

0.5.17 - 2019-09-26

Added

  • An option for assembling text files by setting raw: True under attachment.

0.5.16 - 2019-09-25

Added

  • Custom datatype feature.

Fixed

  • Session-related bug.
  • Thumbnail generation bug.
  • Image icon problems.
  • External URLs calculated inconsistently.

0.5.15 - 2019-09-23

Added

  • The css class screen part.
  • The allow anonymous access Configuration directive.

Fixed

  • Session-related bug.

0.5.14 - 2019-09-23

Fixed

  • Markdown of single-column tables not recognized.

0.5.13 - 2019-09-22

Added

  • The use_objects option for objects_from_file()
  • The use objects option for objects from file.

Changed

  • The objects_from_file() function and the objects from file block now support JSON files as well as YAML files.

Fixed

  • Transitional error related to session upgrade.

0.5.12 - 2019-09-21

Changed

  • Users can run multiple sessions in different browser tabs.
  • The i URL parameter is required for any endpoint that uses the current sesion.
  • The DAEmpty class now supports comparison operators.

Fixed

  • 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 DADict.
  • 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

  • The symbol keyword parameter of currency().
  • The currency_symbol keyword parameter of set_locale().

Fixed

  • Problem with disable others when allow non-idempotent questions was False.
  • Problem with reconsider under certain circumstances.
  • Error when 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 data with use objects.
  • Error when non-base64 dictionary keys happened to be valid base64.

0.5.8 - 2019-09-11

Added

  • The delattr method of the DAObject class.

Changed

  • Different behavior when allow non-idempotent questions is set to False.

Fixed

  • Unpickling errors in user_interviews() not trapped appropriately.

0.5.7 - 2019-09-10

Changed

  • The url_action_perform() and url_action_call() JavaScript functions are renamed to action_perform() and action_call(). Aliases are in place for backwards-compatibility.
  • Widths of images inserted into DOCX files now support centimeters and twips as units.
  • The continue button field can now be used with other types of questions that set variables, rather than just fields.

Fixed

  • Unpickling errors in user_interviews() not trapped.

0.5.6 - 2019-09-08

Added

  • Option in the JavaScript flash() function to clear existing messages.

Fixed

  • Error when displaying the JSON form of certain questions.
  • Error when using Value objects in the choices of a datatype: object field.

0.5.5 - 2019-09-07

Added

  • The require gathered specifier for tables.

Changed

  • Running .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 restarts.

Fixed

  • Erroneous message about starting new interview was appearing on restart.
  • 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

  • The maximum content length was being superseded by a NGINX content length limiter.
  • Word add-in bug.

0.5.3 - 2019-09-04

Added

  • The exit url specifier under metadata.

0.5.2 - 2019-09-03

Fixed

  • S3 error.

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

  • The advance_progress_meter option for the /api/session POST API endpoint.
  • The DAWEBSERVER Docker environment variable and the web server Configuration directive.
  • The S3ENDPOINTURL Docker environment variable and the endpoint url Configuration directive under s3.

Changed

  • 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.
  • The get_session_variables() and set_session_variables() functions use the current user’s decryption key by default.

0.4.80 - 2019-08-22

Fixed

  • Setting of __version__ in Python 2.7 raised Unicode error.
  • Back button after action in URL repeated the action.
  • The progress value was missing from the JSON representation of the question.

0.4.79 - 2019-08-21

Added

  • The SQLObject class.
  • The input type called ajax.
  • The paragraphs Jinja2 filter.

Changed

  • The __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 git merge to merge changes, which means it might fail if a commit would overwrite changes.
  • The Playground packages folder now allows for committing to a new remote branch.

Fixed

  • Incorrect behavior during initial visit to /interview when interview uses unique sessions.
  • Interview advanced a step despite validation code raising an exception.

0.4.78 - 2019-08-15

Added

  • The features option labels above fields.

Fixed

  • Errors with sessions are unique and required privileges.

0.4.77 - 2019-08-14

Added

  • The enable playground Configuration directive.

Changed

  • The behavior of the label option of list collect no longer prints text before 1., 2., etc. Now the label supplies the whole label for the item, and it can include the number by way of the index variable.

Fixed

  • The list collect feature raised an exception when the field definition included Mako substitution.
  • Non-required upload fields were creating zero-byte files on some servers.

0.4.76 - 2019-08-12

Changed

  • The syslog-ng server is now started after the web server.

Fixed

  • 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

  • The administrative interviews Configuration directive
  • The sessions are unique, required privileges for listing, and hidden specifiers under metadata.

Changed

  • The words system no longer uses code names like pdf_message and save_as_multiple.
  • The 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 /list.

Fixed

  • Passing an asterisk in a list to Flask-CORS resulted in a regular expression error.
  • Not all Flask packages accept integers as the PERMANENT_SESSION_LIFETIME.

0.4.74 - 2019-08-09

Fixed

  • The undefine() function did not always find the interview answers.

0.4.73 - 2019-08-09

Added

  • Support for noun pluralizing and verb conjugation in Spanish, French, Italian, German, and Dutch.
  • Additional methods for DAOAuth objects.

Changed

  • The output of the interview_menu() function, the /api/list endpoint, and the /list?json=1 endpoint now include interview metadata.
  • The undefine() function now accepts multiple variables names.

Fixed

  • 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 fields with 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 translations.
  • JavaScript evaluated in local context rather than global context.
  • Language not set when e-mailing assembled document in the background.

0.4.71 - 2019-08-06

Changed

  • API for making user accounts inactive now supports permanent deletion.
  • API for setting variables now supports initializing DAObjects.
  • Multiple choice options specified with code can be specified with lists of tuples.

Fixed

  • 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.
  • Configuration directives session lifetime seconds, babel dates map, admin can delete account, user can delete account, and delete account deletes shared.

Changed

  • In tables, ordered dictionaries will use their built-in order.
  • Base64 padding removed from field names.

Fixed

  • Poppler upgrade interfered with width of images in popups.
  • File upload widget JavaScript bug.

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

  • The /api/resume_url, /api/temp_url, /api/config, /api/package, and /api/package_update_status API endpoints.
  • The expire and session parameters of /api/login_url.
  • The hook_on_gather() and hook_after_gather() methods of DAList, DADict, and DASet.

Fixed

  • Bug in the complete_elements() method of DADict.
  • Incomplete support for editing lists that have auto_gather turned off.

0.4.67 - 2019-07-25

Added

  • The confirm option for table editing.

Changed

  • The “Select…” option on a dropdown is omitted when the field is required and a default value is selected.

Fixed

  • The keys() method of DADict was removed when keys included in constructor.
  • The language did not switch unless it did not match the default language.
  • Restart buttons did not work from event screens.

0.4.66 - 2019-07-23

Changed

  • Allow sending multiple invite e-mails at once.

Fixed

  • 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

  • Upgraded CSS and JavaScript dependencies.

Fixed

  • JavaScript for file uploads was incompatible with a Firefox add-on.
  • Error during initialize process possibly caused by stderr being made non-blocking.
  • Bug in indent() function.
  • File upload previews shown twice under certain circumstances due to show if JavaScript.

0.4.63 - 2019-07-16

Added

  • The /resume endpoint.

Fixed

  • Unpickleable object added to the document cache in the internal variables.

0.4.62 - 2019-07-14

Added

  • The temporary and once_temporary options to the interview_url() and related functions.

Fixed

  • Too many monitor connections led to SQL error.
  • Some functions did not work in actions.

0.4.61 - 2019-07-10

Added

  • The set_status() and get_status() functions.

Changed

  • Disabled pip cache.
  • Restored pre-0.4.55 behavior allowing Mako in multiple choice values.

0.4.60 - 2019-07-09

Changed

  • More robust Docker scripts.

Fixed

  • Error with cloud cache.

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.

Fixed

  • Fatal error when invalid global javascript file referenced in Configuration.

0.4.58 - 2019-07-05

Changed

  • CORS headers now handled by Flask rather than Apache.
  • The cross site domain Configuration directive is renamed to cross site domains and the value must be a list.
  • Removed the CROSSSITEDOMAIN Docker environment variable.
  • More frequent deletion of temporary files.

0.4.57 - 2019-07-01

Added

  • The explain(), clear_explanations(), and explanation() functions.

Fixed

  • Problems with Google sign-in on Python 3.

0.4.56 - 2019-06-29

Added

  • The initializeObject method of DAList.

Fixed

  • Error gathering DAList of datatype: checkboxes items.
  • Error when using default and list collect.
  • Errors with DAStore.

0.4.55 - 2019-06-28

Added

  • The DAStore object.

Changed

  • Mako no longer allowed in non-label items of choices or buttons.
  • If backup days is 0, no daily backups will be done.

Fixed

  • Error when dialects enabled under voicerss.

0.4.54 - 2019-06-26

Added

  • The language map directive under the voicerss Configuration directive.

Changed

  • Renamed languages under the voicerss Configuration directive to dialects (with backwards compatibility).

Fixed

  • 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

  • Jinja2 filters markdown and RichText.

Changed

  • Ampersand correction for DOCX now happens in Jinja2 even if pipe already used.

Fixed

  • The hint was missing from the data representation of a field.
  • The note and html were missing from the data representation of a field when not standalone.
  • Group editing did not work with non-object lists and dictionaries.
  • Buttons on message() screens did not work.

0.4.52 - 2019-06-18

Added

  • The javascript option for log().

Fixed

  • Potential error in Playground sidebar if the same variable name is used for two different types of object.
  • Error if json URL parameter is not an integer.

0.4.51 - 2019-06-13

Changed

  • Added the initial option for update on start.
  • Using a different mechanism for restarting servers after a software update.

Fixed

  • LibreOffice failing when multiple instances of LibreOffice run simultaneously.

0.4.50 - 2019-06-12

Added

  • The update on start Configuration directive.
  • The expose websockets, websockets ip, and websockets port Configuration directives.

Changed

  • The 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 /.
  • The /api/session POST API endpoint will now convert dates to DADateTime objects, unless the raw parameter is 1.

Fixed

  • Triple spacing in RTF documents.
  • Flask route ambiguity with /api/user/new.

0.4.49 - 2019-06-08

Changed

  • Revised the CSS classes for error messages.

Fixed

  • Word add-in did not work for servers with a root other than /.

0.4.48 - 2019-06-06

Added

  • The .is_encrypted() method of DAFile and other file objects.

Fixed

  • Dependency problems when docassemble.base was used without docassemble.webapp.
  • Errors in the DAFileCollection version of num_pages() and size_in_bytes().
  • JavaScript used .includes() and .startsWith() methods, which are not universally supported.

0.4.47 - 2019-05-31

Added

  • Option for 'link' style buttons with action_button_html().

Fixed

  • Some types of fields gave errors with list collect.
  • Error re UserModel.

0.4.46 - 2019-05-30

Fixed

  • Recursion error with capitalize() function.
  • A CSS class was called vspace instead of davspace.
  • Multiple choice options not included in translation spreadsheets.

0.4.45 - 2019-05-27

Added

  • The DAOAuth class.

Changed

  • Made modifications to facilitate embedding interviews in a <div> in another site.
  • CSS and JavaScript files are now bundled.

Fixed

  • 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

  • Version-specific caching of CSS and JavaScript files.
  • The sort() and sort_elements() methods for DAList.

Changed

  • terms and auto terms are now compatible with the translations block.
  • Files in the Playground will be served from server rather than block storage.

Fixed

  • static_image() did not work with unqualified file names.
  • Some initial blocks were not included in side-by-side translation files.
  • Orphaned translations did not receive syntax highlighting in translation files.
  • Indented Mako was not receiving syntax highlighting in translation files.
  • Translations containing emojis were being truncated in translation files.

0.4.43 - 2019-05-16

Added

  • The tag parameter for /list, /api/list, and interview_menu().
  • The DAContext object and the use objects option for the data and data from code blocks.

Fixed

  • 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 da prefix.

Fixed

  • Errors with SMS interface.
  • Subclasses of DAList were not allowed in list collect.
  • Inefficiency with last_access_time().

0.4.41 - 2019-05-02

Added

  • The get_docx_variables() method of DAFile and other file objects.

Fixed

  • ProxyFix settings for Docker containers behind reverse proxies.

0.4.40 - 2019-04-29

Fixed

  • Python 2.7 error.

0.4.39 - 2019-04-29

Fixed

  • Variables could not be converted to JSON where None used as dictionary key.
  • Compile errors due to unused non-Python-3-compliant code in copy of rtfng.
  • 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

  • The single_to_double_newlines() function.
  • The get_pdf_fields() method of DAFile and other file objects.
  • The playground examples directive in the Configuration.
  • The new markdown to docx directive in the Configuration.

Changed

  • 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.

Fixed

  • 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.

Fixed

  • PAM failure in cron on Amazon Linux.
  • Link to show help tab called wrong JavaScript function.

0.4.35 - 2019-04-20

Added

  • The translations block and the interview phrase translation file download utility.

0.4.34 - 2019-04-16

Changed

  • Downgraded s3cmd.

0.4.33 - 2019-04-16

Added

  • XSENDFILE Docker environment variable.

Changed

  • API will now process JSON as well as form-data.
  • By default, xsendfile will be set to False in the initial Configuration if BEHINDHTTPSLOADBALANCER is true.

Fixed

  • New version of ProxyFix not called with arguments for processing HTTP scheme.

0.4.32 - 2019-04-15

Added

  • The as_df() method of a table.
  • The segment, segment id, and ga id specifiers.
  • The log format Configuration directive.
  • German translations.

Changed

  • Upgraded s3cmd.

Fixed

  • Error when reading log files in multiple server configuration in Python 3.

0.4.31 - 2019-04-07

Fixed

  • Errors with read_qr().

0.4.30 - 2019-04-07

Added

  • The editable mimetypes and editable extensions configuration directives.

Changed

  • The 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.

Fixed

  • Problem with write() method of DAFile.
  • Problem with creating packages when author not defined.
  • Problem with source_code when debug mode not in effect.

0.4.29 - 2019-03-28

Added

  • The .size_in_bytes() method for DAFile.

Fixed

  • Python3 could not write to S3.

0.4.28 - 2019-03-28

Added

  • Portuguese translations.

Fixed

  • 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

  • The list collect feature for allowing users to add multiple items of DAList on one screen.

Fixed

  • GitHub error with packages that have dependency packages with null attributes.

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 the Trash.

Fixed

  • KeyError during initial GitHub repository creation.
  • Exception could be raised if docstring in a dependency module was bytes.
  • Methods not appearing in Playground sidebar in Python 3.
  • File uploads failing in Internet Explorer.

0.4.24 - 2019-03-21

Added

  • The maximum content length configuration directive.
  • The image upload type configuration directive, feature, and field specifier.

Fixed

  • Error in log service.
  • A long interview title could cause wrapping in the navigation bar on mobile.

0.4.23 - 2019-03-19

Added

  • The progress bar multiplier and progress bar method features.

Changed

  • Embedded blocks can use generic objects and iterators.
  • Help buttons are now “info” color instead of “secondary” color.

Fixed

  • Error when uploading files through the API.
  • Error resulting from add_action() under some circumstances.

0.4.22 - 2019-03-17

Fixed

  • Section setting error.

0.4.21 - 2019-03-16

Added

  • The nav.hide(), nav.unhide(), and nav.visible() methods.

Fixed

  • 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

  • The set_save_status() function.
  • The id_tag option to action_button_html().
  • Field number in error messages.

Changed

  • Removed redirects after non-standard URL parameters.
  • The add_action() button behaves more consistently with .gather().
  • The new_window option to action_button_html() can be used to set the target of the hyperlink.

Fixed

  • Field trim JavaScript was affecting file variables and triggering an error.

0.4.19 - 2019-03-10

Added

  • The only sets modifier.

Changed

  • The allow non-idempotent questions specifier in metadata was removed and replaced with a Configuration directive.
  • The allow non-idempotent questions Configuration directive is set to False by default in the default Configuration. This will affect new servers but not existing servers.
  • The API validation Referer constraint checks against the Origin if there is no Referer.

0.4.18 - 2019-03-09

Added

  • Fullscreen option for code editing.

Fixed

  • Python 3 errors during GitHub integration process.

0.4.17 - 2019-03-08

Added

  • The python packages Configuration directive and the PYTHONPACKAGES Docker environment variable.

Fixed

  • Error when updating references in .docx file.
  • object_type_repr error raised from Jinja2.
  • filter() returning zero elements from non-empty list caused re-gathering.
  • Dueling 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

  • The none of the above specifier can be used with datatype: object_radio.
  • The 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

  • The allow reordering specifier in table.

Fixed

  • Unicode problem reading S3 keys as strings.

0.4.11 - 2019-02-28

Added

  • The error action specifier in metadata.

0.4.10 - 2019-02-27

Added

  • The tagged pdf option for docx template file document assembly.

Changed

  • The pdf/a options now create PDF/A documents directly with LibreOffice.
  • The comma_list() and 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 send_sms.

Changed

  • Non-required file upload variables will be set to None instead of being ignored.

Fixed

  • Unicode error during package upgrade when pip show returns bytes that cannot be decoded as UTF-8.
  • JavaScript error with Google Maps.

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.
  • The instanceName on file uploads.

0.4.6 - 2019-02-19

Changed

  • The error help metadata specifier now accepts a dictionary of language codes and messages.

Added

  • The verbose error messages configuration directive.

Fixed

  • Unicode problem with Markdown documents.
  • Deep copy error with get_question_data().

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 re-evaluated.
  • Back button embedded in question is now “link” style.

Added

  • The subject_as_html() and content_as_html() methods of objects generated from a template.
  • The hide navbar feature.
  • The js_target URL parameter for embedding the docassemble interview into an element on another web site.
  • The gathered_and_complete() method of the DAList and DADict.

Fixed

  • Error logging in with Auth0 in Python 3.
  • The 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

  • The convertapi secret configuration directive.
  • API endpoints for listing and deleting Playground files.

Fixed

  • JSON serialization with unusual dict keys.
  • Screen scrolling problem in Playground folders.

0.4.3 - 2019-02-13

Added

  • The string_types and PY2 names, imported from the six package.
  • The allow non-idempotent questions specifier in metadata.

Changed

  • The post screen part is now positioned below the right screen part on small screens.

Fixed

  • The screen parts feature was not fully implemented and documented.
  • The 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 'None' instead of being ignored.

0.4.2 - 2019-02-10

Added

  • Additional SQL indexes.
  • The default screen parts block.
  • The required privileges specifier in metadata.

Changed

  • The set_title() function was renamed to set_parts() and now supports setting any screen part.

Fixed

  • Error with OCR.
  • Error with screen reader.
  • Error with concatenate_files().
  • The current section when showing a nav in a question was not always current.
  • Wrong formatting of subsections in sections sidebar under some circumstances.

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

  • The DAPYTHONVERSION Docker environment variable.
  • The text_type() function.

Changed

  • The system is now compatible with Python 3.5.
  • The subdivision_type() algorithm was improved.

Fixed

  • The update script failed under some circumstances due to a SQL error.

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

  • The resume interview after login configuration directive.

Changed

  • The /api/session API endpoint and the set_session_variables() function now accept the event_list parameter and can get past force_ask() diversions.
  • More robust code injection detection mechanism.

Fixed

  • Unicode error with certain Spanish numbers.

0.3.34 - 2019-01-20

Added

  • Customizability of standard validation messages using the validation messages field modifier or the default validation messages block.
  • Option to .geolocate() method to populate attributes of Address using a single-string address.
  • Options for setting alt_text using [FILE], [QR], .show(), and the .alt_text attribute on DAFile or DAStaticFile.
  • The .set_alt_text() and .get_alt_text() methods of file objects.
  • The template password option for pdf template file (new docker run required).

Changed

  • Upgraded Pandoc to version 2.5.1 (new docker run required).
  • UI changes for keyboard navigation of sections.

Fixed

  • 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 header.
  • API responses contain CORS-friendly HTTP headers.

Fixed

  • JSON error when running ocr_file_in_background().
  • XML error when assembling DOCX files.

0.3.32 - 2019-01-16

Changed

  • UI and HTML changes for accessibility.

Fixed

  • Timing of initialization of Google autocomplete fields resulted in JavaScript error in some circumstances.
  • 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.

Fixed

  • 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 stop and docker start. Alternatively, docker exec into the container and run supervisorctl restart watchdog.

0.3.30 - 2019-01-05

Added

  • The /api/login_url API endpoint.
  • The /api/user_info API endpoint.

Changed

  • The /api/user/new API endpoint will now create a random password if a password is not provided.

Fixed

  • The /api/user/new API endpoint used email when the correct parameter is username.

0.3.29 - 2019-01-03

Added

  • The question_name option for the POST method of the /api/session API endpoint and the set_session_variables() function.

Fixed

  • Unicode error from /api/secret.

0.3.28 - 2018-12-31

Added

  • The accept specifier for datatype: file fields.
  • The create_user() function.
  • The /api/user/new endpoint.

0.3.27 - 2018-12-24

Changed

  • Table edit attribute names treated as “follow up” actions.

0.3.26 - 2018-12-21

Changed

  • Reverted reconsider() to 0.3.24 version.

0.3.25 - 2018-12-20

Changed

  • Exception raised if unsafe filename used for a DAFile.

Fixed

  • Problem with caching of stand-alone attachment blocks.

0.3.24 - 2018-12-17

Added

  • The inline keyword parameter for the url_for() method.
  • The describe() method of the output of date_difference().

Changed

  • The result of date_difference() when reduced to text now runs the describe() method instead of stating the number of days.
  • The space_to_underscore() function now uses werkzeug.secure_filename() and replaces more than just non-ASCII characters and spaces.

Fixed

  • Error in .export() method of tables.

0.3.23 - 2018-12-15

Added

  • The get_question_data() function.

Fixed

  • Error from Playground sidebar for interviews using imports.

0.3.22 - 2018-12-14

Added

  • Insertion of PDF files into DOCX files.
  • Links in Playground sidebar to source code on GitHub.

Changed

  • Data representation of a question now includes plain attachment file numbers.

Fixed

  • 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

  • The object labeler option in fields.

0.3.20 - 2018-12-08

Added

  • The exclude_privileges keyword parameter of the last_access_time() function and related functions.

Changed

  • The /api/user_list API method and the get_user_list() function now return a user’s privileges under a dictionary key called privileges. Previously the key roles was used.

Fixed

  • The update() and has_key() methods of DADict did not work.
  • Multiple templates on a screen using iterators did not work correctly.
  • Browser back button sometimes required two clicks to go back one step.
  • Unhelpful error when uploading invalid file type to Wizard.
  • Temporary PDF files accumulating in /tmp.

0.3.19 - 2018-12-02

Added

  • The DAOrderedDict class.

Changed

  • Protections against adding non-modules to Modules folder.
  • Keep memory of visited sections when the available sections change.

Fixed

  • Visiting /user/sign-in or /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

  • The .show(editable=False) option for tables.
  • The include_dict option for interview_list().
  • The formatted_unit() method for Address.

Changed

  • Icons on the User List page highlighting users with special privileges.
  • Admin users cannot take away their own admin privilege.
  • Admin users cannot disable their own accounts.

Fixed

  • Validation error messages in admin pages were black when they should have been red.
  • Typo in .add_action() method for DADict().
  • Error during .export() because pandas erroneously requires a nanosecond attribute in dates.
  • Error in instanceName guessing in the context of a function.

0.3.16 - 2018-11-26

Added

  • The export() method of tables.

0.3.15 - 2018-11-26

Added

  • The overlay_pdf() function.

0.3.14 - 2018-11-25

Added

  • The .filter() method of the DAList class.
  • 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

  • Problem with value() using a variable as an iterator.

0.3.11 - 2018-11-15

Added

  • The /api/playground file upload feature.

0.3.10 - 2018-11-13

Added

  • The page after login feature.

0.3.9 - 2018-11-10

Added

  • The allow for, required for, allow sms, and allow app options of two factor authentication.
  • The progressive option for sections.

0.3.8 - 2018-11-04

Added

  • The backup days configuration directive.

Fixed

  • The word() function did not work on words with non-ASCII characters.
  • 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

  • Error importing textstat.

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.”

Fixed

  • Problem with editing lists where the complete_attribute is not defined by a code block.
  • No proper error message when a non-text string is used as a variable name in fields.
  • Problems with locking-related changes from 0.3.5.
  • Admin users were allowed to give admin privilege to users with social logins.
  • Python error in cron.py.

0.3.5 - 2018-10-23

Added

  • The edit_url_only and delete_url_only parameters to the item_actions() methods.
  • The url_only parameter to the add_action() method.
  • The url_ask() and action_button_html() functions.

Changed

  • A message parameter to add_action() is now passed through word().
  • Removed the new feature from 0.3.3 where interview answers are saved before a leave.
  • Different method of locking while copying playground modules.

Fixed

  • 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.

Changed

  • Editing a table will cause the definition of the complete_element attribute, if any, to be recomputed after the edit attributes are sought.
  • Interview answers saved before a leave.
  • Background task callbacks that raise exceptions will no longer save interview answers.

Fixed

  • Dependencies not being properly scanned from setup.py files.
  • 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.
  • The get() method of DADict did not work.
  • Random errors where dictionary cannot be retrieved (potential fix).
  • The minimum_number feature introduced in 0.3.2 did not work on tables based on DADict objects.
  • Elements could not be added through add_action() when the list was empty.
  • The 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

  • Using 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 minimum_number.
  • The edit option on a table can now use reference indices as well as attributes.
  • The default 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.

Added

  • The delete buttons option when using edit on a table.
  • The only_if_empty option on the reset_gathered() method.
  • The slice method of the DADict class.
  • The re_gather attribute of groups to basic-questions.yml.
  • The follow up option in a review block fields.
  • The reconsider() function.
  • The preloaded modules configuration directive.
  • The action_button_html() function.

Fixed

  • 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 spinner.
  • 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 review block.

Fixed

  • 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 changes.
  • Setting a minlength on a datatype: checkboxes field turns off the “None of the above” item.

0.2.102 - 2018-09-27

Changed

  • LibreOffice upgraded to version in jessie-backports.

Added

  • Options for new_session and exit_logout under buttons, command(), and url_of().

Fixed

  • Logging in with e-mail and password where e-mail already used for a social login generated an exception.

0.2.101 - 2018-09-25

Changed

  • The .copy_into() method of DAFile now accepts DAFile, DAStaticFile, DAFileList, and DAFileCollection objects as the argument, as well as the direct file path of the other file.

Fixed

  • Problem with converting to PDF after update references for some tables of contents.
  • The .copy_into() and .from_url() methods now update PDF and image information after the file contents change.

0.2.100 - 2018-09-23

Added

  • The forget_result_of() and re_run_logic() functions.
  • Additional test interviews.

Changed

  • note and html can now be used to insert text in the right column, along side a field.

Fixed

  • The minlength and maxlength modifiers did not work on checkboxes.
  • The 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

  • The back button and back button label modifiers.
  • The show login directive in interview metadata.

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.

Changed

  • It is no longer necessary to remove curly quotes from .docx Jinja2 code. They will be converted to straight quotes before processing.

Fixed

  • Google Maps JavaScript was loading synchronously, which slowed down loading.
  • A choices list could not contain a list of numeric, boolean, or NoneType values.
  • DAStaticFiles could not be inserted into .docx templates.

0.2.96 - 2018-09-12

Added

  • Integration between Microsoft OneDrive and the Playground.
  • The debug directive inside features.

Changed

  • Upgraded Font Awesome to 5.3.1.

0.2.95 - 2018-09-08

Added

  • The update references setting on attachments.

0.2.94 - 2018-09-05

Added

  • The redact() function and redact option on attachments.

Changed

  • The template and table blocks now become DALazyTemplate objects rather than DATemplate objects. Their contents are evaluated at the time they are reduced to text, not at the time they are created.

Fixed

  • Problem with currency() and other functions when used from a docx template file where undefined variables did not raise exceptions.
  • The create_new_interview() function caused unnecessary 4 second delay.
  • Users with user privileges could not access API key management.
  • The interview_url() function was returning a URL based on how the current request was made, rather than the actual URL for getting to an interview.

0.2.93 - 2018-08-31

Fixed

  • Problem with DATemplate variables with string indices.

0.2.92 - 2018-08-27

Added

  • The show progress bar percentage feature.

Changed

  • The background_response() function can be called using background_response('refresh') to refresh the user’s screen.

0.2.91 - 2018-08-25

Added

  • The getField() and setField() JavaScript functions.

Fixed

  • The fields version of background_response() could not set radio buttons.

0.2.90 - 2018-08-23

Fixed

  • Problem with checkboxes inside a show if.

0.2.89 - 2018-08-20

Changed

  • The variables_as_json() function now accepts include_internal as a keyword parameter.
  • The variables_as_json() function now produces pretty-printed JSON output.
  • Only ordinary users will see flash messages about switching to a different interview.

Fixed

  • 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 internal dictionary.

0.2.88 - 2018-08-20

Fixed

  • The recent version of WTForms is incompatible; set to 2.1.
  • The simplify parameter of get_session_variables() was fixed to True.

0.2.87 - 2018-08-19

Changed

  • Moved interview HTML into a <div> to provide compatibility with add-ons.

0.2.86 - 2018-08-17

Added

  • The js show if and js hide if field modifiers.
  • The val() JavaScript function.
  • The continue button field feature.

Changed

  • Upgraded Font Awesome to 5.2.0.
  • Two DALists added together will yield a DAList.

Fixed

  • zip_file() returned an empty archive when given a DAFileCollection.

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 values.

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.
  • Reducing a 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.

Fixed

  • Writing to DAFiles.

0.2.82 - 2018-08-08

Changed

  • Some exceptions raised by Jinja2 will now be accompanied by a snippet of document context.

Added

  • Initial support for Travis CI deployment.
  • Method .slurp() for DAFileList.

Fixed

  • Setting of text fields to None when the value is the string "None".
  • 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 to PDF.
  • Addresses that normalize without a street address.

0.2.81 - 2018-07-31

Changed

  • Interviews are now served from /interview rather than /. This 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.

Added

  • The root redirect url Configuration directive.
  • The include_internal parameter of all_variables().
  • Warning if mandatory is used on a block that does not support the mandatory modifier.

Fixed

  • Missing unique IDs for API calls.
  • HTML typo in Logs page.

0.2.80 - 2018-07-24

Added

  • The /me resource with information about the user.

Changed

  • 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

  • The append method to the DAList class now accepts an optional keyword argument set_instance_name.

Fixed

  • Any package name starting with base or demo was being blocked when allow demo was not set to False.

0.2.78 - 2018-07-17

Added

  • The index() method of the DAList class.

Changed

  • File uploads are now at the top of the screen in Playground folders.

Fixed

  • Problem with datatype: checkboxes and show if.

0.2.77 - 2018-07-13

Fixed

  • The post HTML was missing on signature pages.
  • The value() function was not working properly.

0.2.76 - 2018-07-11

Fixed

  • Possible fix for “group by” SQL error in user_interviews().

0.2.75 - 2018-07-11

Added

  • The step option for datatype: number and datatype: currency.

Changed

  • Fields with datatype: number are no longer limited to two decimal places.

Fixed

  • The “exit” command was logging the user out.

0.2.74 - 2018-07-11

Added

  • The error help configuration and metadata directives.
  • The .copy_shallow() and .copy_deep() methods of DAObjects.

Changed

  • Error e-mails now attempt to attach the interview variables as a JSON file.

Fixed

  • Error in cron about missing session_uid.
  • Auth0 login was erroneously enabled by default.

0.2.73 - 2018-07-07

Added

  • The set_instance_name option for use with elements when initializing a DAList.
  • The skip undefined option for review blocks.

Changed

  • The 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 <select> via JavaScript.

Fixed

  • Vertical spacing between buttons in the Actions column of a table.
  • Templates with variable names containing iterators were not being regenerated.
  • Default date values were not displayed in fields.

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

  • The undefine, recompute, and set options inside of a review block.

Changed

  • To indicate that a multiple-choice under fields should use radio buttons, a pulldown, or a combobox, use input type instead of datatype. The datatype can then be set to something else, like number. This change is backwards compatible.
  • Removed sublocality from normalized addresses.

Fixed

  • The show if JavaScript comparison is now more lenient when the values look like numbers.
  • The delete_all function did not delete all interviews.
  • The defined function did not work well with lists and dictionaries in the process of being gathered.

0.2.70 - 2018-06-14

Changed

  • Calls to force_ask() and calls to actions now result in more persistent variable seeking.
  • Improved editing of lists.

Fixed

  • Using show if with datatype: file.
  • Using show if with a value of 0.

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 None.
  • Required field markers show differently in some contexts.
  • Additional log messages for Google Drive.

Added

  • New Debian dependencies ttf-mscorefonts-installer, fonts-ebgaramond-extra, ttf-liberation, and fonts-liberation in Docker.

Fixed

  • 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

  • Login via Auth0.

Fixed

  • 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.

Changed

  • Comboboxes now accept free text input.

Fixed

  • PDF bookmarks restored after inserting images.

0.2.63 - 2018-05-25

Added

  • The error notification email configuration option.

Fixed

  • Error with PDF fields and signature overlay.

0.2.62 - 2018-05-23

Added

  • JSON interface to the “Variables, etc.” and list of Playground files.

Fixed

  • Error during invitation and registration.

0.2.61 - 2018-05-19

Changed

  • The disable others directive now accepts a list of fields.
  • Most natural language functions now accept an optional keyword parameter language.
  • The country and subdivisionfirst database fields have longer allowable lengths.
  • 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.
  • The validation_error() function and the DAValidationError error type.

Changed

  • The interview_list() function now returns temp_user_id.

Fixed

  • 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 users.
  • Visiting registration page while logged in did not redirect to My Interviews page.
  • 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.

Fixed

  • Problem with checkboxes inside of show if.
  • CSS problem with the “required” asterisk.

0.2.57 - 2018-05-07

Added

  • The validation_error() function.
  • The num_pages() method on DAFile, DAFileList, and DAFileCollection objects.

Changed

  • On the mobile signature page, the “Clear” button is replaced with a “Back” button.
  • Python validate code now works on document uploads.

Fixed

  • The question back button was missing from the buttons on the desktop signature page.
  • Problem with spacing of the question back button next to other buttons.

0.2.56 - 2018-05-07

Changed

  • The min and max field modifiers on datatype: date fields now accept a wider range of date formats.

0.2.55 - 2018-05-06

Changed

  • The DACloudStorage object can now be initialized to use Configuration directives other than s3 and azure.
  • The min and max field modifiers now work with datatype: date.

Added

  • The slurp() method for DAStaticFile objects.
  • Support for editing HTML and other text file formats in the Static Files folder of the Playground.

Fixed

  • List of branches in pull-down cut off at a certain length.
  • Live Help had problems with encryption.
  • Missing help button on field with choices.

0.2.54 - 2018-05-05

Fixed

  • Bug in set_info().

0.2.53 - 2018-05-02

Changed

  • Social logins now populate first and last name in the user profile.
  • The all_variables() function now has an optional keyword argument special that returns information about an interview that is not stored in the variables.

Added

  • Support for long_description in setup.py files.

Fixed

  • Update button in /updatepackage reverted package to master branch.
  • Unicode problem in /logs.

0.2.52 - 2018-05-01

Fixed

  • The setup.py file for docassemble.webapp did not depend on particular versions of docassemble.base and docassemble.

0.2.51 - 2018-05-01

Changed

  • The advocate privilege grants access to see user information using the API.
  • The interview_list() function and /api/interviews API now act upon interviews of anonymous users.

Fixed

  • Questions not centered on screen when navigation bar in use but empty.
  • Google Places API populating unit with subpremise and leaving city blank.

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 lettuce tests.

Added

  • The show dispatch link Configuration directive.

Fixed

  • Exception triggered by importation of word translation files with YAML errors.
  • The indefinite_article() function used “a” for any capitalized word.
  • Issue where Chrome extensions interfered with file uploads.

0.2.49 - 2018-04-15

Fixed

  • Use of deprecated flag when calling pip.

0.2.48 - 2018-04-14

Changed

  • The Address methods no longer require .city to be defined.
  • The Address object and the address autocomplete feature now use more of the possible address components of addresses returned by the Google APIs.

Fixed

  • 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

  • Bug in new show if code.

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.
  • The show if JavaScript feature now works with checkbox values.

0.2.44 - 2018-03-31

Added

  • The analytics id subdirective of the google Configuration directive.

Changed

  • Nested show ifs are supported.

Fixed

  • Exception caused by mandatory review blocks without an event, field, or sets.

0.2.43 - 2018-03-28

Changed

  • JavaScript specific to a question now executes after raw global javascript.

Fixed

  • Exception caused by ampersands in docx template field values.
  • Exception caused by unicode in parameters passed to include_docx_template().
  • Place Autocomplete returning undefined for some address components.

0.2.42 - 2018-03-25

Added

  • The zip_file() function.
  • The allow downloading modifier.
  • The centered feature.
  • The right question part.

Changed

  • The allow emailing modifier now accepts Python code.
  • Margins in navigation bar.

Fixed

  • Version of Flask-User.

0.2.41 - 2018-03-24

Added

  • The DACloudStorage and DAGoogleAPI objects.
  • The /api/file/<file_number> API.
  • The delete_variables option for the POST operation of the /api/session API.

Changed

  • Less stringent input sanitation so that Playground files with parentheses can be deleted.
  • Labels inside buttons will now wrap.

Fixed

  • Escaping of anchor text in DALinks.

0.2.40 - 2018-03-19

Added

  • The .complete_elements() method of DAList and DADict.

Fixed

  • Removed any dependency on import pip.

0.2.39 - 2018-03-15

Changed

  • The review block can now be used with field instead of event.
  • Temporarily removed warning about content file.

Fixed

  • Issue with pressing enter causing two screens to submit.

0.2.38 - 2018-03-14

Added

  • The show interviews link configuration directive.

Changed

  • The user profile link in the menu will always be shown if the user has admin privileges.
  • Different formatting of user list.
  • Author name and e-mail in “Packages” folder of Playground.

Fixed

  • Problem with show if not recognizing False value of checkbox yes/no field.

0.2.37 - 2018-03-10

Added

  • Example for user_logged_in().
  • Example for appending a row to a Google Sheet.
  • The scale option for the range datatype.

Changed

  • 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.

Fixed

  • Error when registering.

0.2.36 - 2018-03-08

Added

  • The DALink object type, which allows hyperlinks to be inserted into .docx files.

Changed

  • The showif() and showifdef() functions can now be configured to return a default value other than the empty string.

Fixed

  • 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.”

Fixed

  • Issues with unicode.

0.2.34 - 2018-03-06

Added

  • The main page pre, main page submit, and main page post configuration directives.
  • The pre, submit, and post metadata items.

Changed

  • Pressing enter has effect of pressing Continue, even on pages without input elements.

Fixed

  • Issues with unicode.

0.2.33 - 2018-03-04

Fixed

  • Problem with using Upgrade button.

0.2.32 - 2018-03-04

Added

  • The ldap login configuration directive. Using this feature will require a system upgrade (running a new instance), as the libsasl2-dev libldap2-dev Debian packages are required dependencies of the python-ldap Python module.

0.2.31 - 2018-03-02

Added

  • Configuration directives use font awesome and default icons.
  • CSS support for Material Icons.
  • The question help button feature.
  • Ability to label the help tab.

Fixed

  • 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.

Fixed

  • Page layout when side navigation bar in use.
  • Slow submit time when many checkboxes are used.

0.2.29 - 2018-02-25

Added

  • The define() function.
  • The features question back button and navigation back button.
  • The raw global css and raw global javascript configuration directives.

Changed

  • Main content block for page is now centered on desktop.

Fixed

  • 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

  • The enable remember me configuration directive.

Changed

  • The repr() of a DAList, DADict, or DASet is the repr() of its elements, and repr() triggers the gathering process.
  • The .salutation() method of the Individual object now uses the optional attributes .salutation_to_use and .is_doctor.

Fixed

  • Problem with exclude on a manual list of choices.
  • Lack of curly quote in “I don’t know” buttons.
  • JavaScript error introduced in 0.2.23 that interfered with hide if functionality.

0.2.27 - 2018-01-31

Added

  • The start_time() function.
  • The package protection configuration option.

Changed

  • The 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.

Fixed

  • Problem with branch name of new GitHub repository.
  • Problem with as_datetime() converting times to midnight when the argument is already a datetime object.
  • Problem with noyes and noyeswide checkbox fields.

0.2.26 - 2018-01-29

Fixed

  • Problem where format_date() was acting like format_datetime().

0.2.25 - 2018-01-29

Changed

  • Tweaks to the interview_url() function.

Fixed

  • Unicode error on interview page after interview decryption failure.
  • Problem with list gathering and .there_is_another.

0.2.24 - 2018-01-28

Fixed

  • Problem with missing uid in background tasks.

0.2.23 - 2018-01-28

Added

  • The DADateTime class.
  • The time and datetime datatypes for fields.
  • The format_datetime() function.
  • The /api/session/back API and the go_back_in_session() function.
  • The /api/privileges and /api/user/<user_id>/privileges APIs, and the manage_privileges() function.
  • The .as_serializable() method of the DAObject.

Changed

  • The /api/session POST API now returns the current question, unless the question data value is set to 0.
  • The /api/session POST API now accepts file uploads.
  • Changed the name “roles” to the name “privileges” in the user-related APIs.
  • The set_user_info() function can now be used to change user privileges.
  • Fields with datatype: date will now set a variable of type DADateTime, rather than a plain text variable.
  • The today() now returns a DADateTime object if it is called without a format parameter.
  • The JavaScript for the show if and hide if functionality now animates the showing and hiding of fields.

0.2.22 - 2018-01-23

Added

  • Configuration directive allow demo for allowing demonstration interviews in production mode.
  • Ability to send e-mail using the Mailgun API instead of SMTP.
  • The decimal places option for automatically formatting floating point numbers passed to DOCX and PDF forms using field code, code, or field variables.

Changed

  • If the checkin interval configuration directive is set to 0, the browser will not “check in” at all.
  • When the /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.

Fixed

  • 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

  • The get_chat_log() function.
  • An API interface.
  • Administrative functions.

Fixed

  • Result of user_interviews() was reporting the wrong utc_modtime.
  • Error with 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

  • The send_fax() function for sending faxes using Twilio.
  • The 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 user_id and email are included in results.
  • Integrated the Place Autocomplete feature from the Google Places API.

Fixed

  • 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

  • The user and environment datatypes.

Fixed

  • 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.

Added

  • The background_error_action() function.

0.2.16 - 2018-01-01

Fixed

  • Problems with cron jobs, including an error in the documentation; the variable is not use_cron, but allow_cron.

0.2.15 - 2018-01-01

Changed

  • When filling a PDF form, the Document JavaScripts and Field Calculation Order of the template file will be reproduced in the resulting PDF file.
  • When concatenating PDF files, the Document JavaScripts and Field Calculation Order of the first file will be reproduced in the resulting PDF file.

Fixed

  • Problem with using specific person as sender of an e-mail.

0.2.14 - 2017-12-27

Added

  • Customizable 404 error message.
  • The any_true() and all_true() methods for the DADict object.

Fixed

  • Typo in password complexity error message.

0.2.13 - 2017-12-24

Added

  • Ability to change the password complexity requirements in the Configuration.
  • Ability to control whether registering users must retype their passwords.

0.2.12 - 2017-12-24

Fixed

  • The for attributes of <label> elements were mislabeled when a field with show if defined the same variable.

0.2.11 - 2017-12-18

Fixed

  • Problem with validating fields inside show if.

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 field code.

0.2.7 - 2017-12-13

Added

  • Configuration directives for inserting HTML, CSS, and JavaScript into administrative pages.

0.2.6 - 2017-12-12

Fixed

  • GitHub pagination problem with links_from_header.

0.2.5 - 2017-12-12

Changed

  • The global css and global javascript now apply to all pages on the site.
  • Curly quote conversion is re-enabled.

Added

  • Password protection on generated PDF files.

Fixed

  • Documents with variable names containing generic object or iterator references can now be used with attachment code
  • 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 request context.

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 triggered.

Added

  • Ability to set exit link and exit label in metadata and set_title().

Fixed

  • Error when pulling “master” branches of GitHub packages into the Playground.
  • 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.
  • The .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.

Fixed

  • Apache could not start unless Docker container started with a DAHOSTNAME.
  • GitHub push using GitHub integration failed because of an SSH issue.

0.2.0 - 2017-11-29

Added

  • The logo option of set_title() and metadata.

Changed

  • The all_variables() and 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 the yesno() or noyes() functions will result in the box not being checked.
  • 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 error message.
  • 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.

Changed

  • Multiple choice questions in fields will set boolean True or 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.

Fixed

  • The uncheck others feature triggered an error if it was not the last field.

0.1.98 - 2017-11-20

Changed

  • Going to “/exit” will now log out the user, if the user is logged in.
  • When using &json=1 for JSON responses, the interface() function will return 'json'.

Added

  • Action for logout, which works like exit but also logs the user out.

Fixed

  • Default values in object choices.

0.1.97 - 2017-11-14

Fixed

  • JavaScript issue with buttons.
  • Problem with Playground interviews not being decrypted.

0.1.96 - 2017-11-12

Fixed

  • JSON conversion problem when using /interviews?json=1.

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

  • The Individual class no longer initializes the child, income, asset, and expense attributes, but there are objects blocks in basic-questions.yml that will initialize these attributes.
  • The Organization class no longer initializes the office attribute, unless offices is provided as a keyword parameter during object construction.

Added

  • Interview tags system and the session_tags() function.

0.1.92 - 2017-11-09

Added

  • The checkbox export value option when using pdf template file.

Changed

  • The Markdown to HTML converter now uses the Attribute Lists extension.
  • The server_capabilities() function now has a google_maps item.
  • When the server is not in debug mode, users must be logged in as with administrator or developer privileges to run interviews in docassemble.base and docassemble.demo. In the SMS interface, interviews in these packages are always inoperable unless the server is in debug mode.

Fixed

  • The server_capabilities() was not recognizing the enable settings.

0.1.91 - 2017-11-07

Changed

  • Exceptions triggered during code block execution will now show the line, not just indicate the line number.
  • The server_capabilities() function is now imported by default and it reports additional features.
  • The interview_list() function now returns interview metadata.

Added

  • Dynamically-generated fields items.
  • The cross site domain configuration directive and CROSSSITEDOMAIN environment variable, for enabling APIs to be used.

Fixed

  • Azure blob storage fixes.

0.1.90 - 2017-11-05

Changed

  • New features in the Address.geolocate() method.

Added

  • The Address.normalize() method.
  • The session list interview and dispatch interview configuration directives.

0.1.89 - 2017-11-04

Added

  • Ability to use json=1 with /user/sign-in, /list, and /interviews pages.
  • interview_list() and interview_menu() functions.
  • Twitter login.

Fixed

  • 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 messages.

0.1.86 - 2017-11-01

Added

  • decoration size, decoration units, button icon size, button icon units, and button size configuration options.
  • encode_name() and decode_name().

Changed

  • Clicking the back button when looking at question help will return the user to the question.

Fixed

  • Width of images in .docx files.

0.1.85 - 2017-10-29

Added

  • Option for google maps api key in the google section of the configuration.

Changed

  • A Google API key is now required for using map_of().

0.1.84 - 2017-10-29

Fixed

  • UI issues when switching between help and questions tabs.
  • Added pop() method to DAList.
  • Machine learning errors when entries are blank.

0.1.83 - 2017-10-26

Added

  • The log() function.
  • The fields option for background_response().

Changed

  • Responses from check in events can use the javascript option of background_response() to communicate results to the browser.

0.1.82 - 2017-10-26

Added

  • The pdf_concatenate() function converts word processing files.
  • The flash() JavaScript function.

Changed

  • When using complete_attribute, list gathering will not first seek a textual representation of the object.

Fixed

  • Inclusion of images in RTF when a width not specified.
  • value(), defined(), and 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.

Fixed

  • Uploads embedded in docx template files.

0.1.80 - 2017-10-23

Added

  • The set_title() function.

Changed

  • Interview title functionality in the metadata initial block.

Fixed

  • 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 docassemble.packagename:data/sources/ml-interviewname.json:fruit. You can still set a literal group_id using the keyword parameter group_id.
  • When an 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 matches the group_id (with the part before the final colon, if any, removed), the array corresponding to that key will be used.

Fixed

  • 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

  • The pdf_concatenate() function.

Fixed

  • Missing dependencies for RandomForestMachineLearner.

0.1.76 - 2017-10-20

Added

  • RandomForestMachineLearner for machine learning with numeric and categorical values.
  • Context for SyntaxErrors.

Fixed

  • code to specify fields in docx template.
  • S3 problems.

0.1.75 - 2017-10-18

Added

  • inline width field modifier for embedded fields.
  • DAStaticFile object.
  • set_data() and get_data() methods for DARedis.

Fixed

  • DAFile initialize function now handles keyword arguments as advertised.

0.1.74 - 2017-10-15

Added

  • data block.

Changed

  • Validation errors for embedded fill-in-the-blanks elements now appear under the fields.
  • Embedded radio buttons and checkboxes now use standard HTML input elements.
  • Embedded currency fields use standard text to represent the currency symbol.

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.

Fixed

  • 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 directives.

Fixed

  • CSS and JavaScript files imported through features without a 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.

Fixed

  • AWS secret access codes with slashes.
  • Recognition of iterators with constant integers.

0.1.70 - 2017-10-10

Added

  • Method item() for DAList and DADict.
  • Lettuce tests in directory tests.

Changed

  • Playground variable detection now shows attributes.
  • Playground variable detection now adjusts for temporary Mako variables.
  • The split() function now splits on newlines.
  • Playground no longer loads each example interview into memory.

Fixed

  • Template file Google Drive deletion.
  • Problem with pickling result of .using().
  • Scanning for variable names involving patterns like [i][j].

0.1.69 - 2017-10-05

Added

  • Class method .using() for adding parameters to object definitions.

Changed

  • Backups only kept now for 14 days. Container upgrade necessary.

Fixed

  • Use of iterators and generic objects in if modifiers.
  • Azure cron backup. Container upgrade necessary.

0.1.68 - 2017-10-05

Added

  • if modifier.

Changed

  • 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 sync.
  • Google Drive sync now has a page that tells the user not to stop the web browser.

Fixed

  • Error on URL redirection.
  • Playground package page asking for GitHub sign-in after expiration of credentials.
  • 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.
  • Functions yesno, split, showif, showifdef, and phone_number_part.

Changed

  • Fields in a PDF fill-in form can be specified as a list of dictionaries.

Fixed

  • When 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.

Added

  • The if modifier.
  • The scan for variables modifier.
  • The dispatch function.
  • The has_been_gathered() method on groups.
  • More expansive error messages in debug mode.

Fixed

  • Errors if variable names in question blocks are invalid.
  • Error in date_difference().
  • 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.

Fixed

  • 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 note text.

Added

  • Multiple choice type combobox and datatype: combobox for fields.

Fixed

  • Mandatory multiple-choices questions with embedded code blocks.
  • DAList and 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.

Added

  • Methods on DAFileCollection so that it can be used like a DAFile.
  • run_python_module() function.

Fixed

  • 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 dropdown.
  • Code example for fields dropdown.

Fixed

  • YouTube video widths not responsive.
  • Javascript and CSS files in features not loading without full package/file references.

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 mandatory.
  • In addition, the way that questions are asked has changed accordingly. If any fields that would be set by the question have attributes, 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 i in objects blocks.

Fixed

  • Problem with deletion of keys on S3.
  • Problem with response() on second and subsequent screens.

0.1.55 - 2017-09-16

Added

  • The id and 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.

Fixed

  • Problem with signatures in pdf fill documents.

0.1.50 - 2017-09-10

Added

  • Options for maximum image size to reduce size of uploaded images in the browser before uploading.
  • Interview feature cache documents for disabling document caching.

Fixed

  • E-mailing of assembled documents.

0.1.49 - 2017-09-07

Added

  • Additional document caching feature.

Fixed

  • Problem with caching of certain document types.

0.1.48 - 2017-09-06

Added

  • Option for 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.

Changed

  • In Google Drive synchronization, .tmp and .gdoc files are now ignored.

Fixed

  • 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

  • Function referring_url() for accessing the original “referer” URL.
  • Feature go full screen for breaking out of iframes.
  • Support in Docker for MySQL connections.

Fixed

  • Error accessing machine learning training area.
  • Undefined mimetype error with e-mail receiving feature.
  • “Next will be” message in SMS interface skipped note and html.

0.1.46 - 2017-09-02

Added

  • Methods .true_values() and .false_values() for DADict.

Fixed

  • 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

  • Configuration directive password login, which will hide the username and password fields on the login screen.

Fixed

  • 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

  • Datatype object_checkboxes will now create the variable if it does not exist.

Fixed

  • 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 DAFileCollection objects.
  • 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 HTTP responses.

0.1.42 - 2017-08-24

Added

  • set_attributes() method for DAFile and 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 DAFileList.

Changed

  • Hyperlinks to actions (e.g., created through url_action() or action_menu_item()) are now carried out through Ajax.

Fixed

  • 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

  • Configuration directive require referer that allows users who use referer blockers to use docassemble.
  • .show() method for DATemplate objects, for interchangability with images in DAFile objects.

Fixed

  • Error when valid types was set to pdf when 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

Added

  • Ability to specify filenames in attachment blocks using code.

Fixed

  • 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.

Fixed

  • 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

  • Fields with datatype: checkboxes now have a “None of the above” option by default, and input validation ensures that something is checked. The 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.

Added

  • Option in fields called uncheck others when datatype is yesno, noyes, yesnowide, or noyeswide. Enables a yes/no field to act as a “None of the above” option.
  • “Upgrade docassemble” button on the “Update a package” page.

Fixed

  • 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.

Changed

  • 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 always edit install_requires in the setup.py file.

Fixed

  • Bug fixes to SMS interface.

0.1.34 - 2017-08-10

Fixed

  • Checkboxes became 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 docassemble.base.

0.1.32 - 2017-08-08

Changed

  • force_ask() can ask a series of questions.

Added

  • Configuration directives for customization of global Javascript and CSS.
  • Configuration directives for customization of start page and interview list.

0.1.31 - 2017-08-07

Changed

  • Review page buttons now Ajax.
  • Screen reverts to review page after field edit.

Fixed

  • Problem with PDF/A due to old version of pdfx.

0.1.30 - 2017-08-07

Added

  • PDF/A support.
  • Navigation bar option.

Fixed

  • Problem with files when user logged in.

0.1.29 - 2017-08-03

Added

  • Input validation with Python code.
  • Input validation for dates, in addition to the limited Javascript validation.

0.1.28 - 2017-08-01

Fixed

  • DADict object now defines ask_object_type by default
  • Bug with using combined with ml.

0.1.27 - 2017-07-31

Added

  • ml and mlarea data types and training system.

Fixed

  • 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

  • Minor git issue again.

0.1.25 - 2017-07-24

Changed

  • Back button style.

Fixed

  • labelauty issue.

0.1.24 - 2017-07-24

Fixed

  • Minor git issue.

0.1.23 - 2017-07-23

Changed

  • Additional deletion of temporary files through cron job.

Fixed

  • 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

  • read_qr() function.
  • new_object_type option for groups.

Changed

  • The default for the debug configuration directive is now True.

Fixed

  • The 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 dict objects.

Added

  • all_true() and all_false() methods for DADict.

Fixed

  • 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.

Changed

  • initial directive now accepts code, just like mandatory.
  • Error page now returns 404 instead of 501 when user tries to access an interview file that does not exist.

Fixed

  • 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.

Fixed

  • 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

  • GitHub integration.
  • dow_of() function.

Changed

  • Changed PyPI username and passwords from a configuration setting to a user setting.

Fixed

  • 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 locale when word_of is True.
  • 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.

Fixed

  • 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

  • Two-factor authentication.
  • Phone login.

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 larger screens,

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.

Added

  • Additional examples.

[Unreleased] - 2017-05-26

Changed

  • PDF fill-in files now editable.
  • Started using bumpversion.
  • Started a changelog.