djangoldp package for TAMIS
Project description
# DjangoLDP TAMIS
Django/[DjangoLDP](https://git.startinblox.com/djangoldp-packages/djangoldp) package that provides the backend data model for TAMIS, a workflow tool for audiovisual post-production. It exposes the domain as Linked Data Platform (LDP) resources so it can be consumed by the matching web-components package [solid-tamis](https://git.startinblox.com/components/solid-tamis).
## Functional overview
TAMIS coordinates post-production work between a Client (who orders content finishing) and a Provider (who performs it) — typically subtitling, dubbing, mix, conform, color, etc. Work is tracked against the broadcaster-style editorial hierarchy Serie → Season → Programme → EditorialWork, with standalone movies sitting directly as a Programme (no series); both shapes are first-class.
The unit of work is a `Prestation` — one contracted job attached to an EditorialWork. Prestations are grouped under a `Commande` (a purchase order between a specific Client and Provider) and cross-referenced to external systems via `Identifiant`s (issuer Agent + identifier string), which is how a TAMIS EditorialWork maps to a broadcaster’s asset ID.
Every prestation carries an ordered timeline of `Step`s built from a template. Three steps are seeded at app startup — Refusé, Validation, Livraison — and the workflow is enforced by signals:
the last two steps of any prestation are always Livraison (delivery) → Validation (client sign-off);
adding a Refusé step (rejection) automatically re-queues Livraison + Validation after it, so a rejection cleanly restarts the delivery → validation loop without the operator having to rebuild the timeline;
step ordering is renumbered after every change so the UI can render a stable sequence.
Each prestation produces deliverables: an empty Asset is auto-created on prestation creation; assets hold MediaResource`s (the actual file: name, size, `Format), broken down into Track / AudioTrack / VideoTrack. EditorialWork.assets is a computed rollup of every asset across the editorial work’s prestations — the “all deliverables for this episode/film” view.
Access is team-based, not ownership-based. Every prestation owns three Django groups — admins / editors / visitors — wired to ACLPermissions. The same prestation can therefore have the client’s QA reviewers as visitors, the provider’s operators as editors, and a studio lead as admin. TamisProfile carries enterprise/title/job/phone so the UI can show who’s who across organisations, and Favourite lets users pin prestations for quick access.
## What it provides
A Django app (djangoldp_tamis) that models the editorial hierarchy and the delivery workflow around it:
Editorial hierarchy — Serie → Season → Programme → EditorialWork, typed against the [EBUCore Plus](http://www.ebu.ch/metadata/ontologies/ebucoreplus) ontology (ec:Programme, ec:EditorialObject, …).
Prestations — a Prestation is a unit of work attached to an EditorialWork, with a template-driven ordered list of Step`s (`StepToTemplate → PrestationStep). Three seeded steps — Refusé, Validation, Livraison — are created automatically on app startup and their order is maintained by signals (a rejection re-appends Livraison + Validation; the last two steps are always guaranteed).
Per-prestation access control — each Prestation owns three Django Group`s (`admins, editors, visitors) wired to ACLPermissions, so team membership (not object ownership) drives who can view/change/control a prestation. Memberships are exposed on LDPUser.prestations as a dynamic nested container.
Commandes — Commande groups prestations under a Client/Provider pair, with free-form Identifiant`s (issuer `Agent + identifier string).
Assets & media — Asset (inherits prestation permissions) → MediaResource → Track / AudioTrack / VideoTrack, with Format lookup. EditorialWork.assets is a computed nested container aggregating all assets across its prestations.
Profile — TamisProfile (one-to-one with the user), auto-created on user save.
Admin — registers all public models under DjangoLDPAdmin with inlines for prestation steps, assets, and media tracks; replaces the default Group admin with a read-only variant.
Installed via djangoldp~=3.1.0, djangoldp_account~=3.1.0, djangoldp_dashboard~=3.0.0.
## Installation
See the [server installation guide](https://git.startinblox.com/applications/tamis-poc/-/snippets/17) for the full DjangoLDP server setup.
## Sample data
A fixture provides one movie programme with one editorial work and one serie/season/programme with two editorial works, each with one prestation:
`sh ./manage.py loaddata sample_tamis `
Also shipped under djangoldp_tamis/fixtures/: tamis_dashboard.json (dashboard layout) and RDF exports (sample_tamis_data.ttl, sample_tamis_data.nt).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file djangoldp_tamis-1.1.4.tar.gz.
File metadata
- Download URL: djangoldp_tamis-1.1.4.tar.gz
- Upload date:
- Size: 24.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.12.1.2 readme-renderer/44.0 requests/2.33.1 requests-toolbelt/1.0.0 urllib3/2.6.3 tqdm/4.67.3 importlib-metadata/9.0.0 keyring/25.7.0 rfc3986/2.0.0 colorama/0.4.6 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
73ebcdeec59c1aa7687721d31a4a390bd6a7c2be1cb5dfb6b9bcc36ebe35eb7d
|
|
| MD5 |
76ddd4334e6941a24350f141974b4f02
|
|
| BLAKE2b-256 |
4260b839601b61a79d87e56c5562c02a6913ddbf96e0e29ee0683fc91a674166
|
File details
Details for the file djangoldp_tamis-1.1.4-py3-none-any.whl.
File metadata
- Download URL: djangoldp_tamis-1.1.4-py3-none-any.whl
- Upload date:
- Size: 46.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.12.1.2 readme-renderer/44.0 requests/2.33.1 requests-toolbelt/1.0.0 urllib3/2.6.3 tqdm/4.67.3 importlib-metadata/9.0.0 keyring/25.7.0 rfc3986/2.0.0 colorama/0.4.6 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b7c0042144198b6985fd5c2caa304f30d92715e86d66122a99005893e703b307
|
|
| MD5 |
40e62c4065d7c1e59c3cb79d353e4461
|
|
| BLAKE2b-256 |
a7b05ee54cd9d076dde197ea755352f90b9814e8d9bcb3ab775401c5a3717607
|