Remove slideshow support

Aperta
#6,353 0 commenti 2 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
django, postgresql, python
Ambito
backend, databases

Direzione di ricerca

Start with the SlideshowSlide and File.slideshow_slide models in contentcuration/contentcuration/models.py, then trace the ricecooker endpoint in views/internal.py and publish logic in utils/publish.py. Review the migration and garbage collection paths as well. Done means existing slideshow rows and support are removed, the endpoint returns 400 for slideshow nodes, publish stops building manifests, and the migration fails on lock timeout.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

DEV: backend

❌ This issue is not open for contribution. Visit Contributing guidelines to learn about the contributing process and how to find suitable issues.

Overview

Slideshow content can no longer be created: the Studio editor never supported it, and ricecooker removed SlideshowNode, so only Studio's ricecooker endpoint still accepts slides, and no current ricecooker sends them. Production holds 81 slideshow nodes, all in test or QA channels, with 85 SlideshowSlide rows created between 2019 and 2021. File.slideshow_slide's index costs 6.6 GB to cover those 85 rows. Slideshow support and the existing slideshow nodes should be removed from Studio.

Complexity: Medium
Target branch: hotfixes

Context
The Change
  • The existing slideshow nodes should be deleted, along with their slides and slide Files.
  • SlideshowSlide and File.slideshow_slide should be removed. The column drop takes a brief ACCESS EXCLUSIVE lock on contentcuration_file, so the migration should set a lock_timeout and fail rather than retry.
  • The ricecooker endpoint should reject a slideshow node with a 400 rather than create it.
  • Publish should no longer build slideshow manifests.
Out of Scope
  • The slideshow kind in le-utils, and Kolibri's slideshow_viewer.
Acceptance Criteria
General
  • After deploy to hotfixes, no contentnode row has kind_id = 'slideshow'
  • contentcuration_slideshowslide no longer exists, and contentcuration_file has no slideshow_slide_id column or index
  • The migration aborts with a non-zero exit when it can't acquire its lock within lock_timeout
  • Uploading a slideshow node through the ricecooker endpoint returns a 400
  • makemigrations --check reports no changes
Testing
  • A test covers the ricecooker endpoint rejecting a slideshow node

AI usage

Drafted with Claude Code, which measured slideshow usage on production through read-only queries in the disposable debugging job and traced the slideshow code paths. I chose to remove the feature and delete the existing nodes.

Lingua principale
Python
Stelle
212
Fork
314
Merge medio
3g 19h
PR unite (30g)
41

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di learningequality/studio

Tutte le issue di learningequality/studio

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.