Our library is looking for a way for customers to request a room or equipment reservation from our Drupal site. We would like our staff to be able to select a room for library-sponsored events and programs as well while they are entering the details about the upcoming program. Has anyone got a recipe of modules that might help accomplish this task without being too difficult for the public? If possible, we would like to incorporate a financial piece for accepting deposits.
I noticed that some libraries have incorporated the Evanced solution for room reservations, but I would prefer to leverage our Drupal site and staff-submitted programs and events that are already happening but could use a room reservation component.
Thanks!
Comments
No luck here
I tried to do event registration which would be somewhat similar but I had no further luck.
Request/Reserve a Room
We've developed a custom reservation module via Drupal for the public to reserve rooms and make payments. http://www.anythinklibraries.org/locations (Right now, you need to have an account on the site to view rooms and make a reservation.) Staff use the same interface to reserve rooms for their programs. We've talked about building this functionality into the calendar so that the room reservation is populated when a library-sponsored event is added. The issue is that the public can reserve rooms up to four months out, and we don't have the library programs planned that far in advance. Also, because many of our events require registration, we don't want them to fill up that far in advance - people forget, people get left out, and it turns into a bit of a mess. We'd love to incorporate something like this if we could figure out the timing.
Custom development
I helped develop the Anythink room reservation feature. Because of particular existing architecture and registration throttling constraints, much of the work was custom. I looked into using http://drupal.org/project/merci and http://drupal.org/project/bookingsapi but they weren't quite what we needed.
Merci and BookingsAPI
Thanks for the suggestions on the potential modules. Also, I have requested a temporary library card from Anythink to take a look at the custom solution that you have created.
Room Reserve module
I developed a custom module for Drexel University Libraries for this function as well, and am currently adapting it for release as a non-organization-specific module. I did a small writeup here -
http://www.library.drexel.edu/about/tech-room-reserve
Let me know if you'd like to look at a demo or anything.
demo would be great
A demo would be really helpful to us. I would love to take you up on your offer.
I realize this is old, but
I realize this is old, but there is a simple but reliable solution we built at our company. It was done in d6, FWIW.
Create two content types, Resources and Reservations. Resource nodes are rooms, equipment; anything you want reserve-able. Reservation nodes are time-boxed reservations of resources. Install and enable Resource Conflict module and Corresponding Node References module.
Create node reference fields between the R&Rs. Add pertinent fields to Resources like location, description, pictures, property number, responsible person, status, current condition, seating, type, etc. Add fields to Reservations like user reference, purpose of reservation, charge number, etc.
Reservations must have a date field for time frame. Configure as needed, especially time increments (we do 30 minutes). Go back to main Reservations node info, check the two Resource Conflict boxes, and select your date field to use for checking conflicts. Also check for the two CTs to have corresponding node references.
The rest is views, perms, and icing. Calendar views display reservations for each resource. Add 'Create a reservation' button to each resource node display, and prepopulate that resource in the Reservation's resource field. Rules can send email notifications for creation, updates, and deletions. Create reservation admins to manage. Resource Conflict module will automatically warn users if they select a booked time with that resource.
Simple, but easy to implement and it works reliably.