i believe this module would be much more powerful if it leveraged CCK nodes instead of rolling out it's own custom data management.

it will require a bit of work to do the conversion, but the rewards should be worth it -- most notably that it will be trivial to extend bookings nodes with custom field data.

i'll be working on this and submitting patches as i go.

CommentFileSizeAuthor
#38 bookingsapi.zip56.68 KBkillua99

Comments

edcazini’s picture

+1

kenorb’s picture

+1

delykj’s picture

+1

tannerg’s picture

Title: CCK integration » #4

+1

hunmonk’s picture

Title: #4 » CCK integration
Assigned: hunmonk » Unassigned
Anonymous’s picture

Will you continue working on this problem?

kenorb’s picture

I've done some booking functionality here:
http://drupal.org/project/booking_timeslots
Maybe somebody will be interested,
but it's still under development and many things to do.

Anonymous’s picture

Though I believe that Booking Timeslots and Bookings API do not really provide the same functionality - it's quite a different approach to a similar problem.

Related to the thread: In the long run Bookings API will support node-bases resources including CCK-integration.

4drian’s picture

Brilliant news - really looking forward to seeing this project move forward. Personally very keen to use uc_node_checkout as a way to use Ubercart to bill for appointments.

4drian’s picture

Just spotted

  • http://drupal.org/project/dudel
  • for deciding between multiple users on the best times for a booking (or meeting) - ability to integrate or duplicate (aaaargh!) this functionality would be amazing. Not checked it out yet so not sure if it is CCK based or on it's own.

    4drian’s picture

    Doh - Just read the module info. Dudel uses CCK date field so yay?

    Anonymous’s picture

    How/Why would you like to integrate something like this into a bookings module? (This is a real question, ATM I don't understand the why ;) )
    If you tell me, what you need/want, we could perhaps provide it.

    4drian’s picture

    I may have got the wrong end of the stick but I'm assuming that the CCK/Nodes integration involves both using nodes as the resources as well as nodes as the bookings themselves. If the bookings are nodes and use a CCK date field, it would be advantageous for multiple users to be able to input multiple choices for making a booking using the existing Dudel code.

    This is straying off a little but I am personally trying to achieve a goal of allowing end users (customers) to book other users (engineers). The users that can be booked would have FeedAPI pulling in an iCal feed of free/busy times (nodes) that would hopefully provide conflict resolution using bookings API if it used nodes as the bookings. At the same time, I'd like to use the Dudel interface so that multiple users (stakeholders in a project) to select a mutually agreeable time for the booking. I'm assuming that without some form of integration, I cannot simply install both Dudel and the future BookingsAPI and bingo it works.

    Anonymous’s picture

    I am not 100% sure how to exactly refactor Bookings API / Public Bookings into using nodes - but so far the plans would include bookings and resources as nodes, yes (performance issues may change this opinion).
    I want to add some functionality that would allow administrators to set some "conflict resolving rules" (e.g. sorting resources into families and providing the user with the choice of a different resource of the same family (say: Beamer#2 instead of Beamer#1) and/or adding some kind of "number of devices present"-field (resource: beamer, 12 pieces total, 8 available)).

    I did not have a (thorough) look at Dudel, so I cannot tell how much work an integration will be. I will have a look at it before really rewriting the code, to ease any integration efforts. But I cannot promise an "out of the box functionality" - sorry. Integration of "multiple owners of a booking" would be possible (e.g. adding a multi-select field 'owner'), as would an "hook_resolve_conflict" (however it will be named).
    If you have any ideas, what you would need in order to integrate with Drudel/FeedAPI, please don't hesitate to write them! I promise to try my best, to keep "integration with other modules" in mind, so that it will be easy to integrate Bookings API / Public Bookings with other modules.

    hamsterbacke42’s picture

    Hello there,
    I gave Bookings API / Public Bookings a try and I can say it looks very promising ! Especially very good views integration very nice! keep on great work

    ...so far the plans would include bookings and resources as nodes, yes (performance issues may change this opinion).

    In my opinion this feature together with increased calendar integration is THE key to make it really fly and gain popularity..

    Anonymous’s picture

    I am planning how to best integrate Bookings API with e.g. the calendar.
    We are going to use "nodes" as resources - but how to save Bookings?

    It might be more efficient to stay with a home-brew system - another alternative would be using the Event API. Opinions?
    Using Event would mean, that the Bookings API would add another prerequisite (Event), which would make it a bit bigger and less flexible. On the other hand event provides a native integration with Calendar and stuff.

    4drian’s picture

    Would bookings as nodes not be good then? I've probably missed something but wouldn't it be the most flexible way to do it for multiple use cases? I wouldn't want to see a dependency on Event - that would get quite confusing for many newbies (myself included) or clients with admin access.

    Anonymous’s picture

    Events are a kind of nodes - so bookings would still be based on nodes (with all the flexibility it provides).

    Thanks for the feedback - I'll have to look into Calender to see, how much work a separate integration would be.

    Anonymous’s picture

    Version: 6.x-1.x-dev » 6.x-3.x-dev
    Assigned: Unassigned »
    Status: Active » Needs work

    One would not believe it - this is in work.

    6.x-3.x-dev now uses node-based resources instead of the previous custom-type. Bookings still are custom-typed, but I'll change this in the ongoing refactoring. Please be aware though that 6.x-3.x ist NOT a stable release by any means. It's not even a pre-release or an alpha - its my personal "work repository". A commit might not even compile at any given time...
    If you'd like to test it - be my guest. But it really is NOT usable at the moment.

    4drian’s picture

    Just in case you were feeling alone in your quest, here's a big
    wooot

    from me regarding the new progress with this.

    ---edited to increase woot factor

    Anonymous’s picture

    *blush*

    happy123-1’s picture

    *smile*

    ....keep up the good work!

    emdalton’s picture

    Really glad to hear this is still in the works!

    Please don't make this dependent on Events, though. Views support for Events has pretty much stagnated. :(

    Anonymous’s picture

    Thanks for the feedback! Then I'll have to have more looks at Calender and View and probably will add a custom node-based resource-type (of course based on CCK).. Should work too.

    mrlava’s picture

    Would really love to make use of this but can't do it without the cck integration. Hope you're still working on this. Thank you for your contribution =D

    Anonymous’s picture

    Still working on this, yes :)

    killua99’s picture

    Thanks you!

    I'm working on a site that need a booking system. I'm using right now the alphas bookings API and publish booking. I'm trying to write some code to make a integration with the cck but for the alpha. I'll see the dev version to see what are you doing.

    Thanks from Spain.

    summit’s picture

    Subscribing, very interested!
    Greetings, Martijn

    Anonymous’s picture

    @killua99 I'd love to see your code, if you'd be willing to post it. Perhaps I can integrate some of it into 1.x or 3.x :)

    killua99’s picture

    Hey sure, right now I'm not realy happy with my code, so I guess this weekend have something good to show you.

    emdalton’s picture

    Bookings as nodes will be great. Resources as nodes: also great. But how about resource availability? One complaint I'm getting from my clients is that they want to be able to let external users see available times, rather than unavailable times. I can't figure out how to do this with the current system.

    We may be able to provide some funding, if that would help.

    Anonymous’s picture

    Hi kulla99 - Thanks :)

    Hi Emdalton,

    I'll be working on it, see #686050: /admin/content/publicbookings/booking/n/edit converts whole availability to booking. With the current system it is simply not possible (in a feasible way) - the complete date structure is "the other way round" so you need to maintain a kind of double of it. Keeping this up-to-date is not easy (at least not if you have a look at performance).

    killua99’s picture

    @emdalton

    In the setting page with a check mark to show available resource only? with that is enough?

    Anonymous’s picture

    @killua99 Not easy - because you would have to check the entered data each time it changes.

    killua99’s picture

    And what should be the way to do this ? w/o check the entered data each time it changes ? ... I'm thinking but I don't have a clear 'how to'

    Anonymous’s picture

    I fear that at the moment there is no simple way to provide a list of available times - and with this there is no simple way to filter resources for availability. The ONLY thing you can do is to check each resource for availability (that, at least, is do-able if you have a short timeframe and a long booking-window (e.g. fixed booking time)). Otherwise you would have to build a table of available times (which is what "Bookings API Free Cache" will be doing once it is finished) and check against this (e.g. by providing a set of available times and updating the resource-list via JavaScript if the time is changing).

    For a quick fix you could disobey relations between resources (which should be possible in 1.x and not in 3.x), and provide a set of "Availabilities" for each resource. Those availabilities could be automatically altered if a booking is entered and could be used to check for available resources. Still not easy, but possible.

    If you find an easy way to solve this problem: Please tell me! But I really don't think there is one.

    killua99’s picture

    Well my road map will be:

    cck integration ---> Booking API Free Cache (list avaible or something like this) ---> future :)

    -- edit:

    on 3.x-dev

    killua99’s picture

    StatusFileSize
    new56.68 KB

    Is not a real integration with CCK.

    Anonymous’s picture

    You added a sub-module bookingsapi_tools? What is it doing?

    killua99’s picture

    bookiingsapi_tools is like a date_tools. You can creat new Content Types and associate to the bookingsapi, its not finish. I just did this example today. I'm thinking what else could do.

    Right now when you active the bookingsapi_tools it generate a new content type so you can add new field with the CCK.

    Ela’s picture

    subscribing :)

    emdalton’s picture

    I appreciate the problems. I've switched to CCK dates using Signup for now. While that is also not without problems, it comes closer to the functionality we need.

    Anonymous’s picture

    Actually this is the thread you should be subscribing to: #630874: Ongoing status report regarding Bookings API rewrite if you are interested in a status-report for Bookings API ;)

    Souvent22’s picture

    Perhaps an intermediary solution is to keep content type X in sync the resources ( 1:1 ) using hook nodeapi; thus "resource" becomes an extended "field(s)" of content type X.

    This does not solve many other issues, i know, but could be a building block in the right direction.

    Anonymous’s picture

    Should be possible - Bookings API provides hooks to react on bookings or resource changes so you could react more fine tuned then normal on nodeapi.

    developer-x’s picture

    Hi,

    I've mentioned this in other threads, but for the benefit of those subscribing to this thread, I've submitted a module for approval which integrates the bookingsapi into a date-based node (aka Event). This provides a link between the bookings record and a node. The nice thing about this approach is it allows us to model "all day" events. In the date module, an "all day" event is modeled as a node with a from/to of 12:00am. However, this doesn't work with the bookingsapi (duration of zero). So my module allows you define a start/stop time for an all day event (among other features).

    This module is dependent on the 6.x-3.x-dev version of bookingsapi - so it isn't considered production ready. But I'm looking for folks to QA - so I'd appreciate any feedback.

    The module can be found at http://drupal.org/node/805048

    YK85’s picture

    subscribing

    screenage’s picture

    subscribing

    kenorb’s picture

    Assigned: » Unassigned
    Issue summary: View changes
    Status: Needs work » Closed (outdated)

    Drupal 6 is no longer officially supported. If you think this issue is still relevant for 8.x, feel free to re-open.