Package: ringo
Ringo=====.. image:: https://travis-ci.org/ringo-framework/ringo.svg?branch=master:target: https://travis-ci.org/ringo-framework/ringoRingo is a small Python based high level web application framework build withPyramid. Ringo tries to make it very easy to build form based web applicationto manage your data. Because Ringo provides many basic features which areoften used in modern web applications it greatly speeds up development. But itis also flexible and offers many ways to configure the layout, behaviour andworkflow of your application. See the list of :ref:`features` for moredetails.Ringo comes with an application scaffold which can be used as a boilerplate foryour application development. See the development part in the documentationfor more details on how to build a Ringo based application.License=======Ringo is Free Software. It is licensed under the GPL license in version 2 orlater. See `<http://www.gnu.org/licenses/gpl-2.0>`_ for more details on the license.Features========Ringo provides some basic features which are useful if you build yourweb application based on Ringo:* Easy extendible and configurable modular architecture,* Basic actions for every module including:- Search and sortable listing (storeable and configurable)- Basic CRUD actions- CSV, JSON import and export* Role based authorisation.* Authentication with email registration and password reminders* Powerfull statemachine to model workflows in modules.* Layout and validation of forms using the `Formbar <https://pypi.python.org/pypi/formbar>`_ library* Versioning of forms (see what changed to the last version)* Widely configurable from the web UI.* Nice console client for various administration tasks.* ...Tests=====To start the testsuite invoke the following command::py.test --app-config test.iniOr with display of the coverage of the tests::py.test --cov=ringo --app-config test.inDocumentation=============The source of documentation comes with the source of Ringo and can be found in the"docs" folder. To generate the HTML version of the documentation please invoke thefollowing command::invoke docsYou need to have the sphinx package installed in order to generate the documentation.A generated version of the documentation is available on`<http://ringo.readthedocs.org/>`_Getting Started---------------The fastest way to get an impression of Ringo`s core functionality is tostart the standalone application of Ringo with the following steps:- $ git clone https://github.com/ringo-framework/ringo- $ python setup.py develop- $ ringo-admin db init- $ invoke docs- $ pserve development.ini1.14.0======- Rewrite of the documentation.- Fixed issue21 (https://github.com/ringo-framework/ringo/issues/21). Enabledsorting config in Listingfieldrenderer.- Expand values from checkboxes too.- Added XLSX Export.- Introduced special suffix `__e_x_p_a_n_d` for attributes which can be used toaccess the expanded value of the attribute as alternative to the call ofget_value. This is needed because it is not always possible to call theget_value method. Example: getattr(obj, 'foo__e_x_p_a_n_d') will return theexpanded value of the `foo` attribute.- Removed ODF-Converter from Ringo core. It is now part of theringo_printtemplate extensions as this is the only place where it isactually used.- #5 Show info dialog on circualr dependency error on deletion- #11 Check uniqueness of name when on creating and update of roles.- #12 With fix for #5 the admin user can not delete himself anymore, becauseof handling of circular dependency.- #14 Make name field of modules readonly. Field is internal and not meant tobe editable.- #19 Fixed removing permissions (in general fixed removing items fromnm-relations.)- Added "button" layout for the Statefieldrenderer.- Handle "Save and proceed" button (New feature in formbar).- Added StaticListRenderer. Can be used to render simple static overviews ofitems.- On user registration the password strength is now checked. Password must beat least 12 chars long und need to have 2 non chars.- Add option to define rolespecific descriptions of the state.- Add option to configure a callback after a user has authenticated with theapplication. This callback can be used to cancel the authentification or tofurther actions after the user logs in.- Added sorting icons for datatables.-1.13.3======Bugfix release. Fixes serious problem handling addrelations based on thesession variable. This error may cause wrong relations between items.1.13====- Fixes in scaffold. Improve default MANIFEST and include more files. MakeREADME a RST-File- Internal UUID field is now 36 chars long. UUID is now stored as defined inRFC4122. Please note that existing UUIDs are not converted. You can convertexitsing UUIDs by using the "ringo-admin db resetuuid" command.- Fixed #19 (https://github.com/ringo-framework/ringo/issues/19)- Let users delete their own account. You can define the behavior to itemsdefined by the user by setting the _owner_cascades class variable with inthe models to e.g configure to delete all items which are owned by the itemto. On default users can only delete their account if the do now own anyitems anymore.- Implemented "roles" config variable for columns in table configs. Ifdefined columns are only visible to users who have one of theconfigured roles.- Added "target" attribute to the Linkfieldrenderer.1.12====- Be more tolerant in imports. Only log in case the import includes fieldswhich are not part of the model.- Added config varibables to define default roles and groups on userregistration.- Added config variable "layout.show_contextmenu" to configure the visibilityof the context menu.- Improve result page after a user register a new user account.- Improve result page after a user request a passwort reset.1.11.2======- Small performance improvement. Added option to enable caching of theform configuration. This will prevent the application to reload theconfiguration on every request which is expensive. This is usefull forproduction envirionments as the form will not change here. However it is notrecomended in development mode.Please refer to the documentation to see how to enable form caching.- Fixed reraising exception withing general_exception view. Further only usethis view in testing mode.- Render title tooltips in table header of overviews- Make registration and activation of users over the webinterface work again. This meansnew user can register themself using the webinterface if registration isenabled.- Added scaffolds to the MANIFEST.in file. Has been missing.- Fixed bug which causes exceptions in testcases because new created andloaded items in different Sqlachemy sessions. Use current db session fromrequest when invoking the load method of a factory to enforce all items areattached to the same session.- Added external requirements.txt file for scaffolds.- Support DATABASE_URL envirionment variable. If set than this variable willbe used to connect to the database. Eg: postgres://@/ringo1.11.1======Bugfixrelease- Reraise origin exception (including stacktrace) in case of errors in globalerror view to allow better debugging of errors. The origin stackstrace washidden since the last version which introduces a global error view. Thiserror view hides the origin traceback.1.11.0======- Tests are now based on pytest. Removed tests based on the package "behave".Ringo now requires a package pytest-ringo which provides some helper classesto make testing more easy. Further the tests now support rollbacks.- Changed behaviour how Ringo extensions are registered on applicationstartup. Ringo now only shows a short warning on application start if a newadded or removed extension is detected. It does not ask the user if ringoshould register the extension automatically anymore which make the startupmore robust on servers with no active terminal (e.g starting as WSGI).Adding or removing extensions in normale usage should be added or removed bymigration scripts.- Added "ringo-admin app add-extension|remove-extension" command to addor remove the initial modul and action entries during development.- Improved documentation on how to add extensions in the application.1.10.5======- Show info dialog at the top to the form in case the validation fails.This info has been added because users reported data loss because offormbar/ringo default behaviour of not saving anything in case oferrors. Users seems to expect that the valid part of the data has beensaved. This info should make the user aware of the fact that nothinghas been saved in case of errors1.10.4======Bugfixrelease- Only log validation errors in DEBUG loglevel.- Fixed changed field names in user registration.- Fixed test cases1.10.3======Bugfixrelease- Fixed bug (Introduced with 1.10.2) when encoding values in GET params. Ringouses a special notation for encoding values in the URL as GET param in the`values` key. This method failed for values containing non ASCII values.1.10.2======Maintenance and Bugfixrelease- Cleanup after move to Github:- Removed .coveragerc. Not using coverage at the moment.- Removed .hgflow. Not using the hg anymore- Removed .hgignore. Not using the hg anymore- Removed .tx. Currently not using Transifex for translations.- Changed links in Documentation and README to refer to Github now.- Do not log that we are calling get_current_request. This is a long standingdesign flaw in Ringo but it does not cause any known problems yet and it isunlikly to change in the near future. So i replaced the logging with a"fixme" comment.- Log "errors" while resolving dot separated values in lists only in the debuglog (was error) in _resolve_attribute. As this might be a sign of anmissconfiguration it is actually handled in the function so we do not log anerror message but give a hint in in the logging in development.- Log failing CSRF token checks as warning.- Using encode_values to encode the value for the values attribut in GETparams now returns a urlencoded value. This results in the values will bedouble encoded. Added decode_values helper method which can decodeurlencoded values back into a python dictionary. WARNING: If you are usingthe values GET param in your application, than you may want to adapt yourcode.- Added/Improved authentification check in setstanding and changepasswordmethod by adding missing checks and more comments.- Make fields for the profile while user creation a logical field which is notstored in the datamodel. This prevents warning messages.- Make field 'retype_password' a logical field which is not stored in thedatamodel. This prevents warning messages1.10.1======Bugfixrelease- Updated translations.- Fixed bug that set the display variable wrong (uses str_repr instead) whenregistering a extension.- Added compatibility mode regading Ringos behaviour on adding "s" to themodul names when registering modules. The name of the modul of the extensionis defined in the extension itself and should be taken as it is on default.However. Ringo tries also load the modul by adding an "s" to be compatiblewith older versions.- Changed warning message on application startup when Ringo notices that thereis a extenstion which needs to be registered. Fixed showing name of theextension.- Fix scaffold for extensions. Handle case that the user cancel the automaticregistering of the modul.- Refactored the importer code in ringo/scripts/db.py and make the code betterreusable for other commands.1.10.0======* The behavior of overviews using the Datatable JS library can now beconfigured with the JSON table configurations too. Formerly only the columnscan be configured.  Now other aspects like, filtering, sorting, paginatingetc. You can also define your own custom filters.The configuration will be generated on the fly based on the JSON config whenrendering the overview. This generated configuration will replace the staticpredefined datatable configurations found in the init.js.* Added datatable-moment.js  plugin to allow sorting datatable tables based ondatefields.1.9.1=====Bugfixrelease- Fix internal list renderer and handle case if current user has nopermissions at all. Then no links will be rendered.- Fix has_role method. Handle case if current user is None.1.9===- Log login attemps. Each successfull or failed login will now be saved in atable called "user_logins".- Show info on last successful and last failed login on the index page of theapplication. Additionally show a warning if there have been more than 5failed logins since the last successful login.This feature need to be enabled in the ini file. See documentation for moredetails.1.8===- Implemented session timer widget. The widget shows the remaining time in thesession before the autologout will be triggered.The widget needs to be enabled in the .ini file. See documentation for moredetails.- Dogpile caching for SQL need to be enabled explicit now.- Enhanced breadcrum feature. Allow to define additional actions which shouldbe displayed in the breadcrumbs beside the default actions.- Changed Mailer. The Subject of the Mails do not include a prepended name of theapplication anymore.1.7===- Ringo no longer does automatic extension registering on serverstartup. Registering a new extension often will write changes to thedatabase. This is dangerous as this will potentially lead intofailing later migrations. So Ringo will now ask the user what to do onserver start. Default is to abort the registration.- Added JQuery UI library. This library is currently not used by ringo itselfbut it provides basic functionality to other applications.- Added breadcrumbs feature to Ringo. To be able to use the breadcrumbs youneed to define a sitetree (See lib/sitetree.py for more details.) Thedefault sitetree of ringo is empty which means no breadcrumbs are shown.- Added "--format" flag for the "ringo-admin db loaddata" command to definethe format of the inputfile. It is now possible to use the CSV importeralso.1.6===- Add functionallity for users so set their standin. Basically this is addingand removing other users to the default group of the user. To use thisfeature the user needs at least read access to the users he wants to set asstandin.- Changes favicon format to "ico" to be more compatible with versions of IE.Improved overwriting of the favicon. The code for favicons are now placed infavicons.mako which can be overwritten by other applications.- Fixed handling of bundled delete requests. Two things has been changed:1. Call the callback before actually deleting it to allow some cleanup.2. Put the flush of the db operations at the end of the method toavoid "Closed connection" errors which happens for bundled deleterequest after the session has been flushed for the first item.1.5===- Added new configuration variable 'app.mode' to be able to run theapplication in a different mode. If set the application will give somevisual indication the the application is in a different mode.- Changed default rendering of overview pages. Instead of using acomplex overview with advanced search filters e.g Ringo now uses asimplified overview on default. The behaviour can be changed by eithersetting a global `layout.advanced_oveview` configuration varible inthe ini file or per table configuration in the json config of thetable. In the simplified overview features like pagination are currently disabledregardless what is configured in the table configuration. This may change infuture versions.- Changed click behaviour in overview tables. Rows are now clickable. With thechange to the simplified overview code the way to select items from theoverview changed also. Links has been removed completely now. Instead thewhole row is clickable.1.4===- Dropped SQLite support because of missing support of data migrations usingalembic. Postgresql is the new default for the DMBS system.Added psycopg2 as requirement. Actually Sqlite support was broken sinceversion 1.2.- Removed fixtures for initial data. Data is now added to the migrationscripts.- Added new "--format" flag for the "db savadata" command to determine theexport format. Default is JSON.1.3===- Added new configuration varibale (auth.timeout_warning) to configure howmany secods before the autologout happens a warning will be shown.1.2.2=====- BaseFactory now take an optional argument for a request.- The callback parameter in the views can now take a list of callbacks too.The handle_callback method is able to handle this correct. Please note thatthis mechanism needs some effort of the developer to build this list in theview function.- Add additional callback parameter to the create view of users. This allowsother views to overwrite the user create view and add custom callbacks.1.2.1=====- Fixed circular dependency error on migration using alembic after addinguid and gid fields for users and usergroups which where self referencing.1.2.0=====Beside the major changes which are listed below this version include manysmall bugfixes and improvements in the code, usability and performance.New:- Add option to provide external validators to the update and create view.They will be used for additional validation of the form.- Implemented a simple Warning Dialog if the user leaves of form withoutsaving the changed data first.- Added simple spinner which pops up if the loading of the page takes longerthan 400ms.- Added new "ringo-admin app init" command to initalise a folder containinga initial config file.- Password must be at least 12 chars long and include 2 non-letters.- Added support for loading configurations in case of multi-derivedapplications. Added new app.base configuration variable.- Added new helper command to copie the static files of formbar into tocorrect location in ringo.- Added option to name the authentification cookie. Needed if there are morethan one ringo application on a server.- Added a warning dialog which shows if the user leaves a form without savingit before.- Do permission checks on submitted values for relations on POST requests.Users are not allowed to set items in relations for which they do not haveread permissions.- Log changes of uid and gid.Changed:- Enabled Mako default HTML escaping for Template rendering globally in inifile and explicit for form rendering, dialog rendering and listingrendering. Excluded html escaping for messages and the admin scripts as therendered result is not aimed to be displayed in a browser.- Seperated requirements for testing, installation etc.- Static files from formbar are only copied on application start if there arenot already the formbar files located in ringo. (Need some work). See"formbar_static" command.- Fixed typos in german translation.- Changed behavior of the warning for a nearing auto logout. Instead ofshowing after 95% of the logout time is up it will now be shown 3 Minutesbefore the actual logout happens.- The modules for Roles, Users and Usergroups are now inherited from the"Owned" mixin class.- Changed setting the GID for new items. Changed order of determiningthe GID (inverse order). First try to get the default_gid from themodul. If not present use the default_gid from the user. Of nodefault_gid is set at all leave the GID of the new item blank.Removed:- Removed group role feature. This feature was only rarly used.- app.url configuration variable which was intended to use in scenarios wherethe application is not hosted under the root of the server. Seedocumentation for deployment for more information on how to setup theapplication now.- Static files of formbar are no longer copied into the static files of ringoon application start. These files are now dynamically loaded from formbar.- Invoke command "formbar_static"1.1.0=====New:- Added "openmodal" option to LinkfieldRenderer- Added "action" option to LinkfieldRenderer to be able to render otheractions then read and update links.- Added _get_permission classmethod in the Baseitem class. This class can beoverwritten to implement a custom way to build the ACL for this class andinstances.- Added info page after login if the account has been disabled.- Added --path option to load and save fixtures to be able to load alternativefixtures.- Implement setting dot-separated values in items.- Implemented fuzzy search. The search now supports the "~" operator totrigger a fuzzy search which uses the doublemetaphon as primary algorithmand falls back to the levenshtein algorithm as secondary it the primaryfails.Changed:- Only show "Homepage" on index page if the user is actually logged in.- Fixed DTListRenderer which was only rarly used and seems to be broken forsome time. The fix onyl gets it working again. There is still work to do tomake it work as the default ListRenderer (Display of Link e.g).- Allow custom title and body in confirmation dialog.- Use form parameter when getting the create form. Usefull when you want touse an alternative form to create an item.- Hide attribute of ActionItems also affects overview lists.- "ringo-admin modul add" command does not generate SQL code anymore. Insteadof this it will print out code for the fixtures.- Make the application base url configurable using the app.url configparameter.- Added title tooltips in context menu- Only save paths in the history and not full qualified URLs.1.0.0=====WARNING! This update is a major upgrade of Ringo which may break your application!It removes many of the core modules in the application! This will break yourapplication if you use one of the removed modules. In this case stay with the0.18.0 version.The following modules has been removed:- Removed Log module- Removed Tags module- Removed Printtemplate module- Removed Appointment module- Removed Comments module- Removed File module- Removed News module- Removed Todo moduleThe modules will be converted into extensions.With version 0.16.2 Ringo supports loading extensions to enhance thefunctionality of the application. This should be the default way to addoptional features to a Ringo based application. Since the removed modules allimplement general features which are optional to your application and aren't abasic requirement, they has been removed from the core now. This reduces thecode base and make the core faster and more secure. The later is an importantprecondition for post 1.0 goal: Getting much more secure to get ready to buildrock solid web application in Ringo.New:- Added Label field to the roles module.- Added new "fixture" command in ringo-admin to load and save fixtures.- Added new "revision" db command in ringo admin to generate a new(autogenerated) alembic migration script.- Added fixtures for initial data.- Support german locale in datefields. (Requires new formbar)- Added showall option for Listfieldrenderer to show all elements regardlessif the user is allowed to read the item. If the user is not allowed to readthe item no link to open the item will be rendererd.- When creating a new user a usergroup for the new user will be generatatedautomatically. The new usergroup will be set as default usergroup for thenew user if no other group is set while creation.Changed:- The documentation is now opened in a new browser window instead of openingit in a modal popup window.- Modal dialogs can not be closed by clicking in the background.- Reimplemented openmodal function in listingfields. Has been removed byaccident.- Changed behaviour of the onlylinked attribute in listingfields. Also removesthe checkboxes now as there is no reason to link/unlink items if only thelinked items should be displayed.- Improved user language detection in Javascript. Language setting is nowdetermined by calling a remote function in the Rest API.- The create method of factories now require a values attribute! It is notoptional but can be empty to get the old behaviour.- ShowRemoved:- Pre 1.0 Migration scripts removed. The older migrations scripts are nowreplaced by one single script. The alembic version of this version is stillthe same so that future migration scripts can be applied to old applicationsas well.0.18.0======- Added option to open items in a modal window.- Show spinner when opening items in a modal window.- Set requirment of formbar to >= 0.9.4.- Added 'url_prefix' and 'url_scheme' the server configuration in the templateof the ini file in base scaffold. This is usefull if the server is runningbehind a reverse proxy.- Added options to configure the startup of the ODFConverter. On default theconverter is not started! This is a change to the previous behaviour!- Loading data in ringo-admin command can optinally be done by using the ID ofthe item instead of the default UUID. This is usefull for initially loadingdata after creating a database in case not all entries in the database havea UUID.- Add support for import and and export of NM-relations. (Experimental). Toenable this feature simply add the --include-relations to the savedatacommand.- Improved translations. Added missing calls to translate function at variousplaces.- Added experimental support for exanding values for dotted attributes (e.grelation.value).- #77 Support alembic >= 0.7.1This will detect missing foreign keys in your datatable.Important:* Please update to a recent version of alembic (currently 0.7.4)* In case you are using SQLite: Mergeringo/alembic/versions/46edfd16f379_.py migration script to your migrationscripts and apply it. Seehttp://alembic.readthedocs.org/en/latest/branches.html for more details onmerging. This will fix errors in the base ringo model.* Please generate a new migration and apply it. If your missing any foreignkeys they will be generated now. If you are using SQLite please refer toringo/alembic/versions/46edfd16f379_.py and see how migration is done forthe base tables.- #87 Remove alembic_sqlite dependeny.As alembic now supports some missing operations like add and drop column onSQLite the helper library alembic_sqlite is not needed anymore.Important:* Please search for the string "drop_column_default" and remove this and thefollowing codeblock from your existing migration files.0.17.1======- Added configuration for transifex- Fixed error when opening News items.- Init the form with the correct eval_url. Provide url_prefix wheninitialising the form.- Show hint on errors in formdefinition in formeditor.- #37: Further fixes.- #86: Fixed extension specific view mapping.0.17.0======- Improved overview and searching.- Added clientsided pageination function.- Added option to add a operators (<, <=, =>, >, ==, !=) to thesearch. If the user has provided a opertors the search will use thisoperator to do the search instead of a search based on a regularexpression. This is usefull for searches on dates.- Improved exporting.- Added RecursiveRelation Exporter.- Added ODF Converter.- Insert scaffold of a formdefinition when creating a new form.- Added support for translations in extensions.- Status messages are now rendered at the top of the page.- Added option to set a custom header with logo above the navbar more easily.- #37: Change ownership only for admins- #48: Add support to drop columns in SQLite.- #50: Change behavior of "click-seaerch-filter" in overviews- #64: Better indication of current edit mode- #67: No ISE on reading data from the import file. Show error dialog now.- #68: Installation/Setup fails because of missing files- #82: Migration of the database for the first module sometimes does not work- #85: News can't be marked as read0.16.3======- Important: Changed the way how the DBSession is setup. See ringo/__init__.pyfile how it is setup now and adapt you application.- Added commands to generate SQL to restrict and unrestrict access to table ofa modul on database level (only postgres)- Fixes of loading Form and Overview configuration.- Add escaping into the renderer0.16.2======- Add function to load ringo extenstions.- Changed logging in application (Removed and modified)0.16.1======- Allow configuration of caching of pages and static content.- Add various option to enhance cookie and session security.- Set headers to enhance security according tohttp://ghaandeeonit.tumblr.com/post/65698553805/securing-your-pyramid-application0.16.0======Refactoring of views:* Seperation of views: Basic views (LCRUDIE) are now located underviews.base.list ... views.base.export. Removed views/base.py.* Moved REST logic into the corresponding new view modules.* Moved methods and code from views.json into the new views.api andviews.response modules* views.api: Modul with method used by the client.* views.respose: Modul with special Response objects.* views.request: Modul with methods (handlers) with common logic for various views.* views.helpers : Modul with helpers methods (getters) to get things like to forms orinformation from the request.Refactoring of model:* Removal of the request dependecy in the base model.Refactoring of the setup of the modules.* Removal of several class methods like get_action_routename and get_itemactions into lib.helpers and others.Refactoring of lib:* Splitted large lib/helpers.py into various files under lib/helpers.* Splitted large lib/renderer.py into various files under lib/renderer.HOWTO Upgrade:* The following methods has been moved:- get_table_config -> lib/table.py- get_form_config -> lib/form.py- get_action_routename -> lib/helpers.py- get_item_list -> model/base.py- get_item_modul -> lib/helpers.pySearch for these methods in all *.py and *.mako files and adapt the call.0.15.2======* Use app title instead of app name as prefix in subject of notification mails.* Fix urls in import, export dialogs. Use get_current_route_patch instead ofURL (causes errors with SSL behind an reverse proxy)* Fix import. Handle NULL values correct for integers.* Fix handling NULL values in sorting.* Use new formbar version 0.9.0. Fix some rules.0.15.1=======Refactoring. Cleanup Model and try to get rid of pyramid specific elementslike the request.* Removed __json__ method. JSON export is now completely handled in theExporter (JSONResponse)New:* All Mails will have the application name in the subject.* Add "nolink" Attribute to the DropdownRenderer.* Added new TagFieldRenderer. Will only show tags which are associated to noor the items module.Bugfixes:* Translate options in dropdown lists.* Translate headers in newslist.* Fixed automatic translation in connection with mappings.* Handle case if an attribute returns a BaseList as selected items inListRenderer.Changes:* Text in News is now a Textarea.0.15.0=======IMPORTANT: Application will need some work on application initialisation tostay compatible with this release:1. rename add_route to setup_modul2. Move setup of modules into a "includeme" method.3. Use config.include("appname") to call the includeme method.4. setup_finished callback is removed.- Changed the way how the routing is setup on application initialisation. Nowiterate over all available modules from database and configure the routesfor each modul instead hardcoding the configuration including importing themodules etc.- Added new ringo-admin command.- Removed old add-ringo-modul command.- Automatic logout after a configurable time. Defaults to 1800sec. Some timebefore the loggout a warning dialog will be raised.- Removed deprecated "ignore" filter for selections. Use must use filter now.- Filter option and items Dropdowns and Listings (Listfield, Comments) on user permissions.- Changed permission system. Add user roles to the user if the user is memberof the items group. Added group roles additionally.- Usergroups and Roles now have a description.- Statemodel of forms only have two states now: Draft, Published- Added support for Regular expressions in search (again). Now you canconfigure if the searchterm is a regular expression or not.- Show userlisting in roles.- #47: Added last_login column- Changed caching. Replaced class based caching partially with request basedcaching if possible. Use new Cache object (lib/cache.py) for caching ingeneral.0.14.1=======- Fixes in the overview* Sorting on BaseItems is done based on their string representation.* Filter expressions are now escaped. This allows special chars in thesearch. Therefor regular expressions are currently not supportedanymore. See #52.* Search is now case insesnsitive.- Fix expandation of value in readonly dropdowns.- New formencode version 0.8.1- New registed users will have the user role in addition to the user group now.- Implement formbar translation.0.14.0------- Update to JQuery to 2.1.1- Update to Bootstrap 3.1.1- Changed permission system.- Add boolean flag to choose if the group roles should be included in the user.get_roles()- Changed building the principals of the user. Group roles will only be addedto the user if he is actually member of the items group on permission check- Add option to configure a default group on modul level which will be used oncreation time as group if no special user default group is defined.- Added information about the users profile to the user form.- Allow refering to python properties in ListingFieldRenderer.- Only render link in Dropdownfields if the user is actually allowed to viewor update the linked item.- Support alternative forms in the update view.- Fix configuration of default sorting order in tableconfig (Was ignored).Changed default to asc.- Add sorting to the ListfieldRenderer based on the tableconfig.- Show number of items in the header of item overview pages.- BaseLists are now iterable.- Add label of the forms modul in the forms overview.0.13.1------- Added option "not specified" to gender field in profile.- Improved rendering of dropdownfield. Fixed emtpy field if there is no linkeditem.- Worked on importer. Handle uuid values correct on import.- Fix deleting profiles if a user is gets deleted.0.13.0------- Improved Formbar form editing. Use new ACE (http://ace.c9.io/) JS basededitor to edit the form definition. Requires new formbar lib (>= 0.7)- Add preview tabs to the form editor, which allow to see a basic previewof the form. The preview does not support any dynamic now applicationspecific renderers.- Write the formbar specific CSS and JS on application start into the ringostatic folder.- Do not include the JS and CSS code of formbar into the document. Instead useto dynamically written CSS and JS files to reduce the size of the generateddocument.- Improved password encryption. Replaced use of pythons built in hashlib.md5algorithm with the use of the passlib library(https://pythonhosted.org/passlib/index.html) for more secure password.0.12.1------- Improved export of Blobform items. Instead of exporting the "data" attributeall field in the data field will be flattend and added to the toplevel ofthe export.- Added Import and Export to the profiles module0.12.0------- #12: Implemented basic version of bundled actions. Currently "Delete" and"Export" is supported.- Modified export. Export now supports exporting more than one item (Bundledactions)0.11.5------- Added more testcases- Added new configuration variable "security.enable_csrf_check" inconfiguration files.- Use default excel dialog on CSV export.0.11.4------- #41: Cleanup of code. Remove init_model function calls, Removed initializedbscript which was used to initialize the database for the application. Nowalembic is used for this.- Removed default ItemFactories, Removed default __unicode__ functions.- Added more testcases0.11.3------- Changed order of calls to add relations, handle events and saving the valuesin the item. Prevents errors when inheriting informations from linked items.- Fixed setting max_age in auth_tkt cookie. Fixes error in IE10 for if runningin pyramid > 1.4.5.- Changed import. Import now allows importing multiple items. After the importhas finished a result page is shown.- Implemented import and export as CSV.0.11.2------- Splitted requirements. Required packages for testing are now installedlocally.- Added unittests to test /lib/helpers- Added unittests to test /views/index- Enhanced Profile modul. Added gender field. Make some fields desired and required.- Added "multiple" attribute to Listfield Renderer. Allows the restrict theselection of items to one item at once. Only implemented on client side.- Add support for list elements while accessing a "." separatedattributes in the __getattribute__ method of the BaseItem.- Add relation from tags to modules to allow modul specifc keywords.- Add tags to forms.- Add comments to forms.- Ported "filter" attribute of selectionfield renderer to the listfield renderer.0.11.1------- #36: Another try to fix caching problems. This is another approach to5c152bd which tried to disable the caching at gets lost. (maybe a mergeerror)0.11.0------- Add service under "rest/rule/evaluate" to evaluate rules. Service is usedfor client side evaluation of rules in the formulars.- Provide the user roles as "_roles" value in the form. This value can be usedto model role based rules in the form. Form needs a hidden field which takesthe provided "_roles".- Removed category from form form and table configuration. It is currentlyunused.- Changed rendering of ringo specif dropdown.- Add option to configure group and owner inhertinace on creating newinstances in the Owned-Mixin.- Deletion of Items now cascades to Logs, Comments, Versions and nestedElements.- #18: Added some ringo artwork.- #8: Make documentation available in the application0.10.0------- Add new requirement of py3o.template library.- Add Printtemplate modul. Printtemplates are ODT or ODS documents which areused as templates for generating nice looking documents. On processing thetemplate placeholders in the template will be replaced by values of theitem. The template can include basic python expressions. E.g to iterate overlists.- Add Printable Mixin. Inheriting from this mixin will add a print action tothe item.- Fixes on permission checks. Add button to add new items in listing only ifthe user actually has permission to add new items.- Add "showsearch", "hideadd", "nolinks" attributes to listfield renderer toenhance configuration of rendering.- Render permissions of a role as FieldList.- Add TodolistRenderer. Render todos in the home view.0.9.2------ Add Versioned mixin. This mixin can be used to store different versions ofan item. On each update of the item the serialized values of the item willbe saved in the version table. The versions are later used to showdifferences between the current and a given prior version in the form.- Add get_values function to the BaseItem to return a dictionary containingall values of the item. Optionally the items can be serialized (thisis a very simple serialisation).- Reorganised automatic logging and changing states. The former version wasimplemented as update handler in the mixin classes and was basedon the SQLAlchemy "history" functionallity. Unfortunately this historywasn't as much reliable as expected in some corner cases. The update handlerwas removed and changing the states and logging are now implemented directlyin the save method of the item.0.9.1------ Replaced route_url with route_path.- Fixed rendering of links in the dropdown renderer. Consider user permissionon link generation (read/update).- Added options to the Table renderer to configure the responsive behaviour oftable columns. You can now define which columns should be visible on whichscreenwidth. Defaults to show only the first column.- Workded on Formeditor. Implemented selecting a form when creating new(blobform) items.- Introduced warnings (formbar 393:bbd7a5192e29). Validate the item on loadingto generate warning.- Handlers in the statemachine now get the transition as additional parameter.This is usefull das the transformation gives access to the state,statemachine and optionally the request.- Use sorting configuration from table config in DTLists.- Added paginated DTList.- Check if the user is still allowed to edit the item after he edited it(Statechange). If not call alternative read URL.- Improved performance. Do some caching here and there.0.9.0------ Added comment modul- Added tags modul- Added todo modul- Added forms module- Write save method for items like the save method of formbar.Overwrite the method in Blobforms.- Overwrite get_attr, get_value method in blobform to handle gettingvalues from the datafield.- Think about how to handle multiple forms for one item. Currentlythis is hardcoded on itemlevel which form should be used.- Added UUID field for each BaseItem- Implement simple Import and Export. Only single items. No relations.- Added JSON Importer and Exporter- Added import and export functions in the view for ringo modulesexcept for the modul modul- Small layout fixes (flash messages)- Modules can now be placed in the "user menu" in the top right. Improvedlayout of this menu with textual headers.- Some code cleanup- Start using "invoke" command for different tasks like testing or buildingthe documentation.0.8.1------ Bugfixes for API Change: BaseLists are not initialized with request instead of request.db- Improved documentation- Some fixes in the basic scaffold. Improved alembic integration.0.8.0------ Added log modul- Added statemachines- Added simple mechanism to call handlers for certain events in the model.This is currently used to:- Update the updated attribute on every change of a item which has themeta mixin.- Create a simple log entry on updating or creating a item.- Worked on caching the result of SQL queries to improbe the performance.- API Change: BaseLists are not initialized with request instead of request.db- Added alembic folders to basic scaffold- Worked on documentation0.7.0------ Added news modul- Use "width" from tableconfig also in DTListings.- Rows in DTLists are now clickable to if the user is allowed to update theitem then the update action will be called on click. Else call the read action.- Fix URLs for the ReST-Api to match basically the typical URL Schema for CRUDactions:* GET /items - Retrieves a list of items* GET /items/12 - Retrieves a specific item* POST /items - Creates a new item* PUT /items/12 - Updates item #12* PATCH /items/12 - Partially updates item #12* DELETE /items/12 - Deletes #12Note, that not all actions are actually implemented yet, but for now the urlschema has beed adapted.0.6.4------ Improved Layout- Use Bootstrap 3- Use new formbar lib (bootstrap 3 compatible)- Optimized space. Removed tabs. Added advanved menu to the context menu foraccessing other content which was formerly placed in tabs.- Only show links for registering users or password reminders if the mailsystem is configured and registering and reminders are enabled in the authsystem. See ini file. Defaults to not enabled.- Implemented a message library. Currently it is used to generate based onmako templating and send mails.- Added option for users to change their password.0.6.3------ Improved authorisation system. Make building ACL more simple and robust.- Implemented configurable str representation of items in the modul setting.- Show the item representation string on every update and read page.- Added new date related helper functions.- Delete usersettings too if the user gets deleted.- Added caching on modules, table and form configs to improve the performance.- Introduced new "form" GET parameter to optionally change the defaultrendered.- Listings- Fixed value expandation in the listings.- Added option to List to do the sorted on the expanded or raw value.- ListingFieldRendererWhen using listing in context with Nested Objects to buildhirachies then take care to only show valid items in the list toprevent building broken hirachies.- Handle "onlylinked" config var in FieldListRenderer.- Handle "ignore" config var in FieldListRenderer.0.6.2------ Fixed user form configuration which leads to an error in password generationwhile creating a new user.- Changed authorisation. Now access to items are also granted if the user ismember of the items group.- Changed authorisation in Itemlists. Only items are included in the overviewif the user has access to read the item.- Updated translations (missing translations for file and appointment modul)- Changed imports of models. Now use specific import_modul function to importmodels in the application to be able to import overwritten clazzes in otherapplications.- Added CSRF protection on POST request. On every POST request now a specialcsrf token is checked. If check fails a Authorisation error is thrown.- Added tab to change the ownership informatio in update and read forms ifownership information is available.- Removed "transform" funtion from lists.- Added new alembic scripts to initialise the database.0.6.1------ Bugfixe on File modul initialisation (missing name)- Added "values" GET param for views. Can be used to prefill forms with givenvalues.- Improved rendering of the ListField Renderer. (Added label, Use new "values"parameter)0.6.0------ Added File module0.5.1------ Added support for alembic for database migrations.0.5.0------ Added Appointment module- Added Renderer for a query DataTable Renderer.- Added Renderer for ListFields. ListFields are Basically listings of relateditems in tabular from providing a checkbox to select and deselect items.Selected items will get linked.- Added "backurl" GET parameter. This parameter can be used to define a URLwhich should be called instead of the default redirect action after create,update or delete succeeds. The parameter is saved in a session.- Added more behave tests (now 42% code coverage).0.4.1------ Added a Ringo specific renderer for dropdown lists which add a small linknext to the label of the dropdownlist.- Added Behaviour Driven Test infrastructure based on "behave"- Small bugfixes.0.4.0------ Added REST-full service. The service is reachable for all modules on theknown url with the prefix "rest". Eg rest/users/list. Using the interfacerequires Authorisation and Authentification which needs to be supplied.- Added "Nested" Mixin class to allow nested items.- When a form has multiple pages the currently selected page is now saved inthe user session. Needs recent formbar version.- Use new get_formbar_js method in inject js code needed for formbar. Neededsrecent formbar lib.- Items with the MetaMixin will have a default created und updated date ofutcnow now.- #25: Added support for custom renderes. Renderers can now be defined andprovied to the view functions. The renderer must be derived from the FormbarFieldRenderer) The view functions will give the renderer to the formbar lib.Need a recent Formbar version (>=0.3.0)0.3.2-----i18n Support:- User custom extractor from formbar for translation string in XML formconfiguration. No need to mark strings in the configurations astranslatable.- Removed lingua requirement.- Added support for translations in the basic scaffold.0.3.1-----Search:- Added a new TableConfig class. This clazz provides an interface to a JSONfile which is used to configure various aspects to the rendering of theoverview tables. This new configuration directive will replace to old_table_fields configuration attribute.- #26: Expand values of relations in the overview from form configuration.- #27: Save current sorting in the session.- #28: Save sorting together with the search query in the saved searches.i18n Support:- #23: I18n Support in renderes. Added more translations.- Added lingua as requirement. Needed for message extraction for i18n Support- Marked form configurations as translateable.- Added support for translating forms. Requires formbar >= 0.2.1- Added support to translate headers in the overview.Misc:- #19: Login should be in a Popup window0.3.0------ #15: Implement Search- Enabled search by clicking on the value in colums.- Added table to save usersettings (DB change!)- Enable saving search queries in the usersettings.- Added dogpile.cache dependency because of caching in sqlalchemy.- Enabled basic caching of SQL queries.0.2.2------ Some improvement in Layout. Make header more compact to not waste to muchspace- Create an empty "forms" dir under views for the basic scaffold. Fixes erroron creating the form.xml files when adding a new modul.- Improved add_<<app>>_modul command. Fixed modul (re) initialisation. It themodul initialisation does not happen on recreating again the database.- Fix get_path function. Path is now relativ to the application (was relativto Ringo)- #10: Add "visible" flag to moduls. Moduls can now be configured in whichmenu to display the modul. (DB change!)- Added new field "clazzpath" to the modul. Needed only internal for dynmicimports on permission checks. (DB change!)- Need formbar in version > 0.1 to be able to render selection fields.0.2.1------ Improved documentation- Added a simple request history (needed for #7)- #1: Error on getting roles while authorisation when user is not logged in- #2: Put some usefull content on the default index page- #3: Set application title in the page header- #4: Add version info page- #5: Add about page- #6: Add contact page- #7: Add dialogs for errors (404, 403)- #9: Cleanup and structure css- #17: Hide checkboxes in overviews if bundled actions are not enabled- #20: Fix layout of flash messages- #21: Complete german translation0.2---First more or less version which includes all basic functionallity.- Added basic scaffold- Added "add_modul" command to add boilerplate code for new moduls.0.1---- Basic model initialisation- Basic page layout- Added authentification0.0----  Initial version