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-1.1.4.tar.gz (24.1 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-1.1.4-py3-none-any.whl (46.0 kB view details)

Uploaded Python 3

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

Hashes for djangoldp_tamis-1.1.4.tar.gz
Algorithm Hash digest
SHA256 73ebcdeec59c1aa7687721d31a4a390bd6a7c2be1cb5dfb6b9bcc36ebe35eb7d
MD5 76ddd4334e6941a24350f141974b4f02
BLAKE2b-256 4260b839601b61a79d87e56c5562c02a6913ddbf96e0e29ee0683fc91a674166

See more details on using hashes here.

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

Hashes for djangoldp_tamis-1.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 b7c0042144198b6985fd5c2caa304f30d92715e86d66122a99005893e703b307
MD5 40e62c4065d7c1e59c3cb79d353e4461
BLAKE2b-256 a7b05ee54cd9d076dde197ea755352f90b9814e8d9bcb3ab775401c5a3717607

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