Metadata-Version: 1.1
Name: ringo
Version: 0.11.1
Summary: A simple web framework with base functionality to build web applications.
Home-page: https://bitbucket.org/ti/ringo
Author: Torsten Irländer
Author-email: torsten@irlaender.de
License: UNKNOWN
Description: Ringo
        =====
        `Ringo` is a small Python based high level web application framework build with
        Pyramid . It provides basic functionality which is often used in modern web
        applications. See the list of features for more details.
        
        Ringo comes with an application scaffold which can be used as a boilerplate for
        your application development. See the development part in the documentation
        for more details on how to build a Ringo based application.
        
        In Ringo based applications Ringo plays the role of a base library which
        provides basic functionality. In most cases this basic functionality should
        fit the needs in easy usecases. If it fits not, then it can be extended and
        configured to your need in an easy way.
        
        License
        =======
        Ringo is Free Software. It is licensed under the GPL license in version 2 or
        later. 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 your
        web application based on Ringo:
        
         * Authentication with email registration and password reminders
         * Authorisation with a role based permission System
         * Basic CRUD actions
         * RESTfull interface for CRUD operations.
         * Layout and validation of forms using the `Formbar <https://pypi.python.org/pypi/formbar>`_ library
         * Support for caching expensive SQL queries
         * Regular expression based searching (storeable)
         * Sorting
         * User Profiles
         * Logging of Changes in items
         * Todos, Comment, Tags
         * Statemachines. Items can have states
         * Basic CSRF protection on POST requests
         * Extendible, Configurable
        
        Documentation
        =============
        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 the
        following command::
        
                invoke docs
        
        You need to have the sphinx package installed in order to generate the documentation.
        A generated  (and maybe outdated) version of the documentation is available on
        `<http://pythonhosted.org/ringo/>`_
        
        
        Getting Started
        ---------------
        The fastest way to get an impression of Ringo`s core functionallity is to
        start the standalone application of ringo with the following steps:
        
        - cd <directory containing this file>
        
        - $venv/bin/python setup.py develop
        
        - $venv/bin/alembic upgrade head
        
        - $venv/bin/pserve development.ini
        
        
        TODO
        ----
        See Ringo tracker on bitbucket for more feature requests!
        
        The following list is only an incomplete reminder. Items here should be moved
        to the tracker.
        
        - Send notification mail when a new user registers a new account.
        - Send notification mail when a new user confirms the new account.
        
        0.11.1
        ------
        - #36: Another try to fix caching problems. This is another approach to
          5c152bd which tried to disable the caching at gets lost. (maybe a merge
          error)
        
        0.11.0
        ------
        - Add service under "rest/rule/evaluate" to evaluate rules. Service is used
          for client side evaluation of rules in the formulars.
        - Provide the user roles as "_roles" value in the form. This value can be used
          to model role based rules in the form. Form needs a hidden field which takes
          the provided "_roles".
        - Removed category from form form and table configuration. It is currently
          unused.
        - Changed rendering of ringo specif dropdown.
        - Add option to configure group and owner inhertinace on creating new
          instances in the Owned-Mixin.
        - Deletion of Items now cascades to Logs, Comments, Versions and nested
          Elements.
        - #18: Added some ringo artwork.
        - #8: Make documentation available in the application
        
        0.10.0
        ------
        - Add new requirement of py3o.template library.
        - Add Printtemplate modul. Printtemplates are ODT or ODS documents which are
          used as templates for generating nice looking documents. On processing the
          template placeholders in the template will be replaced by values of the
          item. The template can include basic python expressions. E.g to iterate over
          lists.
        - Add Printable Mixin. Inheriting from this mixin will add a print action to
          the item.
        - Fixes on permission checks. Add button to add new items in listing only if
          the user actually has permission to add new items.
        - Add "showsearch", "hideadd", "nolinks" attributes to listfield renderer to
          enhance 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 of
          an item. On each update of the item the serialized values of the item will
          be saved in the version table. The versions are later used to show
          differences between the current and a given prior version in the form.
        - Add get_values function to the BaseItem to return a dictionary containing
          all values of the item. Optionally the items can be serialized (this
          is a very simple serialisation).
        - Reorganised automatic logging and changing states. The former version was
          implemented as update handler in the mixin classes and was based
          on the SQLAlchemy "history" functionallity. Unfortunately this history
          wasn't as much reliable as expected in some corner cases. The update handler
          was removed and changing the states and logging are now implemented directly
          in 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 permission
          on link generation (read/update).
        - Added options to the Table renderer to configure the responsive behaviour of
          table columns. You can now define which columns should be visible on which
          screenwidth. 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 loading
          to 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 getting
        	  values from the datafield.
        	- Think about how to handle multiple forms for one item. Currently
        	  this 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 modules
        	  except for the modul modul
        - Small layout fixes (flash messages)
        - Modules can now be placed in the "user menu" in the top right. Improved
          layout of this menu with textual headers.
        - Some code cleanup
        - Start using "invoke" command for different tasks like testing or building
          the 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 the
        	  meta 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 documentation
        
        0.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 the
          item 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 CRUD
          actions:
        
            * 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 #12
        
          Note, that not all actions are actually implemented yet, but for now the url
          schema 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 for
            accessing other content which was formerly placed in tabs.
        - Only show links for registering users or password reminders if the mail
          system is configured and registering and reminders are enabled in the auth
          system. See ini file. Defaults to not enabled.
        - Implemented a message library. Currently it is used to generate based on
          mako 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 default
          rendered.
        - Listings
            - Fixed value expandation in the listings.
            - Added option to List to do the sorted on the expanded or raw value.
        - ListingFieldRenderer
              When using listing in context with Nested Objects to build
              hirachies then take care to only show valid items in the list to
              prevent 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 generation
          while creating a new user.
        - Changed authorisation. Now access to items are also granted if the user is
          member of the items group.
        - Changed authorisation in Itemlists. Only items are included in the overview
          if 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 import
          models in the application to be able to import overwritten clazzes in other
          applications.
        - Added CSRF protection on POST request. On every POST request now a special
          csrf token is checked. If check fails a Authorisation error is thrown.
        - Added tab to change the ownership informatio in update and read forms if
          ownership 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 given
          values.
        - Improved rendering of the ListField Renderer. (Added label, Use new "values"
          parameter)
        
        0.6.0
        -----
        - Added File module
        
        0.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 related
          items 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 URL
          which 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 link
          next 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 the
          known url with the prefix "rest". Eg rest/users/list. Using the interface
          requires 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 in
          the user session. Needs recent formbar version.
        - Use new get_formbar_js method in inject js code needed for formbar. Neededs
          recent formbar lib.
        - Items with the MetaMixin will have a default created und updated date of
          utcnow now.
        - #25: Added support for custom renderes. Renderers can now be defined and
          provied to the view functions. The renderer must be derived from the Formbar
          FieldRenderer) 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 form
          configuration. No need to mark strings in the configurations as
          translatable.
        - 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 JSON
          file which is used to configure various aspects to the rendering of the
          overview 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 window
        
        0.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 much
          space
        - Create an empty "forms" dir under views for the basic scaffold. Fixes error
          on creating the form.xml files when adding a new modul.
        - Improved add_<<app>>_modul command. Fixed modul (re) initialisation. It the
          modul initialisation does not happen on recreating again the database.
        - Fix get_path function. Path is now relativ to the application (was relativ
          to Ringo)
        - #10: Add "visible" flag to moduls. Moduls can now be configured in which
          menu to display the modul. (DB change!)
        - Added new field "clazzpath" to the modul. Needed only internal for dynmic
          imports 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 translation
        
        0.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 authentification
        
        0.0
        ---
        
        -  Initial version
        
Keywords: web wsgi bfg pylons pyramid
Platform: UNKNOWN
Classifier: Programming Language :: Python
Classifier: Framework :: Pyramid
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Application
