Editing contributors
This is the day-to-day management view for the contributors on a project: bulk upload, edits, deletions, QR codes for self-service sign-up. For the canonical “invite a single contributor and watch them complete the survey” journey, see Inviting a contributor.
What happens
Section titled “What happens”The producer opens the project, switches to the Contributors tab, and sees a table split between Crew and OnScreen lists. They can:
- Add a single contributor (covered in detail by the Inviting a contributor flow)
- Upload a CSV to add many contributors at once
- Edit existing rows in the table directly
- Delete contributors with a confirmation
- Generate QR codes for some roles so contributors can sign themselves up
What the user sees
Section titled “What the user sees”The contributors table
Section titled “The contributors table”A table with one row per contributor. Columns include name, email, unique ID (if Diamond Code is enabled), role, character (OnScreen only), and the episodes they worked on.
| Column | Translation key |
|---|---|
| Name | Projects.manage-contributors.name |
Projects.manage-contributors.email | |
| Unique ID (Diamond Code) | Projects.manage-contributors.unique-id |
| Role | Projects.manage-contributors.role |
| Character (OnScreen) | Projects.manage-contributors.character |
CSV upload
Section titled “CSV upload”The Upload List button opens a multi-step modal:
- Import data — file picker for the CSV
- Map data — match the CSV columns to the app’s fields
- Select episodes — which episodes to apply these contributors to
- Edit data — review and tweak before committing; with intelligent role suggestions and warnings
The CSV upload replaces the entire contributor set for that type (Crew or OnScreen) — it doesn’t merge with what’s already there. This is the most common gotcha.
Delete confirmation
Section titled “Delete confirmation”Clicking delete on a row opens a confirmation dialog. The wording differs slightly depending on context (“upload” vs “manage”) and how many contributors are being deleted:
| Context | Translation key |
|---|---|
| Manage single | Projects.manage-contributors.delete-dialog.manage-single-title |
| Manage multiple | Projects.manage-contributors.delete-dialog.manage-multiple-title |
| Upload single | Projects.manage-contributors.delete-dialog.upload-single-title |
| Upload multiple | Projects.manage-contributors.delete-dialog.upload-multiple-title |
QR code modal
Section titled “QR code modal”For certain roles (the set defined by your client config as “QR-eligible”), a QR Code button opens a modal:
| Visible text | Translation key |
|---|---|
| Modal title | Projects.manage-contributors.qr-modal.title |
| Role select | Projects.manage-contributors.qr-modal.role-label |
| Episodes select | Projects.manage-contributors.qr-modal.episodes-label |
| ”All episodes” option | Projects.manage-contributors.qr-modal.all-episodes-option |
The QR code points at the same URL a contributor would receive in their invitation email, only it bypasses the email step — useful on set when a runner can hand a tablet to a crew member.
Read-only mode
Section titled “Read-only mode”After certain operations (e.g. a project transfer), the new owner may temporarily see contributors as read-only with a banner: Projects.project-details.readonly-private-data.
What you can customise
Section titled “What you can customise”Translations
Section titled “Translations”All contributor-management text lives under Projects.manage-contributors.* in tep-configuration/translations/{locale}/main/projects.json. Override per client.
QR-eligible roles
Section titled “QR-eligible roles”The set of roles that get a “Generate QR code” option is defined per client (QR_ELIGIBLE_ROLE_ID_SET). Typically these are crew roles that are predictable on set — keys grip, sound mixer, focus puller, etc. — and not on-screen talent.
Intelligent role validation
Section titled “Intelligent role validation”When editing a contributor’s role, the app checks the chosen role against the project’s content form and surfaces warnings if there’s a mismatch (e.g. assigning an on-screen role to a documentary project where it doesn’t fit). The role taxonomy and the validation rules come from your client’s configuration.
Variations for your deployment
Section titled “Variations for your deployment”| Your deployment | What’s different |
|---|---|
| Diamond Code enabled | The Unique ID column appears in the table and is editable |
| Diamond Code disabled | No Unique ID column |
| Clients with custom role taxonomies | The role list and the QR-eligible role set reflect your taxonomy |
Need more detail?
Section titled “Need more detail?”For the mutation set (single update, CSV replace, delete), the role-validation orchestration, and the field-error mapping pattern, see Editing contributors (engineering).