Discussion #2084: a cost bought later (the seat upgrade for a flight) could not be tied to the booking it belongs to, and a booking held one expense. - The Costs block of the booking, transport and place forms lists every linked expense with edit, unlink (the expense stays in Costs) and delete, and offers the expenses that belong nowhere yet under Link existing expense. The phone sheets get the same block in their own design, and their Files row lists the attached files and links an existing one. - PUT /budget/:id, update_budget_item (MCP) and costs.update (plugin RPC) take reservation_id / place_id; create and update refuse an id from another trip on all three paths. - The booking's mirrored price is the sum of its expenses when they share one currency (none counts as the trip's), else the first one, with that currency, and follows every change to a linked expense. The booking form's price field leaves a booking with several expenses alone. - Deleting a booking deletes all of its linked expenses and broadcasts each one, also from the MCP delete tools. - Cards show the price with its currency. - Booking and transport dialogs: Booking Type and Travelers as dropdowns at the top, the URL beside Files (transports gain the URL field). The row is one shared component; linking and unlinking files go through the store. Help center pictures and texts for the booking, transport and expense guides are redone in all 27 languages, five Costs labels that were still English in 16 languages are translated, and the wiki follows.
5.2 KiB
Documents and Files
Attach and manage documents, tickets, and other files for your trip.
Where to find it
Open the Files tab inside the trip planner, or navigate directly to /trips/:id/files.
Admin: The Files tab belongs to the Documents addon. Enable it in Admin-Addons.
Uploading
Drag and drop files onto the upload area, click it to open the file picker, or paste an image directly into the Files panel.
- Maximum file size: 50 MB per file.
- Blocked file types: renderable documents (
.svg,.svgz,.html,.htm,.shtml,.shtm,.xml,.xhtml,.xht), scripts (.js,.jsx,.ts,.tsx,.mjs,.cjs,.php,.py,.rb,.pl) and executables (.exe,.bat,.sh,.cmd,.msi,.dll,.com,.vbs,.ps1,.app) — these are always rejected, as is any file whose MIME type containssvg. - Default allowed types: jpg, jpeg, png, gif, webp, heic, pdf, doc, docx, xls, xlsx, txt, csv, pkpass, pkpasses, md, markdown. An admin can customize the allowed list under Admin → Settings → Allowed File Types — comma-separated extensions, or
*to allow everything except the blocked types above.
Requires the file_upload permission.
Browsing and filtering
The toolbar provides filter tabs, in this order: All, a star icon for Starred (only shown when at least one file is starred), PDFs, Images, Documents, and Collab Notes (only shown when files exist from collaborative notes). Each tab shows a count badge.
Previewing files
Clicking a file that is neither an image nor a video (e.g., PDF or Markdown) opens an inline preview modal with options to open in a new tab or download. .pkpass and .pkpasses Wallet passes are the exception: clicking one downloads it straight away, so the OS can hand it to Apple Wallet rather than forcing it into the in-app preview. Clicking an image or video file opens a full-screen lightbox. You can:
- Navigate between images and videos using the arrow buttons or the left/right arrow keys.
- Swipe left/right on touch devices.
- Jump to a specific file using the thumbnail strip at the bottom. Videos have no stored thumbnail and show a play placeholder there.
- Download or open the file in a new tab from the lightbox header.
Starring
Click the star icon on any file to favorite it. Starred files sort to the top of the list and can be filtered with the Starred tab.
Requires the file_edit permission.
Trash
Deleting a file moves it to the trash. Switch to the trash view using the Trash button in the toolbar. From the trash view you can:
- Restore a file to make it active again.
- Permanently delete a single file.
- Empty trash to permanently remove all trashed files at once.
Restore and delete operations require the file_delete permission.
Linking files to places, reservations, or assignments
A file can be attached to multiple places and reservations at the same time (many-to-many). From the file manager, click the link (pencil) icon on a file to open the assign modal. From there you can toggle links to any trip place or reservation. You can also add a descriptive note to the file in the same modal.
From a booking or transport form, Link existing file next to Attach file picks a file the trip already has. On the phone it is the Link pill in the Files row of the booking and transport sheets.
Downloading
Click the download icon on any file row to download it. .pkpass files (Apple Wallet passes) are served with the application/vnd.apple.pkpass MIME type, so Safari on iOS and macOS offers to add the pass to Wallet instead of saving it as a generic download.
Document sync
A trip's documents can be kept in step with a self-hosted document store: Paperless-ngx, Papra, Nextcloud, OpenCloud or a Synology NAS. Once a store is available, a Document sync button sits next to Trash in the toolbar; on the phone it is at the top of the Files tab. The trip owner connects the store there once, and from then on what someone uploads here appears in the store, and what someone files in the store appears here.
Synced documents are ordinary files in this manager. Preview, starring, links, trash and download work as described on this page, and a document deleted here is only removed in the store when the binding is set to do so.
See Document-Sync for setup per store, the delete and conflict rules, and troubleshooting.
Admin: Each store is switched on separately under the Documents addon in Admin-Addons. They ship switched off.
Permissions
| Permission | Controls |
|---|---|
file_upload |
Uploading new files. |
file_edit |
Starring and linking files. |
file_delete |
Moving to trash, restoring, and permanently deleting. |

