Skip to content

mostscript/uu.formlibrary

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction
============

uu.formlibrary is an add-on for Plone that enables the management and
entry of form definitions and form instances.

Form instance types supported include single-record 'Flex' forms, and
multi-record forms.

A measure library includes tools to bind form values to measures, and
in the case of multi-record forms, build measures based on queries. 
These measures can be used in plots generated by uu.chart.

This package is originally designed to support forms for healthcare
quality improvement projects, but is not limited to any particular
problem domain.

Features
--------

* Form definitions:
  
  - A library of form definitions can exist in your site for use by
    form instances.  The binding of form instances to definitions is
    done by reference (browsing to the definition) in the edit form
    of the form instance.

  - All definition references are stored as RFC 4122 UUIDs on form
    instance objects.  These references are cataloged such that code
    can query the catalog for all form instances subscribing to a
    definition.

  - Form definitions provide schema for form instances, and provide
    the means for form adminstrators to control, edit the schema
    using simple web-based tools.

* Form instances:

  - All form instances are tied to a definition.

  - All form instances live in a special kind of folder, called a 
    form library.

  - All form instances have optional temporal information: a start
    and stop date distinct from publishing metadata.  By virtue of
    existing indexes for start/stop in Plone's catalog, these are
    searchable in Python code extending this.

* Form types:

  - Simple form -- a single record form; supports fieldsets.

  - Multi-record form.  Used for chart audit/review, periodic log entry,
    and similar forms.  Each record uses the same schema.

    * Multi-record forms are treated as a record container.  These
      expose a JSON API for form submission of multi-form structured
      data payloads (for the bundle of all rows) via JavaScript. The
      Python API for modifying records is a CRUD API built upon a
      container/mapping interface; the JSON API extends this to 
      form submission of a complex data payload.

    * Multi-record forms require JavaScript.

* A workflow for form submission is packaged in uu.workflows, which
  this package depends upon. 


Requirements
------------

* Plone 4.3 (may work on earlier Plone 4 versions).

* Dexterity content types

* uu.dynamicschema: provides a global registry of persistent
  schemas for use in form definitions and forms bound to them.
  Uses techniques similar to Dexterity, but is intended for
  managing schemas used in non-content data objects.  Each
  schema is stored by its md5 sum "signature" which is kept
  on form definitions from uu.formlibrary.

    https://github.com/upiq/uu.dynamicschema

* uu.record -- provides basic non-content record data object 
  interfaces and implementations, including a CRUD controller
  interface using a "record container" pattern. 

    https://github.com/upiq/uu.record

* uu.workflows -- provides packaged workflows for form and
  intranet workflows, including a form submission workflow
  used by this package.

    https://github.com/upiq/uu.workflows

--

Author: Sean Upton <sean.upton@hsc.utah.edu>

Copyright 2012-2014, The University of Utah.

Released as free software under the GNU GPL version 2 license.
See doc/COPYING.txt

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published