See #2507641: Selecting multiple producs/persons during appointment creation results in multiple backend appointments.. Rationale:

What we wanted to achieve is that users interact with only one appointment id when creating a multiple product/person appointment, regardless of the amount of appointments created in the backend. When they use this appointment id to cancel the appointment, everything necessary should happen in the backend to cancel the _entire_ appointment.

And because we are time-constrained, we've aimed at minimal changes for this functionality to work. This means that we did not redesign the entire clientapi.

Vocab:

remote appointment; an appointment in the backend.
local appointment, local appointment id ; a local record of an appointment. Possibly with info exposed to the user. This appointment can refer to multiple remote appointments. Those are not exposed to the user.
Changes:

The clientadapter class has been changed.

In order to pass around information about the appointment, instances of the class DvgAppointment are used. When creating an appointment, the clientadapter gets the number of products from webform_appointment, then does it's job and returns a DvgAppointment instance. The adapter may store one or more remote ids in the appointment. IMO this rather simplifies webform_appointment.

We've converted the gplan adapter to the new clientapi. This adapter still stores appointments for multiple products/persons in multiple remote appointments.

We've added a gplan_multiple adapter that stores appointments for multiple products/persons in just one remote appointment. This should be the preferred GPLAN adapter for GPLAN backends supporting multi-product appointments.

CommentFileSizeAuthor
do-2507641-dvg-one-local-appointment.patch62.21 KBheine

Comments

Heine created an issue. See original summary.

  • Heine committed cbe7d8c on 7.x-1.x
    Issue #2570869 - Unify multiple remote appointments (WIP)
    
heine’s picture

Status: Active » Fixed

Committed (with permission from MrHaroldA before the Great Rename.

I will create a followup issue for Qmatic & cleanup.

heine’s picture

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.