GithubHelp home page GithubHelp logo

jhpyle / docassemble Goto Github PK

View Code? Open in Web Editor NEW
738.0 738.0 252.0 274.51 MB

A free, open-source expert system for guided interviews and document assembly, based on Python, YAML, and Markdown.

Home Page: https://docassemble.org

License: MIT License

Shell 2.04% Python 60.98% TeX 0.20% HTML 2.38% CSS 1.18% JavaScript 24.45% Mako 0.01% Gherkin 7.06% Dockerfile 0.10% Emacs Lisp 0.04% Rich Text Format 1.56% C++ 0.01%
docassemble

docassemble's People

Contributors

adjohns avatar brycestevenwilley avatar cschwarz007 avatar dblevin1 avatar dependabot[bot] avatar epompeii avatar foxbat123 avatar frankbold avatar gauntlet173 avatar hamudss avatar jhpyle avatar jimcullenaus avatar jonzeolla avatar jpylephilalegal avatar lino avatar marcel-wiedemeier avatar michaelhofrichter avatar mikeappell avatar mikerj1 avatar niharikasingh avatar nluetic avatar nonprofittechy avatar plocket avatar rvnovaes avatar staffanm avatar staffanm-kp avatar striderstrahan avatar tobyfey avatar tomaofficer avatar tucker-eric avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

docassemble's Issues

The demos are experiencing a ProgrammingError

image

Hi,
I am working on building a project using disassemble. however as I was working with the documentation, I noticed none of the Demos work. I have not been able to deploy on my environment yet, so I do not know if it is a local issue or a problem with the code.

Document referrer sending or provide workaround

I have sending of the referrer disabled for privacy reasons and i can imagine many people do so, too.

In this case answering a question on https://demo.docassemble.org/ returns a "Bad Request".

I think it would be an improvement to either:

  • document if docassemble can not work without referrer sending
  • maybe there is a workaround for this requirement?

A new "testing mode" should allow skipping "required" questions

While prototyping and developing interviews in the playground, it would be very useful to have a feature that lets you skip any "required" questions. This would allow for faster next/next/next until you got to the question you updated or changed. The option to test a single question would also be handy.

Submit on enter

On most screens of Docassemble, pressing enter submits the form and advances to the next screen. It does not do so if there are only buttons on the screen. I'm not sure if it's possible to distinguish between continue and other buttons, but it would be a small improvement to consistency if pressing "enter" advanced to the next page when the only option is to continue.

Export "Variables" as json

I found where Docassemble stores variable data as a Python dictionary but a json export or API would be nice to export data to an external database such as a practice management system or even just between interviews. This could be a simple json text file.

Ability to change title during interview process, or tags to interviews

It would be nice to be able to add data to the interview title such as a client name, or project.
So when viewing history of interviews, they are not all the same name.

My use case may be a little different than legal, I want to use this to generate Statements of Work for contractual labor, so each interview per User would result in a unique client and project name - and they may want to look up a previous interview.

And/or tags would be a great addition here for a similar result.

Occasional Google Drive sync errors

Occasionally with frequent saving / syncing, Docassemble overwrites the copy stored on Drive with a zero-byte file. Not sure if this is because of race condition with syncing?

Feature Request: Can you add a way to upload outside single .yml files to playground?

I prefer to edit my text files in an editor like vim; is there a way to upload .yml files to the playground without having to do cut and paste?

It looks like the other upload option are for templates and not for the same .yml files as if you created them directly in the playground? If I'm being dense, please let me know; I couldn't find an answer in the documentation.

Docker Error

Hi,

I try to run this with docker but container exits and in log i have this:

panic: standard_init_linux.go:175: exec user process caused "exec format error" [recovered]
panic: standard_init_linux.go:175: exec user process caused "exec format error"
goroutine 1 [running, locked to thread]:
panic(0x3339c8, 0x107aba40)
/usr/local/go/src/runtime/panic.go:481 +0x330
github.com/urfave/cli.HandleAction.func1(0x107d1958)
/go/src/github.com/opencontainers/runc/Godeps/_workspace/src/github.com/urfave/cli/app.go:478 +0x328
panic(0x3339c8, 0x107aba40)
/usr/local/go/src/runtime/panic.go:443 +0x448
github.com/opencontainers/runc/libcontainer.(*LinuxFactory).StartInitialization.func1(0x107d15e0, 0x1071a248, 0x107d1668)
/go/src/github.com/opencontainers/runc/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/factory_linux.go:259 +0x13c
github.com/opencontainers/runc/libcontainer.(*LinuxFactory).StartInitialization(0x10794240, 0xb65c14b8, 0x107aba40)
/go/src/github.com/opencontainers/runc/Godeps/_workspace/src/github.com/opencontainers/runc/libcontainer/factory_linux.go:277 +0x498
main.glob.func8(0x1078e320, 0x0, 0x0)
/go/src/github.com/opencontainers/runc/main_unix.go:26 +0x58
reflect.Value.call(0x2e90f8, 0x3efd4c, 0x13, 0x362250, 0x4, 0x107d1918, 0x1, 0x1, 0x0, 0x0, ...)
/usr/local/go/src/reflect/value.go:435 +0xeb4
reflect.Value.Call(0x2e90f8, 0x3efd4c, 0x13, 0x107d1918, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/reflect/value.go:303 +0x84
github.com/urfave/cli.HandleAction(0x2e90f8, 0x3efd4c, 0x1078e320, 0x0, 0x0)
/go/src/github.com/opencontainers/runc/Godeps/_workspace/src/github.com/urfave/cli/app.go:487 +0x230
github.com/urfave/cli.Command.Run(0x364678, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3ce288, 0x51, 0x0, ...)
/go/src/github.com/opencontainers/runc/Godeps/_workspace/src/github.com/urfave/cli/command.go:191 +0xcd0
github.com/urfave/cli.(*App).Run(0x10780240, 0x10762050, 0x2, 0x2, 0x0, 0x0)
/go/src/github.com/opencontainers/runc/Godeps/_workspace/src/github.com/urfave/cli/app.go:240 +0x84c
main.main()
/go/src/github.com/opencontainers/runc/main.go:137 +0xbb4

Add a feature to show an index of available interviews

Should most likely take the form of an enhancement to the "Dispatch" directive that already exists:
https://docassemble.org/docs/config.html#dispatch

Improvements could add graphical configuration option or additional menu choices to make it sensible to have this option always turned on. Documentation could be expanded to make the feature more visible.

It should be possible to make the index the default home page for the server hosting Docassemble.

Unicode characters in vocabulary terms

There seems to be a problem with Unicode characters in the pop-up text of vocabulary terms. In this short example, when I click over the accent term of the question, the pop-up message shows the Unicode character instead of the "é" characters. The "résumé" word is displayed as " r\u00e9sum\u00e9".

Forcing default language to french doesn't help. I'm using a docassemble docker image built approximately 3 weeks ago.

Otherwize, docassemble is working great. I began using it for diagnostic purpose of electrical equipment.

Below is an example yaml file that reproduce the described behavior.

---
default language: fr
---
terms:
  accent: |
    Accents such as résumé are used in foreign language.
---
question: |
  Do you see correctly the accent over the letter e that should appear as é 
  in the term pop-up.
yesno: accent
mandatory: true
---

Simplify date/time operations with additional helper functions

Date math with format_date is a little confusing with the requirement to convert the Docassemble built-in date type and the function name "format_date" doesn't make it clear you can use it for date math. EDIT: I see now that the format_date part is not needed.

  1. Get a date in the interview variable case.answer_date, and add 2 weeks to it:

format_date(as_datetime(case.answer_date) + date_interval(days=14))

With example 1, you need to change the format of the date in the interview into a datetime. Otherwise you get an error that is confusing for a novice like me:

Error
TypeError: coercing to Unicode: need string or buffer, relativedelta found

I tested it with format_date(today() + date_interval(days=14)) which worked, so today() appears to a return a datetime while Docassemble datatype: date does not.

I suggest adding wrapper functions for add_days, add_months, etc, or alternatively, add_dateinterval that accepts the same arguments as date interval. It should work without requiring the interview author to convert a Docassemble date to a datetime. I think for legal applications, add_days would be most common though? Perhaps also add_years?

E.g.: add_days(case.answer_date, 14) or add_dateinterval(case.answer_date, days=14). It should accept both the Docassemble date datatype and the datatype of the today() function.

Feature Request: Delete all pending interviews

In testing and learning the application I've accrued something like 300 pending interviews in the Resume an interview screen. Is there an easy way to wipe these? Perhaps a button to delete them all? Or is this something already taken care of by one of the cron jobs and I'm worrying over nothing?

Documentation: How to email an attachment

Thanks for your work on docassemble. I hope to integrate this into my practice in the future.

I'm struggling on getting docassemble to email me a PDF after an interview is completed. I.e., trying to get it to do initial intake screening for conflict checks before sending the potential client a more in-depth interview that is practice-area specific.

Can you give some insight on how to correctly use the send_email() function? I'm scratching my head over how to use it.

On-prem Active Directory

Hi - It would be terrific if an addition login method is added, using python-ldap, specifically private/onPrem Active Directory

Changes to module not reflected in new interview?

I create a simple interview with an "objects.py" module with a very simple method that I call in a template, as follows:

from docassemble.base.core import DAObject

class Plan(DAObject):
    def summary(self):
        return "# Plan Terms\n\n" + self.name 

If I run this (I have interview questions that query for name), I see the results I expect.

Now, I change the module method to include a bogus Plan property, say, "self.instructions", like so:

    def summary(self):
        return "# Plan Terms\n\n" + self.name + self.instructions

When I save this change, I get a message that the system is restarting. However, when I run the interview again, I get no error. If I restart the server, I get the error. Doesn't look like the restart is actually reloading the changes to the module.

Happy to help with any further info.

BTW, this is an amazing project. Very impressed.

URL redirect error

URL redirects show an error about len(self.condition) and the condition attribute not being defined.

Markdown template parser cannot decipher UTF-8 Unicode strings

When uploading a UTF-8 encoded .md text file (during Wizard) the application accepts the upload but does not successfully parse the .md file. Logs show an error Error was: 'ascii' codec can't decode byte 0xe2 in position 83: ordinal not in range(128) Although the wizard appears to proceed, variables are not properly defined and running the interview errors out with a decode error.

This is based on the Dockerhub version current on the date this issue was submitted.

Allow insertion of images into PDF templates

Currently you can insert images into pandoc-created documents, but not into PDF files that are form-filled. Use pdftk to allow users to overlay images on top of pages of PDF files.

Permission errors trying to install a new package

I'm trying to install a package that I'm authoring offline. I've had it running before using an older docker image. I just refreshed the image today and am now receiving the following errors when I try to upload and install a new package (from a clean docker image [volumes and containers all removed]):

pip log:
pip install --quiet --prefix=/usr/share/docassemble/local --src=/tmp/tmpzP1mf8 --log-file=/tmp/tmp3Zd3m1 --upgrade /usr/share/docassemble/files/000/000/000/004/file.zip
The directory '/root/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/root/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/root/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/root/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Processing /usr/share/docassemble/files/000/000/000/004/file.zip
  Running setup.py (path:/tmp/pip-YFUcus-build/setup.py) egg_info for package from file:///usr/share/docassemble/files/000/000/000/004/file.zip
    Running command python setup.py egg_info
    Traceback (most recent call last):
      File "", line 1, in 
      File "/tmp/pip-YFUcus-build/setup.py", line 58, in 
        package_data=find_package_data(where='docassemble/equityAssist/', package='docassemble.equityAssist'),
      File "/tmp/pip-YFUcus-build/setup.py", line 16, in find_package_data
        for name in os.listdir(where):
    OSError: [Errno 2] No such file or directory: 'docassemble/equityAssist/'
Cleaning up...
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-YFUcus-build/
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-YFUcus-build/
Exception information:
Traceback (most recent call last):
  File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/pip/commands/install.py", line 324, in run
    requirement_set.prepare_files(finder)
  File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/pip/req/req_set.py", line 380, in prepare_files
    ignore_dependencies=self.ignore_dependencies))
  File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/pip/req/req_set.py", line 634, in _prepare_file
    abstract_dist.prep_for_dist()
  File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/pip/req/req_set.py", line 129, in prep_for_dist
    self.req_to_install.run_egg_info()
  File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/pip/req/req_install.py", line 439, in run_egg_info
    command_desc='python setup.py egg_info')
  File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/pip/utils/__init__.py", line 707, in call_subprocess
    % (command_desc, proc.returncode, cwd))
InstallationError: Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-YFUcus-build/

Any ideas?

Bug Report "datatype: object"

Description of the bug:

The easiest way to see the bug/error is to view the following sample interview, which is included in the Docassemble documentation:

https://demo.docassemble.org/?i=docassemble.demo%3Adata%2Fquestions%2Fexamples%2Fsomeone-already-mentioned.yml#page1

This section of the documentation explains the intended result:

https://docassemble.org/docs/fields.html#object

My theory as to the cause:

I think the change made on 2017-11-23 has caused the deviation from the intended functionality described in the documentation. I think setting boolean True or False in multiple choice fields if those are the only options is causing the incompatibility. I can confirm that this feature works as described in the documentation on a version of Docassemble that I installed prior to the change. Note that the error does not come up if the multiple choice drop-down is the only field.

The use of the feature described to avoid the redundant entry of data as it pertains to Docassemble objects is one of its most useful features in my opinion. I will be checking this thread periodically in case anybody needs more information about the bug/error.

Also, thanks to the developer for the fantastic job he has done with this software.

Github error when initializing a new repository from Docassemble

Creating a new package in Docassemble and then pushing to Github results in an error like the one quoted below the first time.

Committing a second time works without any error.

Error
create_playground_package: error running git push.  Doing GIT_SSH=/tmp/datempbf5V3v.sh git clone [email protected]:nonprofittechy/docassemble-Discovery.git
Cloning into 'docassemble-Discovery'...
Warning: Permanently added 'github.com,192.30.253.112' (RSA) to the list of known hosts.
Doing git config user.email '[email protected]'
Doing git config user.name 'System Administrator'
Doing git add .
Doing git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

	modified:   LICENSE
	new file:   MANIFEST.in
	new file:   README.md
	new file:   docassemble/Discovery/__init__.py
	new file:   docassemble/Discovery/data/questions/test.yml
	new file:   docassemble/Discovery/data/sources/README.md
	new file:   docassemble/Discovery/data/static/README.md
	new file:   docassemble/Discovery/data/templates/README.md
	new file:   docassemble/Discovery/discovery.py
	new file:   docassemble/__init__.py
	new file:   setup.cfg
	new file:   setup.py

Doing git commit -m 'Initial Commit (testing syntax)'
[master 045d270] Initial Commit (testing syntax)
 12 files changed, 121 insertions(+), 2 deletions(-)
 create mode 100644 MANIFEST.in
 create mode 100644 README.md
 create mode 100644 docassemble/Discovery/__init__.py
 create mode 100644 docassemble/Discovery/data/questions/test.yml
 create mode 100644 docassemble/Discovery/data/sources/README.md
 create mode 100644 docassemble/Discovery/data/static/README.md
 create mode 100644 docassemble/Discovery/data/templates/README.md
 create mode 100644 docassemble/Discovery/discovery.py
 create mode 100644 docassemble/__init__.py
 create mode 100644 setup.cfg
 create mode 100644 setup.py
Doing GIT_SSH=/tmp/datempbf5V3v.sh git push --set-upstream origin None
error: src refspec None does not match any.
error: failed to push some refs to '[email protected]:nonprofittechy/docassemble-Discovery.git'

Updating packages

Hi,

Running docassemble on a docker container with persistent volumes (using the command for that from the docassemble website), I'm unable to successfully update packages. Even if I just "create a new package" and then update the package immediately by uploading the zip file I just downloaded, I get an "Install not successful" error.

This is the pip log:
pip log: Running pip install --egg --no-index --quiet --src=/tmp/tmpigMvXZ --log-file=/tmp/tmpyw4zDB --upgrade /usr/share/docassemble/files/000/000/000/00b/file.zip Ignoring indexes: https://pypi.python.org/simple Processing /usr/share/docassemble/files/000/000/000/00b/file.zip Running setup.py (path:/tmp/pip-ZBnZz7-build/setup.py) egg_info for package from file:///usr/share/docassemble/files/000/000/000/00b/file.zip Running command python setup.py egg_info Traceback (most recent call last): File "", line 1, in IOError: [Errno 2] No such file or directory: '/tmp/pip-ZBnZz7-build/setup.py' Cleaning up... Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-ZBnZz7-build/ Exception information: Traceback (most recent call last): File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/pip/basecommand.py", line 215, in main status = self.run(options, args) File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/pip/commands/install.py", line 335, in run wb.build(autobuilding=True) File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/pip/wheel.py", line 749, in build self.requirement_set.prepare_files(self.finder) File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/pip/req/req_set.py", line 380, in prepare_files ignore_dependencies=self.ignore_dependencies)) File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/pip/req/req_set.py", line 634, in _prepare_file abstract_dist.prep_for_dist() File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/pip/req/req_set.py", line 129, in prep_for_dist self.req_to_install.run_egg_info() File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/pip/req/req_install.py", line 439, in run_egg_info command_desc='python setup.py egg_info') File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/pip/utils/__init__.py", line 707, in call_subprocess % (command_desc, proc.returncode, cwd)) InstallationError: Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-ZBnZz7-build/

Security audit status

Since docassemble seems amenable for collecting personally identifiable information, I am just curious if it has had any formal security audits.

Bug: when uploading yml in playground

I'm getting this error using the upload feature in playground:

Error

    AttributeError: 'list' object has no attribute 'from_source'

Log

Traceback (most recent call last):
  File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/flask/app.py", line 1612, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/flask/app.py", line 1598, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/flask_user/decorators.py", line 29, in decorated_view
    return func(*args, **kwargs)
  File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/flask_user/decorators.py", line 76, in decorated_view
    return func(*args, **kwargs)
  File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/docassemble/webapp/server.py", line 7414, in playground_page
    variables_html, vocab_list = get_vars_in_use(interview, interview_status, debug_mode=debug_mode)
  File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/docassemble/webapp/server.py", line 1593, in get_vars_in_use
    field_origins[val].add(interview.questions[val][lang].from_source)
AttributeError: 'list' object has no attribute 'from_source'

Build an A2J -> YAML converter

It should be fairly easy to build a utility that takes an A2J author XML file and converts it into a docassemble YAML interview.

docassemble-site.conf is missing from the repository

I'm not sure what to do about this. I am following the installation guide but I am stuck at the point below:

sudo cp ./docassemble/Docker/docassemble-site.conf /etc/apache2/sites-available/docassemble.conf

You appear to not have docassemble-site.conf in github.

I am stuck on this point in my installation. Thank you for this sharing this. I am looking forward to using this.

Bug: Something went wrong with the vimOpt when looking at folders

Steps to reproduce:

  1. Spin up new docker instance with fresh pull
  2. Do NOT change any vimopt configuration
  3. Click playground
  4. Click folders OR Click Modules OR Click Templates
  5. click sources
  6. See below error.
Error

    UnboundLocalError: local variable 'vimOpt' referenced before assignment

Log

Traceback (most recent call last):
  File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/flask/app.py", line 1612, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/flask/app.py", line 1598, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/flask_user/decorators.py", line 29, in decorated_view
    return func(*args, **kwargs)
  File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/flask_user/decorators.py", line 76, in decorated_view
    return func(*args, **kwargs)
  File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/docassemble/webapp/server.py", line 7069, in playground_files
    });""" + extra_command + """
UnboundLocalError: local variable 'vimOpt' referenced before assignment

following commands not working (what should I do?)

sudo cp ./docassemble/Docker/docassemble-supervisor.conf /etc/supervisor/conf.d/docassemble.conf
sudo cp ./docassemble/Docker/ssl/* /usr/share/docassemble/certs/
sudo cp ./docassemble/Docker/rabbitmq.config /etc/rabbitmq/

Make it easier to support Amazon Echo / Alexa chat or other chat-type interview formats

It would be interesting to extend the SMS-interview style support to different chat platforms. They could include Amazon Alexa, but also Facebook Messenger, Jabber, Slack, etc. Many of these platforms have APIs exposed for integration.

A feature improvement could be to make it easier to add this support in future by generalizing the Twilio integration code to speed up plugin development, even if such other chat platform support doesn't become a core feature of docassemble.

Configuration options would be needed to add API keys.

Add a question type that uses the Google Place Autocomplete API

The Google "Place" API allows you to start typing an address and have it automatically fill in the address fields in the form using the location services in your browser. This would increase responsiveness of the interview and make it faster to use.

For the feature, see: https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete-addressform

A configuration option should be added to allow you to specify the Google API key. The question type can be completely new, or an option when using an object that implements the Address class.

A possible alternative is using the Open Street Map's implementation of a similar API: http://photon.komoot.de/ or https://help.openstreetmap.org/questions/31809/auto-complete-address-using-web-service. Looks like Google version would be more reliable as the OSM version is host-yourself or use a third-party.

Pandoc error generating final stage of interview (document assembly)

I'm not sure what's causing this beyond the subject line. The logs don't seem real informative as to what's going on and which things are trying to be concatenated into what. I'm on a docker image current as of 4/28/17. Here's the log:

Error
TypeError: cannot concatenate 'str' and 'NoneType' objects
Log
Traceback (most recent call last):
  File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/flask/app.py", line 1612, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/flask/app.py", line 1598, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/docassemble/webapp/server.py", line 3125, in index
    interview.assemble(user_dict, interview_status)
  File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/docassemble/base/parse.py", line 2370, in assemble
    interview_status.populate(question.ask(user_dict, 'None', 'None'))
  File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/docassemble/base/parse.py", line 1876, in ask
    attachment_text = self.processed_attachments(user_dict, the_x=the_x, the_i=the_i)
  File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/docassemble/base/parse.py", line 1908, in processed_attachments
    result_list.append(self.finalize_attachment(item[0], item[1], user_dict))
  File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/docassemble/base/parse.py", line 2025, in finalize_attachment
    result['content'][doc_format] = docassemble.base.filter.markdown_to_html(result['markdown'][doc_format], use_pandoc=True, question=self)
  File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/docassemble/base/filter.py", line 946, in markdown_to_html
    a = html_filter(unicode(a), status=status, question=question, embedder=embedder)
  File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/docassemble/base/filter.py", line 437, in html_filter
    text = re.sub(r'\[FILE ([^,\]]+)\]', lambda x: image_url_string(x, question=question), text)
  File "/usr/share/docassemble/local/lib/python2.7/re.py", line 155, in sub
    return _compile(pattern, flags).sub(repl, string, count)
  File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/docassemble/base/filter.py", line 437, in <lambda>
    text = re.sub(r'\[FILE ([^,\]]+)\]', lambda x: image_url_string(x, question=question), text)
  File "/usr/share/docassemble/local/local/lib/python2.7/site-packages/docassemble/base/filter.py", line 767, in image_url_string
    return('<img class="daicon" style="' + width_string + '" src="' + server.url_finder(file_reference, question=question) + '"/>')
TypeError: cannot concatenate 'str' and 'NoneType' objects

Support combo box input type

It would be useful in a lot of circumstances to allow selection from a dropdown menu with the easy possibility to add a new item to the list, such as Windows combobox form element. This isn't supported cross-browser as a standard HTML element but there are extensions to boostrap that handle it, e.g.: https://github.com/danielfarrell/bootstrap-combobox .

This should be an option that can be toggled on or off in the YAML interview file.

Add support for National Subject Matter Index classification

A new metadata type could be added to Interviews that allows indexing them using the LSNTAP's NSMI classifications. See: https://lsntap.org/LSXML_NSMI

This should be displayed in a friendly form on the index of interviews for the site.

This would be helpful on Docassemble sites that store many interviews. It would also allow for easier sharing of interviews across programs. NSMI is used by LawHelpInteractive where many interviews are already hosted.

Documentation: Is there a way to mix-mash buttons

In playing around, I can't seem to get buttons that mix with exit, restart etc., with buttons that set a field.

For example:

---
button:
  - Exit: exit
  - Restart: restart
---

Works just fine. But if you try and mix it with a field, the exit and restart no longer works because it's been assigned to the field. For example:

field: bvar
button:
  - Exit: exit
  - Restart: restart
  - More: True
---

No longer gives you the exit and restart functionality. Is there a way to mix these?

If I do:

---
buttons
  - Exit: exit
  - Restart: restart
  - Continue: continue
---

I get a blank screen with just a second continue button and that doesn't look very professionl and is what I'm trying to avoid with the Continue button.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.