XTS 2.0 is a restructuring of XTS 1.0 to provide necessary features in the backend for the selling of cafe inventory as well as tickets.
XTS 2.0 divides code responsible for tracking assets (ie. ticket management, café inventory management) and code responsible for tracking money.
XTS 2.0 will be branched from the current XTS trunk RSN, and then heavily hacked up to resemble the new architecture. It may not build for a while but hopefully much of the development history so far will be largely preserved.
Proposed alterations:
- creation of Tickets python module for show server, mostly populated with code from logic.py and data.py
- creation of Cafe python module for cafe server
- creation of Baskets module for transaction server
- creation of Print module from print.py
- ripout of logging, statistics and reporting, to be reimplemented once we have a working build
- reorganisation of HTTP API into /v2/tickets/, /v2/food/, /v2/baskets/
- /v1/secure/v1/ to be forward-ported to /v2/secure/v1/
- Further abstraction of data.py
See the XTS2API
Versions
These versions of the XTS2 pre-release have been deployed in the Box Office with the following names during Fringe 2009:
- source:xts/branches/xts-2/@166 "Ninja" - Fran Walker
- source:xts/branches/xts-2/@170 "Marine" - Felix Trench
- source:xts/branches/xts-2/@177 "Pirate"
- source:xts/branches/xts-2/@179 "Jimmy" - Neville Billimoria
- source:xts/branches/xts-2/@188 "Falcon"
- source:xts/branches/xts-2/@192 "Twilight"
- source:xts/branches/xts-2/@193 "Spaceman"
- source:xts/branches/xts-2/@195 "Narwhal"
- source:xts/branches/xts-2/@193 "Pegasus"- Eleanor Chalmers
Upgrade Notes
A database schema change in [186] requires that the database be upgraded with accurate closedtimes for every closed basket in the system. This query updates the closedtime of a closed basket to be the addedtime of an item in the basket so long as the item was added after the basket's current closedtime. By using the query recursively until no rows are affected, all baskets will be assigned a best guess of when they were closed.
UPDATE
baskets_basket,
baskets_item
SET
closedtime = addedtime
WHERE
closed = 1 AND
baskets_item.basket_id = baskets_basket.id AND
addedtime > closedtime;
The following query helps to verify that basket closedtimes are correct.
SELECT
closedtime,
MAX(addedtime)
FROM
baskets_basket,
baskets_item
WHERE
closed = 1 AND
baskets_basket.id = basket_id
GROUP BY
baskets_basket.id;
Attachments
-
xts2-architecture.jpg
(50.1 KB) -
added by alex 3 years ago.
Interaction between components in the XTS 2.0 architecture.

