Etna erupts!

We are proud to officially announce ViUR Version 2.2 "Etna", as the latest stable release of our powerful Python framework for the Google App Engine infrastructure. 

In contrast to our previous versions, ViUR 2.2 takes the code name "Etna", following the names of volcanoes all around the globe. We think, Mount Etna is a well-known, active and very erruptive volcano and titular mascot for our framework named after the middlehigh-german word, "viur", for fire. The key aspects on this release where improvements on the existing concepts, so it contains lots of bugfixes. Some nice usability tweaks had been done to the admin interface VI to make life easier and getting more things done in less time. 

Feel free to checkout the server's CHANGELOG as well as the updated documentation. Download ViUR 2.2 now from our download section, and check out the documentation below for further information.


Start presentation

Whats new?

  • selectBone
  • keyBone
  • RateLimit module
  • Improvements in the Vi
  • Miscelleanous

selectBone

The selectBone unions the previously known bones selectOneBone() and selectMultiBone() into one single bone providing a multiple-feature. The new feature is backward compatible, so existing bones behave exactly the way as before.

Old style: pyton single = selectOneBone(descr="Select", values={"1": "A", "2": "B", "3": "C"}) multiple = selectMultiBone(descr="Select", values={"1": "A", "2": "B", "3": "C"})

New style: pyton single = selectBone(descr="Select", values={"1": "A", "2": "B", "3": "C"}) multiple = selectBone(descr="Select", multiple=True, values={"1": "A", "2": "B", "3": "C"})


keyBone

The keyBone is used to store an entity key. The advantage is, that the system can detect bones that contain keys and automatically rewrite or examine them.

Old style: pyton parentrepo = baseBone(descr="Parentrepo", indexed=True, readOnly=True, visible=False)

New style: pyton parentrepo = keyBone(descr="Parentrepo", indexed=True)

Note that keyBones are readOnly=True and visible=False by default. Change this in case the keyBone will be set from outside.


RateLimit

Provides a class that is used to restrict access to certain functions to maxRate calls per minute.

To use it, create an instance of this object in your modules __init__() function. Then call isQuotaAvailable() before executing the action to check if there is quota available and after executing the action call decrementQuota().


Vi: Reload-button in EditWidget

There is a Reload-button now in all Edit masks, which allows to fetch the latest version of the dataset currently shown.

screenshot


Vi: Image viewer

The new image popup shows images and allows for direct download.

screenshot


Vi: Other improvements

  • Support of the new selectBone feature
  • Bones configured as visible=False are rendered hidden now, instead of leaving them out
  • Improved network communication module (network.py) with manual request kickoff and generic error handling
  • ViUR logics v2.2 integrated

Miscelleanous