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.1.tar.gz (40.4 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.1-py3-none-any.whl (72.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: djangoldp_tamis-2.0.1.tar.gz
  • Upload date:
  • Size: 40.4 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.1.tar.gz
Algorithm Hash digest
SHA256 25f585efecc6d915d899381892019cf5a513889dbc4a4edd5d5d0e70869e5ae4
MD5 697ba5d079c14a13dde9834be1bab803
BLAKE2b-256 eb725bc8fb052a106651a32ef130d18225deaa5d0f7d4b9630c885e2f789eb21

See more details on using hashes here.

File details

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

File metadata

  • Download URL: djangoldp_tamis-2.0.1-py3-none-any.whl
  • Upload date:
  • Size: 72.2 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f0e54afc0f80b17bea5254d24b1f6ca189ca524da39014e07b8627cacf7feec4
MD5 c67fd329f4dc89aa78f1af1885a8ba69
BLAKE2b-256 e5d384db8a3cc27491cc17016792abcd1ba6b4da5eb55ead89b8f3146ae42f37

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