{ "info": { "author": "Seantis GmbH", "author_email": "info@seantis.ch", "bugtrack_url": null, "classifiers": [ "Framework :: Plone", "Framework :: Plone :: 4.3", "Intended Audience :: Developers", "Programming Language :: Python", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Not a replacement for Outlook or Google Calendar, but a system to manage \nreservations on the backend and to provide them on the frontend.\n\nUpdate to 1.2.0\n---------------\n\n*Warning*: The seantis.reservation release 1.2.0 changed a lot internally,\nwhich is why you can't directly upgrade from seantis.reservation releases\nprior to 1.0.12 (September 27th, 2013) to the 1.2.0.\n\nIf you do have such an old release, install seantis.reservation 1.1.5 first,\nrun all upgrade steps, and then install 1.2.0.\n\nIntroduction\n------------\n\nOriginally developed together with the municipality of Zug, Switzerland\nthis Addon aims to combine differing reservation systems into one\nflexible solution.\n\nIt does so by providing a way to deal with the following usecases:\n\n- Manage meeting rooms in a company. Users reserve the rooms themselves\n without an authority confirming/denying their reservations.\n\n- Manage nursery spots. Parents apply for a spot in the nursery for\n their kid. Someone at the nursery goes through the applicants and\n decides who gets the spot. Parents may add an application to the\n waitinglist.\n\n- Manage community facilities. Citizens see the availability of\n facilities online and call the municipality to reserve a facility.\n The management is done internally (maybe through an already existing\n software). The addon is only used for display.\n\nScreenshots\n-----------\n\n|overview example| |calendar example| |reserve example| |confirm\nexample|\n\nBuild Status\n------------\n\n|Build Status|\n\nTest Coverage\n-------------\n\n|Test Coverage|\n\nLatest PyPI Release\n-------------------\n\n|PyPI Release|\n\nRequirements\n------------\n\n- Python 2.7\n- Plone 4.3+ ( Plone 4.1 and 4.2 had to be dropped, sorry )\n- Linux / Posix ( Windows may or may not work )\n- Postgresql 9.1+ ( Older versions DO NOT work! )\n- 1024MB+ RAM\n\nseantis.reservation is tested using IE8+, Chrome, Firefox. IE7 is not\nsupported! Note also that IE8 and IE9 only work right if the Plone site\nis in production mode. The reason for it is that those browsers ignore\nevery stylesheet after the 32th. In production these stylesheets are\nmerged.\n\nNote that we also rely heavily on javascript as the calendar shown for\nreservations is rendered through javascript. If your requirement is to run\nwithout javascript then this is not the droid you are looking for.\n\nShowcases\n---------\n\n* `St. Thomas Adventure Tours `_\n\nLimitations\n-----------\n\nThese are the things seantis.reservation currently doesn't do, or doesn't do\nwell:\n\n- Multilanguage. It is perfectly fine to run seantis.reservation in the language\n of your choice, though you might have to do some translations for yourself. However,\n you might find the ability to run the site in multiple languages (where the language\n is set on a per-request basis) to be lacking or with rough edges. It should mostly\n work but we cannot guarantee it or tell you that we tested this well.\n\n- Timezones. We currently do not store a timezone with the resource. Therefore\n comparing different resources of different timezones is a no go.\n\n- Recurrence. Though it is possible to create reservations with simple daily\n recurrence, it is not possible to modify them, so if you create 1000 recurrences\n and you make a mistake you have to delete all or adjust them each.\n\nInstallation\n------------\n\nThe setup instructions assume an Ubuntu / Debian Server installation as\nwell as basic knowledge of Plone.\n\nInstall required packages\n-------------------------\n\n::\n\n sudo apt-get install git-core\n sudo apt-get install libxml2 libxml2-dev\n sudo apt-get install libxslt1.1 libxslt1-dev\n sudo apt-get install python2.7 python2.7-dev python-virtualenv\n\nInstall Postgresql\n------------------\n\nRun the installer ::\n\n sudo apt-get install postgresql-9.3\n sudo apt-get install postgresql-9.3-dev\n\nIf 9.3 is not found try 9.2 or 9.1.\n\nIf the dev package cannot be found try ::\n\n sudo apt-get install postgresql-server-dev-all\n\nCreate a database user (replace ``your_password`` with your own). This\npassword is needed later!::\n\n sudo -u postgres psql -c \"CREATE USER reservation WITH PASSWORD 'your_password'\"\n\nCreate a database for your plone site. Each plone site should have its own\ndatabase with the same name as the plone site id. Here we'll later use 'reservations' as the\nplone site id::\n\n sudo -u postgres psql -c \"CREATE DATABASE reservations ENCODING 'UTF8' TEMPLATE template0\"\n\nGrant the required privileges to the reservation user ::\n\n sudo -u postgres psql -c \"GRANT ALL PRIVILEGES ON DATABASE reservations to reservation\"\n\nInstall Plone\n-------------\n\nDownload the buildout configs to the folder which will hold your Plone\ninstallation. ::\n\n wget -qO - https://raw.github.com/seantis/seantis.reservation/master/buildout/buildouts.sh | bash\n\nOr if you don't have wget (like on OSX): ::\n\n curl https://raw.github.com/seantis/seantis.reservation/master/buildout/buildouts.sh | bash \n\nEdit your database connection settings in the database.cfg file. ::\n\n nano database.cfg\n\nUsually you would want to use the following setting in the database.cfg. Be sure\nto change your user and password to the values entered above in the \"Install Postgresql\" step.\n\n dsn postgresql+psycopg2://user:password@localhost:5432/{*}\n\nThis will use the database with the same name as the plone site id. So if your\nplone site's id is demo (i.e. being served unter localhost:8000/demo), then\nthe database name will be assumed to be 'demo' as well.\n\nDownload the boostrap script ::\n\n wget https://raw.githubusercontent.com/seantis/seantis.reservation/master/buildout/bootstrap.py\n\nAgain, alternatively with curl ::\n\n curl https://raw.githubusercontent.com/seantis/seantis.reservation/master/buildout/bootstrap.py > bootstrap.py\n\nCreate a virtual environment ::\n\n mkdir reservations\n cd reservations\n virtualenv -p python2.7 .\n\nBootstrap your environment ::\n\n python2.7 bootstrap.py\n\nRun the installation (and get that coffee machine cracking) ::\n\n bin/buildout\n\nIf everything went well you may now start your instance ::\n\n bin/instance fg\n\nRunning Tests\n-------------\n\nThe tests are run against a Postgres Database. Seantis Reservation uses\n`testing.postgresql `_, which\nwill automatically setup a temporary database using the local postgres server.\n\nThat means that a Postgres server version 9.1+ should be installed for the\ntests to work. If that's the case, you can run the tests as follows:\n\nRun the development buildout ::\n\n python bootstrap.py\n bin/buildout -c develop.cfg \n\nThen run the tests ::\n\n bin/test -s seantis.reservation\n\nCreating a Reservation Plone Site\n---------------------------------\n\nCreate the Site\n~~~~~~~~~~~~~~~\n\nHaving started your instance, navigate to the plone root: ::\n\n http://localhost:8080\n\nIt should say 'Plone is up and running'. On this site click \"Create new\nPlone site\" If you used the develop.cfg the username and password are\n\"admin\" and \"admin\".\n\nObviously you do not want to use develop.cfg in production!\n\nOn the \"Create a Plone site\" form, you should enter name and title of\nyour plone site, followed by checking the box of the following\nAdd-On:\n\n**Seantis Reservation - for default plone theme**\n\nHaving done that, click \"Create Plone Site\"\n\nCreate Resource Folder\n~~~~~~~~~~~~~~~~~~~~~~\n\nOn your freshly minted Plone Site, click on \"Add new...\" and choose\n\"Folder\". Use any name you like.\n\nAdd a Resource\n~~~~~~~~~~~~~~\n\nIn the newly created folder, click on \"Display\" and choose \n\"Resource Listing\".\n\nThis will turn the folder into a view designed for displaying Resources.\n\nAfter changing the view click on \"Add new...\" and choose \"Resource\".\nEnter any name you like.\n\nYou should now see a calendar in which you can create allocations that may\nbe reserved. One level up, in the folder view, you may add more resources and\ncompare them. Of course there is more to learn, but this is the basic setup of\nthe Seantis Reservation module.\n\nData Structure\n--------------\n\nTo really understand seantis.reservation it is important to understand a\nfew core concepts:\n\nResource\n~~~~~~~~\n\nResources are Dxterity content types who display a calendar and interact\nwith the core of seantis.reservation. They are heavy on the UI side of\nthings, while being nothing more than a foreign key in the database.\n\nAllocations\n~~~~~~~~~~~\n\nEveryone familiar with Outlook or Google Calendar knows that one can\njust click on an empty spot and add a new reservation.\n\nIn seantis.reservation this is not the case. In this module, a spot that\nmay be reserved must be marked as such first. This is called an\nallocation.\n\nThe idea is to allocate time which may be reserved. It is like declaring\ntime that should be managed by reservations. Outlook and Google Calendar\nimplicitly see all time as allocated and under their management.\n\nOne reason for this is the fact that only through limiting the available\ntime we can calculate meaningful utilization numbers. Another reason is\nthat some periods of time may be overbooked, other times may not, or\ngenerally speaking: some timeperiods are different than others.\n\nAllocations therefore define how periods of time may be reserved. They\nmay not overlap for any given resource and they are independent of Plone\nand part of the SQL database model.\n\nReserved Slots\n~~~~~~~~~~~~~~\n\nWhen reserving an allocation or a part of an allocation, reserved slots\nare generated. They ensure that no reservation is ever granted twice by\naccident.\n\nReserved slots may start every 5 minutes. At 5.35 or 5.40 for example,\nbut not at 5.36 or 5.39. When reserving 45 minutes of an allocation,\nmany reserved slots are spawned and aligned. Their primary keys then\nensure on a low level basis that no overlaps occur.\n\nFor a much needed example:\n\n::\n\n Resource: 1234\n Allocation: 09:00 - 10:00\n\n => reserve 1234, 09:30 - 10:00\n\n Reserved Slots:\n 1234 09:30\n 1234 09:35\n 1234 09:40\n 1234 09:45\n 1234 09:50\n 1234 09:55\n\n => try to reserve 1234, 09:30 - 10:00 again\n\n Reserved Slot 1234, 09:30 already exists\n\nOf course there are a number of optimizations to ensure that we don't\ngenerated millions of reserved slots. But this is basically it.\n\nReservations\n~~~~~~~~~~~~\n\nReservations exist in two states: Pending and Approved.\n\nPending reservations are reservations on a waitinglist. Users have\nsubmitted them, but nobody has confirmed them. They have therefore no\nreserved slot associated with them.\n\nApproved reservations are reservations who are associated with reserved\nslots and are therefore confirmed and binding.\n\nNote that it is possible in the UI side of seantis.reservation to go\nfrom pending to confirmed automatically. This is called auto-approval.\n\nFAQ\n---\n\nWhy is *Database X* not an option? / Why does Postgresql < 9.1 not work?\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nseantis.reservation relies on a Postgresql feature introduced in 9.1\ncalled \"Serialized Transactions\". Serialized transactions are\ntransactions that, run on multiuser systems, are guaranteed to behave\nlike they are run on a singleuser system.\n\nIn other words, serialized transactions make it much easier to ensure\nthat the data stays sane even when multiple write transactions are run\nconcurrently.\n\nOther databases, like Oracle, also support this feature and it would be\npossible to support those databases as well. Patches welcome.\n\nNote that MySQL has serialized transactions with InnoDB, but the\ndocumentation does not make any clear guarantees and there is a debate\ngoing on:\n\nhttp://stackoverflow.com/questions/6269471/does-mysql-innodb-implement-true-serializable-isolation\n\nWhy did you choose SQL anyway? Why not use the ZODB? Why not *insert your favorite NoSQL DB here*?\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n- If a reservation is granted to you, noone else must get the same\n grant. Primary keys and transactions are a natural fit to ensure\n that.\n\n- Our data model is heavily structured and needs to be validated\n against a schema.\n\n- All clients must have the same data at all time. Not just eventually.\n\n- Complicated queries must be easy to develop as reporting matters.\n\n- The core of seantis.reservation should eventually be independent of\n Zope/Plone.\n\nWhy / How is my allocation colored? My allocation is green, but it should be orange/red!\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nBasically colors are assigned to events based on their availability:\n\n75-100% : Green / Available\n\n1-74% : Orange / Partly Available\n\n0% : Unavailable\n\nThe availability is calculated by taking the total time available and\ndividing it by the time reserved. If an allocation is set to be approved\nautomatically (the default) a 0% availability also means that no new\nreservations can be made.\n\nIf an allcation is set to be approved manually, there's automatically an\nunlimited waitinglist. Reservations to that waitinglist can be made at\nany time - unless the allocation setting is changed - and the number of\npeople in the waitinglist is shown on the allcation itself.\n\n.. |overview example| image:: https://github.com/seantis/seantis.reservation/raw/master/screenshots/milliways-overview.png\n.. |calendar example| image:: https://github.com/seantis/seantis.reservation/raw/master/screenshots/milliways-calendar.png\n.. |reserve example| image:: https://github.com/seantis/seantis.reservation/raw/master/screenshots/milliways-reserve.png\n.. |confirm example| image:: https://github.com/seantis/seantis.reservation/raw/master/screenshots/milliways-confirm.png\n.. |Build Status| image:: https://secure.travis-ci.org/seantis/seantis.reservation.png\n :target: http://travis-ci.org/seantis/seantis.reservation\n.. |Test Coverage| image:: https://coveralls.io/repos/seantis/seantis.reservation/badge.png?branch=master\n :target: https://coveralls.io/r/seantis/seantis.reservation?branch=master\n.. |PyPI Release| image:: https://pypip.in/v/seantis.reservation/badge.png\n :target: https://crate.io/packages/seantis.reservation\n :alt: Latest PyPI version\n\nChangelog\n=========\n\n1.4.0 (2015-12-02)\n------------------\n\n- Move styles from plonetheme.onegov to this package.\n [lknoepfel]\n\n- Visual redesign of the overview calender.\n [msom]\n\n\n1.3.0 (2015-10-27)\n------------------\n\n- Integrates latest libres release which switches to serialized-only queries.\n [href]\n\n1.2.0 (2015-02-10)\n------------------\n\n*Warning*: The seantis.reservation release 1.2.0 changed a lot internally,\nwhich is why you can't directly upgrade from seantis.reservation releases\nprior to 1.0.12 (September 27th, 2013) to the 1.2.0.\n\nIf you do have such an old release, install seantis.reservation 1.1.5 first,\nrun all upgrade steps, and then install 1.2.0.\n\n- Moves the core to a new, plone-independent Python Module (Libres).\n [href]\n\n1.1.5 (2014-09-23)\n------------------\n\n- Changes export/report/latest permissions on the actions to reflect the\n actual permissions needed to open these views. Fixes #164.\n [href]\n\n- Fixes last day not being included in the monthlry report. Closes #163.\n [href]\n\n- Adds email template validation. Closes #156.\n [href]\n\n- Fixes export error when using a unicode character in the resource title.\n Closes #165.\n [href]\n\n- Spell email as 'E-Mail' in German - always. Fixes #166.\n [href]\n\n1.1.4 (2014-08-18)\n------------------\n\n- Fixes allocation search not working correctly with partly available whole-day\n allocations. Closes #162.\n [href]\n\n1.1.3 (2014-08-15)\n------------------\n\n- Fixes wrong times being used for whole day reservations in the search.\n [href]\n\n- Changes search view to be way more ajaxy, giving the impression of a speedup.\n [href]\n\n- Adds the ability to delete allocations found when searching. Fixes #161.\n [href]\n\n1.1.2 (2014-08-12)\n------------------\n\n- Adds the ability to change the times of certain reservations.\n [href]\n\n- Correctly deals with group-allocations in the search view.\n [href]\n\n- Disable the reservation button if no selection is made in the search\n view.\n [href]\n\n- Adds the ability to change the email address of a reservation.\n [href]\n\n- Ensure that the session data is never shared between browsers, even if\n the same user is logged in.\n [href]\n\n- Disables unload protection on search form.\n [href]\n\n- Adds the ability to remove parts of a reservation (timespans).\n [href]\n\n1.1.1 (2014-08-06)\n------------------\n\n- Fixes a bug where reserving a heterogenous group of reservations would\n sometimes lead to wrongly reserved spots.\n [href]\n\n- The availability of partly available allocations in the search view is\n now limited to the time selected in the search.\n [href]\n\n- Correctly aligns the time in the search view.\n [href]\n\n- The search now defaults to 'available allocations only'.\n [href]\n\n- Reservation dates are now always shown correctly in the manage view.\n [href]\n\n1.1 (2014-08-05)\n----------------\n\n- Adds new search & reserve feature. On each resource, users may search\n for allocations. Those allocations may be selected and reserved in compound.\n\n This is a big new feature and 1.1 is meant to be the canary for it. There\n are certain things which don't yet work: group reservations are kept out\n of the search, the compound reservations don't show up everywhere yet and\n there are rough edges in the UI.\n\n If you are not absolutely sure you need this release we therefore recommend\n to wait for a week or two. We'll deliver 1.1.+ which will be a more stable\n and more widely adapted release.\n [href]\n\n- Hide the timeframes selection in the allocation and search form, inside\n an icon close to the dates.\n [href]\n\n- Make sure following the documentation under Ubuntu 14.04 works and clarify\n some things. Fixes #159.\n [href]\n\n- Remove resource description from thankyou-page.\n [href]\n\n1.0.24 (2014-07-16)\n-------------------\n\n- Adds the ability to define green/orange/red thresholds in the controlpanel.\n Fixes #158.\n [href]\n\n- Adds the ability to view formdata that cannot be written anymore. This can\n happen if the custom forms are changed after the data has been written.\n Fixes #150.\n [href]\n\n- Limits the width of the day view, to improve the accessibility of the menu.\n Fixes #157.\n [href]\n\n- Adds a fast way to switch to another view from the allocation menu. Fixes #153.\n [href]\n\n- Exceptions occurring in forms now include the correct stacktrace.\n [href]\n\n- Export filenames now include the year and the month. Fixes #155.\n [href]\n\n- Adds shading (avilability indicator) to the calendar legend. Fixes #154.\n [href]\n\n1.0.23 (2014-06-23)\n-------------------\n\n- Adds unicode check/cross marks for approve/deny/revoke, to increase legibility.\n [href]\n\n- Adds thank-you page shown after submitting a reservation. Each resource\n may have a custom text which is shown under the thank you note. Closes #138.\n [href]\n\n- Refetch less agressively to make the interface 'calmer'. Only actions by\n the user which change something trigger a refresh now. Clicking on the\n cancel button of an overlay for example won't reload the events anymore.\n [href]\n\n- The date is now correctly localized in all the views as well as the calendar.\n Fixes #142.\n [href]\n\n- Renames \"Reservation Quota\" (eng) to \"Number of Reservations\". Fixes #143.\n [href]\n\n- Availability partitions are now more visible. Fixes #149.\n [href]\n\n- Allocations which are not completely displayed on the calendar now show\n correct availability partitions. Fixes #145.\n [href]\n\n- Correctly handles partly-available whole-day allocations. Fixes #129.\n [href]\n\n- No longer raise an exception to the user if a nonexistant reservation is\n removed from 'your reservations'. Fixes #123.\n [href]\n\n1.0.22 (2014-06-05)\n-------------------\n\n- Adds new reservation-assistant role which may view but not edit submitted\n reservation data.\n [href]\n\n- Fixes overlay js failing if loaded after jquery tools.\n [href]\n\n- Slims down the session handling code.\n [href]\n\n1.0.21 (2014-03-26)\n-------------------\n\n- The messages shown when reserving/confirming a reservation have been\n reworked to be more informative.\n [href]\n\n- If an overlay fails to load the remote address after a click, an error\n is shown.\n [href]\n\n- Email addresses are now verified and stored without leading or trailing\n space. Fixes #127.\n [href]\n\n- Shows an error when displaying or submitting the reservation confirm form, if\n no reservation can be confirmed. Fixes #128.\n [href]\n\n1.0.20 (2014-02-25)\n-------------------\n\n- Fixes inability to reserve a group reservation. Closes #124.\n [href]\n\n- Fixes a major Heisenbug occurring in testing using the latest SQLAlchemy\n release.\n [href]\n\n1.0.19 (2014-02-05)\n-------------------\n\n- Adds next/previous 30 days to latest reservations report.\n [href]\n\n- Adds month/year filter to the export. Fixes #101.\n [href]\n\n- Replaces the export list view with a form where the export type, format and\n other options can be chosen.\n [href]\n\n- Improves print style for single reservation view. Fixes #109.\n [href]\n\n- Adds seantis.reservation specific browserlayer.\n [href]\n\n- Adds xlsx as output format to exports.\n [href]\n\n- Adds option to define one global manager email address. Fixes #69.\n [href]\n\n- Start treating sqlalchemy warnings during tests as errors.\n [href]\n\n- Adds a link to the reservation to the manager email. Fixes #117.\n [href]\n\n- Adds the reservation quota to the reservation confirmation mail. Fixes #111.\n [href]\n\n- No longer send reservee emails to the reservation manager. Fixes #118.\n [href]\n\n- Richtextfields may now be exported to excel/csv/json. HTML is converted into\n text when this is done.\n [href]\n\n- Dates in the excel/csv/json export are now uniformly exported in ISO8601.\n Fixes #116.\n [href]\n\n- Reservation data is now stored more transparently. This has no effect\n for users, but it ensures better data integrity in the future. Fixes #119.\n [href]\n\n- Integrates seantis.plonetools.\n [href]\n\n- Make sure that the exposure checking method doesn't trip up if the resource\n may not be viewed and is therefore None. Fixes #114.\n [href]\n\n1.0.18 (2014-01-21)\n-------------------\n\n- No longer throws an exception if the allocation cannot be found. Returns\n a 404 instead. Fixes #112.\n [href]\n\n1.0.17\n------\n\n- The print link is now shown in the monthly_report. Fixes #33.\n [href]\n\n- Custom e-mail templates now show a translated template upon creation, if the\n translation is available. Fixes #92.\n [href]\n\n- Adds quota to email templates. Closes #41.\n [href]\n\n- Clarify the received reservations email helptext, ensuring that it's clear\n that this mail is sent in all cases. Closes #95.\n [href]\n\n- Ensures that different logged in users don't see each others reservations.\n [deiferni]\n\n1.0.16\n------\n\n- Fixes throttling being triggered on invalid reservations. Throttling should\n only be active if the reservation is actually made.\n\n1.0.15\n------\n\n- Adds the ability to define pre-reservation script which may trigger\n validation errors on the reservation form.\n\n1.0.14\n------\n\n- Adds the ability to print single reservations.\n\n- Adds the ability to remove a reservation without sending an email.\n\n1.0.13\n------\n\n- Adds a new 'latest reservations' report, showing reservations done in the last\n 30 days.\n\n1.0.12\n------\n\n- Removing expired sessions no longer results in orphan reserved slots. Existing\n orphan reserved slots are removed by the upgrade step.\n\n- Exceptions in the 'your-reservations' form are now handled correctly,\n resulting in properly displayed errors.\n\n1.0.11\n------\n\n- The date and start-/end-time are now properly disabled on the form if they\n may not be edited.\n\n- Fixes 'continue' button not working on group forms\n\n- Fixes radio-buttons and check-boxes not showing up on group forms\n\n- Fixes a minor style issue in the teamraum theme\n\n1.0.10\n------\n\n- Fixes 'your-reservations' from bugging out if a date before 1900 is entered\n\n1.0.9\n-----\n\n- Fixes being unable to confirm 'your-reservations' outside the resource.\n\n1.0.8\n-----\n\n- Adds a new view for exports which initially offers the existing reservations\n export and a new 'compact' export.\n\n- Adds created / modified columns to reservation exports.\n\n- Having different resources with different formsets no longer leads to errors\n when trying to do multiple reservations.\n\n- Increases the maximum allocation quota from 100 to 1000\n\n- Fixes typo in English text.\n\n- Improves German texts.\n\n1.0.7\n-----\n\n- Removes potentially dangerous orphan removal from settings panel.\n\n- All reservation records stored in Postgres belonging to a certain resource\n are now wiped if said resource is deleted.\n\n The exception is the removal of a plone site through the ZMI. Though it is\n possible to intercept that event it is not entirely save to discard all\n resources that are part of plone site being deleted. It is namely possible\n that those have the same uuid as another existing resource of another site.\n\n To clean these kind of data zombies it might be good to create a tool with\n which reservations before a given date are wiped or archived.\n\n This is however not a priority as it is recommended to have a separate\n database for each site anyway and until there's a high volume reservations\n site in existance this won't ever be a problem. Postgres can handle unused\n records.\n\n- Stops allocation.mirror_of from potentially being NULL.\n\n- Fixes a bug where reservations could be added to waitinglists on allocations\n that were not meant to have a waitinglist.\n\n- Fixes typo in German translation\n\n1.0.6\n-----\n\n- Adds the ability to edit the formdata of a reservation through the management\n or the report interface\n\n- Adds the ability to define Manager Formsests which are the same as Default\n Formsets but can only be edited by someone with the appropriate permission.\n\n With these formsets and the ability to edit the formdata it's possible to\n create simple ways to organize reservations. A manager formset could be added\n with a checkbox \"paid\" for example, along a normal formset with the address.\n\n Each reservation will then have an address filled by the user and a \"paid\"-checkbox.\n The reservee cannot see or change this checkbox, but the manager can do so\n once the reservee has actually paid whatever he was supposed to.\n\n The initial values of those manager-only fields are defined throught the\n Dexterity-Schema editor.\n\n- No longer compresses URI.js, fixing javascript errors in the browser\n- Fixes missing translations in certain cases (locale.js is now more robust)\n- Uses ajax on the monthly report to load reservation changes\n\n1.0.5\n-----\n\n- Adds whole-day flag to reservations export\n- Adds quota to reservations export\n- Adds the ability to show/hide the timetable in the monthly report\n- Keep filter state between months in monthly report\n- Adds basic support for plonetheme.teamraum\n\n1.0.4\n-----\n\n- Fixes German translation typo\n\n1.0.3\n-----\n\n- Adds email sent to managers when a new reservation was automatically approved\n- Focuses on first input when switching tabs in wizard forms\n\n1.0.2\n-----\n\n- Fixes crash in JSON Encoder\n\n1.0.1\n-----\n\n- Fixes some tiny issues\n\n1.0\n---\n\n- Initial release", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/seantis/seantis.reservation", "keywords": "reservation calendar seantis plone dexterity", "license": "GPL v2", "maintainer": null, "maintainer_email": null, "name": "seantis.reservation", "package_url": "https://pypi.org/project/seantis.reservation/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/seantis.reservation/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/seantis/seantis.reservation" }, "release_url": "https://pypi.org/project/seantis.reservation/1.4.0/", "requires_dist": null, "requires_python": null, "summary": "Plone addon to reserve stuff in a calendar.", "version": "1.4.0" }, "last_serial": 1843121, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "7ca85a9543ef3feba4ecec6de190072f", "sha256": "a43573f9bc3d16b9185372acda223485ef2a662fdac9e3419d37c57edf4a00b4" }, "downloads": -1, "filename": "seantis.reservation-1.0.tar.gz", "has_sig": false, "md5_digest": "7ca85a9543ef3feba4ecec6de190072f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 168029, "upload_time": "2013-04-29T12:29:33", "url": "https://files.pythonhosted.org/packages/77/a5/19f53861ecb03631423ad5996701f3123bfac222d393a57e51e9b2ba3e0b/seantis.reservation-1.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "ecf21f78dbf3eaf9927f66ca555c9965", "sha256": "014d772956d158a9d60f51cd9de1a58935cacfdde2edf70bc714ba99b5539620" }, "downloads": -1, "filename": "seantis.reservation-1.0.1.tar.gz", "has_sig": false, "md5_digest": "ecf21f78dbf3eaf9927f66ca555c9965", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 167150, "upload_time": "2013-05-06T08:50:50", "url": "https://files.pythonhosted.org/packages/6f/d3/fe109ed1805fc371ac7cffc969b63914672582af4c7731add681eeaa36c5/seantis.reservation-1.0.1.tar.gz" } ], "1.0.10": [ { "comment_text": "", "digests": { "md5": "bb3a184cc0b1c68a3666ffc416862689", "sha256": "526405b0095ec7adfbe8515ad7b4839a577d2e19e9a65fa79d9358410b58b3f4" }, "downloads": -1, "filename": "seantis.reservation-1.0.10.tar.gz", "has_sig": false, "md5_digest": "bb3a184cc0b1c68a3666ffc416862689", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 185931, "upload_time": "2013-09-13T14:48:33", "url": "https://files.pythonhosted.org/packages/cb/8e/03e9822fc4c3f9ba1f2f01d827f9b26a616569189ce03e1f7fc38bce332d/seantis.reservation-1.0.10.tar.gz" } ], "1.0.11": [ { "comment_text": "", "digests": { "md5": "7d6c408ebfcbda8c95429f8670cb3179", "sha256": "bbcb424dcc80e74e79263156e7eb3e90d3e1fb4a38517fe8b90a9cb6cbbcebf3" }, "downloads": -1, "filename": "seantis.reservation-1.0.11.tar.gz", "has_sig": false, "md5_digest": "7d6c408ebfcbda8c95429f8670cb3179", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 187312, "upload_time": "2013-09-23T08:51:29", "url": "https://files.pythonhosted.org/packages/60/ee/468346b472f3379da654a421023daf7a98f8dfb6f7ecd4ca4c1d726b311b/seantis.reservation-1.0.11.tar.gz" } ], "1.0.12": [ { "comment_text": "", "digests": { "md5": "ef6f846549e97d32a3f47757cbc9fb08", "sha256": "86312821c2dd7c6d94aec35c289579e465294766dc062319a84162be0a3c9e2c" }, "downloads": -1, "filename": "seantis.reservation-1.0.12.tar.gz", "has_sig": false, "md5_digest": "ef6f846549e97d32a3f47757cbc9fb08", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 188008, "upload_time": "2013-09-27T08:24:02", "url": "https://files.pythonhosted.org/packages/f5/1e/8fc3f93768493eac38e342ddf1eb99e72a11b85f21dcb3ec2dbb52fc2e79/seantis.reservation-1.0.12.tar.gz" } ], "1.0.13": [ { "comment_text": "", "digests": { "md5": "a7eed2bc79f98b15c51e5cf3b099cde9", "sha256": "34b08ad4f4e23b257da9cb895cc248f1cf896309e2ee67a297c1492c1e7e8d68" }, "downloads": -1, "filename": "seantis.reservation-1.0.13.tar.gz", "has_sig": false, "md5_digest": "a7eed2bc79f98b15c51e5cf3b099cde9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 191281, "upload_time": "2013-09-27T10:41:25", "url": "https://files.pythonhosted.org/packages/75/2c/833892c78370d1e1b393d7fe511aeffde5c1fd0178d2aa86c850129d340e/seantis.reservation-1.0.13.tar.gz" } ], "1.0.14": [ { "comment_text": "", "digests": { "md5": "7f2b5f19b58fdcf189a9cd79763ad4bf", "sha256": "3eff8b65b7a4be0a3d91e482ae9b1821b43a403356f14d866ea5feca4d1fce4e" }, "downloads": -1, "filename": "seantis.reservation-1.0.14.tar.gz", "has_sig": false, "md5_digest": "7f2b5f19b58fdcf189a9cd79763ad4bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 192027, "upload_time": "2013-10-04T11:41:03", "url": "https://files.pythonhosted.org/packages/9b/d1/cfbe1c927aa1ee77097a3828b88a56bf91b507b3eb1e53be38c309195f83/seantis.reservation-1.0.14.tar.gz" } ], "1.0.15": [ { "comment_text": "", "digests": { "md5": "68a6474cb7ad5fcced5286d883960bf6", "sha256": "a9be0abf8fe87629bda7b9aa940285de867a6f599c2f74e21b70bb5aef41e681" }, "downloads": -1, "filename": "seantis.reservation-1.0.15.tar.gz", "has_sig": false, "md5_digest": "68a6474cb7ad5fcced5286d883960bf6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 195677, "upload_time": "2013-10-10T09:44:04", "url": "https://files.pythonhosted.org/packages/50/34/3e99216514b7decb74e506552ca24be488ca353a9d6a51ab0db9e5d65d35/seantis.reservation-1.0.15.tar.gz" } ], "1.0.16": [ { "comment_text": "", "digests": { "md5": "2d4c719054ca643aaa4b63459c8cb91f", "sha256": "13d62ed11c3c7df819a4e63ab382818922c38ff8f06e1ea6d6a4048097e196be" }, "downloads": -1, "filename": "seantis.reservation-1.0.16.tar.gz", "has_sig": false, "md5_digest": "2d4c719054ca643aaa4b63459c8cb91f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 195630, "upload_time": "2013-10-10T12:03:59", "url": "https://files.pythonhosted.org/packages/ea/47/be94f994f2e88144436fa789d7dac126c46a638ed4ab5a7814f74a6a7dad/seantis.reservation-1.0.16.tar.gz" } ], "1.0.17": [ { "comment_text": "", "digests": { "md5": "7a316880357009dbf9b6b713b2a08954", "sha256": "9a1cec1d084a96c65268d5c86214844737a27bfc5d1e8ba024b774fd516481f6" }, "downloads": -1, "filename": "seantis.reservation-1.0.17.tar.gz", "has_sig": false, "md5_digest": "7a316880357009dbf9b6b713b2a08954", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 197005, "upload_time": "2013-12-03T13:47:42", "url": "https://files.pythonhosted.org/packages/2c/a1/1ac41f198595a8579d25a774fbd0334a4ce67610287f72ede0aa19e92f7a/seantis.reservation-1.0.17.tar.gz" } ], "1.0.18": [ { "comment_text": "", "digests": { "md5": "33ee70a8aef5a4472508f1aca544d8c8", "sha256": "5efba483f18f0386906b9af58a0cba9a7610e9edddf915cf881050e12bf38202" }, "downloads": -1, "filename": "seantis.reservation-1.0.18.tar.gz", "has_sig": false, "md5_digest": "33ee70a8aef5a4472508f1aca544d8c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 197313, "upload_time": "2014-01-21T12:11:50", "url": "https://files.pythonhosted.org/packages/e0/8f/e41a0a15f46050e41428b610d1a15273496b3b4d42c5d8bdf85668d7bba8/seantis.reservation-1.0.18.tar.gz" } ], "1.0.19": [ { "comment_text": "", "digests": { "md5": "1dea4abe63af53be5c746a2929a62aac", "sha256": "baae97315c386f675fce054dd1387a1050ccd575e4b91c52975fa0f90c6efd1f" }, "downloads": -1, "filename": "seantis.reservation-1.0.19.tar.gz", "has_sig": false, "md5_digest": "1dea4abe63af53be5c746a2929a62aac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 203785, "upload_time": "2014-02-05T14:59:12", "url": "https://files.pythonhosted.org/packages/26/44/b93a9f7fc32ee032a3fa69a78a2ddf38ea740b760d586bb86003cd391900/seantis.reservation-1.0.19.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "d2333945caede2ef237ddbffcddf272a", "sha256": "eb8dc20b292c47a317693f00b52b84fcd6f5894e160f6bf8324318db45f7cdbb" }, "downloads": -1, "filename": "seantis.reservation-1.0.2.tar.gz", "has_sig": false, "md5_digest": "d2333945caede2ef237ddbffcddf272a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 167975, "upload_time": "2013-05-13T12:55:57", "url": "https://files.pythonhosted.org/packages/d3/7d/c8b5a0b8a7dd0cdad1e8240cbe4f122237a67c89851eca20e574a0599bc4/seantis.reservation-1.0.2.tar.gz" } ], "1.0.20": [ { "comment_text": "", "digests": { "md5": "ae1b17152dc93f1bd4dd82cea6281763", "sha256": "f42b58e97f5420286fd180350601e0f0cf5f5dd7541a773df6421ac516ec8bfb" }, "downloads": -1, "filename": "seantis.reservation-1.0.20.tar.gz", "has_sig": false, "md5_digest": "ae1b17152dc93f1bd4dd82cea6281763", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 204051, "upload_time": "2014-02-25T09:16:49", "url": "https://files.pythonhosted.org/packages/de/fa/4dbd9db2b3a0d5a1facd3fcf719bfa706105c3efafa0c4e50334f1e11392/seantis.reservation-1.0.20.tar.gz" } ], "1.0.21": [ { "comment_text": "", "digests": { "md5": "ab51eed7caacffe439f3163692086242", "sha256": "954f088c1dc0689db8a9c3358752984dd0736be0ab461e37bbd7195f98edc071" }, "downloads": -1, "filename": "seantis.reservation-1.0.21.tar.gz", "has_sig": false, "md5_digest": "ab51eed7caacffe439f3163692086242", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 205286, "upload_time": "2014-03-26T10:30:09", "url": "https://files.pythonhosted.org/packages/08/3b/37f10803c75a080bff0dab6bb7aa139870405af4e04325baed8a486bd434/seantis.reservation-1.0.21.tar.gz" } ], "1.0.22": [ { "comment_text": "", "digests": { "md5": "a7e4b0ee4b634e64e67506deb467a2ab", "sha256": "606d6d9bac2dfd70909b900fb717a49d8de696297b81e567797d998a6967758d" }, "downloads": -1, "filename": "seantis.reservation-1.0.22.tar.gz", "has_sig": false, "md5_digest": "a7e4b0ee4b634e64e67506deb467a2ab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 205552, "upload_time": "2014-06-05T10:59:43", "url": "https://files.pythonhosted.org/packages/1f/b5/05adfeda8b3f9349ea0a6dd309ee4efff18b1e286ca8c29a448a9e812256/seantis.reservation-1.0.22.tar.gz" } ], "1.0.23": [ { "comment_text": "", "digests": { "md5": "42d842c18a5080daa2ee42aa72ffaefc", "sha256": "4560ff8dc4742112e5d3ecb7b1f52b22ef4a613039148a5a4159eb2a2b76cd87" }, "downloads": -1, "filename": "seantis.reservation-1.0.23.tar.gz", "has_sig": false, "md5_digest": "42d842c18a5080daa2ee42aa72ffaefc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 210388, "upload_time": "2014-06-23T08:03:47", "url": "https://files.pythonhosted.org/packages/a5/f1/a464d1fa7f832eaf88a233f004f1ad5b922c5953a3e9c57025a569697f94/seantis.reservation-1.0.23.tar.gz" } ], "1.0.24": [ { "comment_text": "", "digests": { "md5": "2d796d141ea41dd83af70ebfe0399bb6", "sha256": "83bfdaebc9c10ce34426afa22f483b598039ed4b7de05f34f7c29031f242ed4f" }, "downloads": -1, "filename": "seantis.reservation-1.0.24.tar.gz", "has_sig": false, "md5_digest": "2d796d141ea41dd83af70ebfe0399bb6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 214779, "upload_time": "2014-07-16T12:33:23", "url": "https://files.pythonhosted.org/packages/2f/37/cc8e34ee6ee0dcf3c3c82d0e9bd4301bb1900f414405e1d36e2ca851bd86/seantis.reservation-1.0.24.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "535a0394a02daa3eae447ac7bb769b5c", "sha256": "b6973e8269126d3c5c857207a48ff79164b47c5595f8d50b41966d742fd8c363" }, "downloads": -1, "filename": "seantis.reservation-1.0.3.tar.gz", "has_sig": false, "md5_digest": "535a0394a02daa3eae447ac7bb769b5c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 168985, "upload_time": "2013-05-14T08:53:28", "url": "https://files.pythonhosted.org/packages/7a/30/d3c45ae1147e26c43b2b39b6a02f01773004694b3524b9e8ee3140b9c18c/seantis.reservation-1.0.3.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "bc2ce33044b729a8f531d50f9ed114ce", "sha256": "35b569199f981c5e641d13d91b1cff9a9b857bd294792e8a57433233d1f1355c" }, "downloads": -1, "filename": "seantis.reservation-1.0.5.tar.gz", "has_sig": false, "md5_digest": "bc2ce33044b729a8f531d50f9ed114ce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 176344, "upload_time": "2013-06-19T08:02:07", "url": "https://files.pythonhosted.org/packages/99/16/396c2eac544d672d47c44ee3327210b4cdbe2c65391ee433936f0c1262d2/seantis.reservation-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "7bb889599fd6ee2ec9a7ceb65a52dd98", "sha256": "bd7559e98d27fefbf52f9839f4bcf6631ea8711cc19531b03a7e229b07e2639e" }, "downloads": -1, "filename": "seantis.reservation-1.0.6.tar.gz", "has_sig": false, "md5_digest": "7bb889599fd6ee2ec9a7ceb65a52dd98", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 180928, "upload_time": "2013-06-26T13:28:59", "url": "https://files.pythonhosted.org/packages/7e/4e/9d7d72565abd25943f1bff608fd5d62e88d26a41690c7b5b37c85091798a/seantis.reservation-1.0.6.tar.gz" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "941753604829960f1bf94a96a9ea97f7", "sha256": "4e36a96ee40544dc62fd4a27bd83ee20a9181167ff1ac2b22325710c1808cdae" }, "downloads": -1, "filename": "seantis.reservation-1.0.7.tar.gz", "has_sig": false, "md5_digest": "941753604829960f1bf94a96a9ea97f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 182816, "upload_time": "2013-07-02T14:12:11", "url": "https://files.pythonhosted.org/packages/69/8d/475e30b28fcd8aed7be4972de2779a8f7a1ee04e31d8eba2af4731994972/seantis.reservation-1.0.7.tar.gz" } ], "1.0.8": [ { "comment_text": "", "digests": { "md5": "3c9f53021c2bca374fd09fa4b147a587", "sha256": "6933442f041b691e88a202016df2c5a83505573a8ba3e9c6c6e93562432a6f6a" }, "downloads": -1, "filename": "seantis.reservation-1.0.8.tar.gz", "has_sig": false, "md5_digest": "3c9f53021c2bca374fd09fa4b147a587", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 185145, "upload_time": "2013-09-09T14:58:33", "url": "https://files.pythonhosted.org/packages/06/98/19dde3987a6d64cde550b9c576d29e566105d73cc238cb416c9c368acbd0/seantis.reservation-1.0.8.tar.gz" } ], "1.0.9": [ { "comment_text": "", "digests": { "md5": "642e2b424cfe74bb5768d3ca9d24a270", "sha256": "96627a0b59f46462ef2e39461aa589df1083b311c80524023bf5588256d2dcfc" }, "downloads": -1, "filename": "seantis.reservation-1.0.9.tar.gz", "has_sig": false, "md5_digest": "642e2b424cfe74bb5768d3ca9d24a270", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 185560, "upload_time": "2013-09-13T09:22:40", "url": "https://files.pythonhosted.org/packages/cf/78/cc1f56a3d8c2f4943cde1ebef04f91aba30709a88dd4f0307e34896a6f5c/seantis.reservation-1.0.9.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "84417131a09783cd93ed616e9d0fef2d", "sha256": "f0cbebe2de65b794fd2987d89c23444465d28f306d4dfcfab161bd55f7d0c279" }, "downloads": -1, "filename": "seantis.reservation-1.1.tar.gz", "has_sig": false, "md5_digest": "84417131a09783cd93ed616e9d0fef2d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 224190, "upload_time": "2014-08-05T12:27:56", "url": "https://files.pythonhosted.org/packages/fc/2b/a6aa15cea638aa0f7b3f491095b2b8a8e4893a829327e1bb1552c4d68053/seantis.reservation-1.1.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "ff7d71d850a9c8758c02c76d44cc1c4e", "sha256": "ac7f5481b8250b59c9ea3dad96f2e4f0bccd249593b77eeee0e25555dc2300d6" }, "downloads": -1, "filename": "seantis.reservation-1.1.1.tar.gz", "has_sig": false, "md5_digest": "ff7d71d850a9c8758c02c76d44cc1c4e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 225441, "upload_time": "2014-08-06T12:28:34", "url": "https://files.pythonhosted.org/packages/e7/2f/b337e2037c46cc7a73167a24c532bed0b62211459ae84ebdd2e55f515d83/seantis.reservation-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "01146537e5200428bc77988d466ddaf7", "sha256": "fb3c76ec2663bdd0a02c0e255e9d1c6dbe466d112f1288aa608f78a5dd4531d9" }, "downloads": -1, "filename": "seantis.reservation-1.1.2.tar.gz", "has_sig": false, "md5_digest": "01146537e5200428bc77988d466ddaf7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 235737, "upload_time": "2014-08-12T12:06:03", "url": "https://files.pythonhosted.org/packages/8c/99/a36d1ba93637d353d64ffc6f6d52df5572219e136003f86edf5ec9c61e00/seantis.reservation-1.1.2.tar.gz" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "8ceb003e145c081d388623668b523a12", "sha256": "22bf982515d15dc08fdf29b6ea60ab4a607ecdec3bfa5570a43da0ecbcd91dfd" }, "downloads": -1, "filename": "seantis.reservation-1.1.3.tar.gz", "has_sig": false, "md5_digest": "8ceb003e145c081d388623668b523a12", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 237955, "upload_time": "2014-08-15T08:52:12", "url": "https://files.pythonhosted.org/packages/22/58/ac2f0b66518d9be7bfaa27f3c37eba6e58896417903cc47ffdfd4939df83/seantis.reservation-1.1.3.tar.gz" } ], "1.1.4": [ { "comment_text": "", "digests": { "md5": "8aa7fddee2de0d7950e28ee984ed5c07", "sha256": "02e2d50d3d5316ef51796d58e1e5e519398186a79d93ff23d600208d01ce5745" }, "downloads": -1, "filename": "seantis.reservation-1.1.4.tar.gz", "has_sig": false, "md5_digest": "8aa7fddee2de0d7950e28ee984ed5c07", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 238632, "upload_time": "2014-08-18T08:21:45", "url": "https://files.pythonhosted.org/packages/a8/ca/8310472470c5f14330aa10c00fe361cd555810f672de38a422f6eb8cf9c4/seantis.reservation-1.1.4.tar.gz" } ], "1.1.5": [ { "comment_text": "", "digests": { "md5": "523f983606729b6666ead6183283e6e5", "sha256": "7d7c155464455866f8e8f72fc460b3ccd8a750fc285250bff9a5ff1ed07a08f8" }, "downloads": -1, "filename": "seantis.reservation-1.1.5.tar.gz", "has_sig": false, "md5_digest": "523f983606729b6666ead6183283e6e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 240188, "upload_time": "2014-09-23T12:12:52", "url": "https://files.pythonhosted.org/packages/44/27/12ee62b8194a8817bd636114c546df2809172b3f9c8ad5394bfe633af4fe/seantis.reservation-1.1.5.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "ee94190b84437cd71c7b29e837146056", "sha256": "e6e1ea4ef82d9c6ceac370f72c2f44842dcee5bd827df58c317a188c3a6ca909" }, "downloads": -1, "filename": "seantis.reservation-1.2.0.tar.gz", "has_sig": false, "md5_digest": "ee94190b84437cd71c7b29e837146056", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 210194, "upload_time": "2015-02-10T13:11:11", "url": "https://files.pythonhosted.org/packages/8e/cd/2eb0a86b78c62cadba34cf38ab01fc107d90fdc13ed398ffb9a0b5c95562/seantis.reservation-1.2.0.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "1f3b8c803add783749f5c4b1220d4fb8", "sha256": "67fb4f95a0bbd7f2c8c3128138e759cdada452a5949925cf6bdcbf60cbd55aa5" }, "downloads": -1, "filename": "seantis.reservation-1.3.0.tar.gz", "has_sig": false, "md5_digest": "1f3b8c803add783749f5c4b1220d4fb8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 210392, "upload_time": "2015-10-27T13:41:19", "url": "https://files.pythonhosted.org/packages/a8/99/1535e45ba1013bf4460efc4f450241574957c3787fe7049397a1b1e1042f/seantis.reservation-1.3.0.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "eaec51b9b790d61ad76bbc928e899e73", "sha256": "68f1825387a2f50a9f148ea5d455598d53405eeaf071e4db19a7a021f4735ecc" }, "downloads": -1, "filename": "seantis.reservation-1.4.0.tar.gz", "has_sig": false, "md5_digest": "eaec51b9b790d61ad76bbc928e899e73", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 213068, "upload_time": "2015-12-02T11:28:37", "url": "https://files.pythonhosted.org/packages/92/4e/39bee50c9e37314302fd3757119b1364e1c6e938e175a6f8d9d11fb687ac/seantis.reservation-1.4.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "eaec51b9b790d61ad76bbc928e899e73", "sha256": "68f1825387a2f50a9f148ea5d455598d53405eeaf071e4db19a7a021f4735ecc" }, "downloads": -1, "filename": "seantis.reservation-1.4.0.tar.gz", "has_sig": false, "md5_digest": "eaec51b9b790d61ad76bbc928e899e73", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 213068, "upload_time": "2015-12-02T11:28:37", "url": "https://files.pythonhosted.org/packages/92/4e/39bee50c9e37314302fd3757119b1364e1c6e938e175a6f8d9d11fb687ac/seantis.reservation-1.4.0.tar.gz" } ] }