Skip to main content

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 hierarchySerieSeasonProgrammeEditorialWork, 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 (`StepToTemplatePrestationStep). 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.

  • CommandesCommande groups prestations under a Client/Provider pair, with free-form Identifiant`s (issuer `Agent + identifier string).

  • Assets & mediaAsset (inherits prestation permissions) → MediaResourceTrack / AudioTrack / VideoTrack, with Format lookup. EditorialWork.assets is a computed nested container aggregating all assets across its prestations.

  • ProfileTamisProfile (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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

djangoldp_tamis-2.0.0.tar.gz (24.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

djangoldp_tamis-2.0.0-py3-none-any.whl (46.9 kB view details)

Uploaded Python 3

File details

Details for the file djangoldp_tamis-2.0.0.tar.gz.

File metadata

  • Download URL: djangoldp_tamis-2.0.0.tar.gz
  • Upload date:
  • Size: 24.6 kB
  • Tags: Source
  • Uploaded using 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.2 importlib-metadata/9.0.0 keyring/25.7.0 rfc3986/2.0.0 colorama/0.4.6 CPython/3.11.15

File hashes

Hashes for djangoldp_tamis-2.0.0.tar.gz
Algorithm Hash digest
SHA256 3b0a95565e306642c1dff51424d0ccb39e2983403482553fcf8621ffeff6f048
MD5 bb8eb0040262749c8d279b24cb3ce74e
BLAKE2b-256 a0dec16ce29531798a4a4e38211677cd83f9a7492547bdd32791ba48796bfa43

See more details on using hashes here.

File details

Details for the file djangoldp_tamis-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: djangoldp_tamis-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 46.9 kB
  • Tags: Python 3
  • Uploaded using 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.2 importlib-metadata/9.0.0 keyring/25.7.0 rfc3986/2.0.0 colorama/0.4.6 CPython/3.11.15

File hashes

Hashes for djangoldp_tamis-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 57f207bf19b25b1bf4a10beea032d9eb5872adde9d61af865142f66ea4e2e4ef
MD5 c9c3cc39e898e61eab5f77fbb0d88553
BLAKE2b-256 8a522219a5975f7d8a85cb18bd50db5bedeba152dbc2e7fdc05797fde462630f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page