Skip to main content

# 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).

Metadata

Release files for djangoldp-tamis 2.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for djangoldp-tamis 2.1.0
File Size Uploaded
djangoldp_tamis-2.1.0.tar.gz 24.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for djangoldp-tamis 2.1.0
File Interpreter ABI Platform
djangoldp_tamis-2.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 71.7 kB

Release files / djangoldp_tamis-2.1.0.tar.gz

Download URL djangoldp_tamis-2.1.0.tar.gz
Size 24.7 kB
Tags Source
SHA-256 checksum
How to use checksums
6563f198c22fad53d462574d378312902794ea76396583fc78f717187315dcd9
BLAKE2b-256 checksum
How to use checksums
fea7a91accc4cb79d77638bffd54d348873ce3509ff604d116914cf438b5b1b7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.12.1.2 readme-renderer/45.0 requests/2.34.2 requests-toolbelt/1.0.0 urllib3/2.7.0 tqdm/4.68.3 importlib-metadata/9.0.0 keyring/25.7.0 rfc3986/2.0.0 colorama/0.4.6 CPython/3.11.15

Release files / djangoldp_tamis-2.1.0-py3-none-any.whl

Download URL djangoldp_tamis-2.1.0-py3-none-any.whl
Size 47.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
09ba8913d9b60abbc72251c05835266898bd08a28be4e81d643d037c095460fd
BLAKE2b-256 checksum
How to use checksums
10fe670d9dea52deb8ccd846c6390e162f744cae102639b2d61f40e8d3ab6e13
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.12.1.2 readme-renderer/45.0 requests/2.34.2 requests-toolbelt/1.0.0 urllib3/2.7.0 tqdm/4.68.3 importlib-metadata/9.0.0 keyring/25.7.0 rfc3986/2.0.0 colorama/0.4.6 CPython/3.11.15

Release history Release notifications | RSS feed

This release

2.1.0 This release

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.43

2 release files

1.0.42

2 release files

1.0.41

2 release files

1.0.40

2 release files

1.0.39

2 release files

1.0.38

2 release files

1.0.37

2 release files

1.0.36

2 release files

1.0.35

2 release files

1.0.34

2 release files

1.0.33

2 release files

1.0.32

2 release files

1.0.31

2 release files

1.0.30

2 release files

1.0.29

2 release files

1.0.28

2 release files

1.0.27

2 release files

1.0.26

2 release files

1.0.25

2 release files

1.0.24

2 release files

1.0.23

2 release files

1.0.22

2 release files

1.0.21

2 release files

1.0.20

2 release files

1.0.19

2 release files

1.0.18

2 release files

1.0.17

2 release files

1.0.16

2 release files

1.0.15

2 release files

1.0.14

2 release files

1.0.13

2 release files

1.0.12

2 release files

1.0.11

2 release files

1.0.10

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page