Skip to main content

A simple web framework with base functionality to build web applications.

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

Ringo is also a standalone application which is under steady development. This
is a benefit if you use Ringo as base for your application. Your application
will get bug fixes, new features or improved functionality in most cases by simply
updating Ringo to a new version.

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
* Basic CSRF protection on POST requests
* Extendible, Configurable

Documentation
=============
Documentation is available on `<http://pythonhosted.org/ringo/>`_


Getting Started
---------------
The fastest way to get an impression of Ringo`s core functionallity is to to
the following steps:

- cd <directory containing this file>

- $venv/bin/python setup.py develop

- $venv/bin/initialize_ringo_db development.ini
or $venv/bin/alembic upgrade head

- $venv/bin/pserve development.ini


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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ringo-0.6.2.tar.gz (547.5 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page