Remove slideshow support
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
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
❌ 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
-
Slideshow nodes on production, all in test channels:
Channel Tree Slideshow nodes Prueba (deleted) staging, main 67 Studio Test Channel 1, Studio Test Channel 4 main, trash 4 Test QA Channel 66 main, trash 2 Kolibri QA Channel, Kolibri QAv2, Regression fixture, Shared resources, Slides Slides Slides! (×2), Velox testing channel main 7 (no channel) — 1 -
The 85 slide
Files are attached only throughslideshow_slide, never to a node. -
Slideshow code in Studio:
SlideshowSlideandFile.slideshow_slide- the ricecooker endpoint:
views/internal.py:811-824,create_slides,map_files_to_slideshow_slide_item - publish:
utils/publish.py:408-409callscreate_slideshow_manifest - garbage collection:
utils/garbage_collect.py:208
-
Ricecooker removed
SlideshowNode(docs/migration.md:17-18). -
Kolibri still ships
kolibri.plugins.slideshow_viewer, so channels already published with slideshows keep rendering.
The Change
- The existing slideshow nodes should be deleted, along with their slides and slide
Files. SlideshowSlideandFile.slideshow_slideshould be removed. The column drop takes a briefACCESS EXCLUSIVElock oncontentcuration_file, so the migration should set alock_timeoutand fail rather than retry.- The ricecooker endpoint should reject a
slideshownode with a 400 rather than create it. - Publish should no longer build slideshow manifests.
Out of Scope
- The
slideshowkind in le-utils, and Kolibri'sslideshow_viewer.
Acceptance Criteria
General
- After deploy to
hotfixes, nocontentnoderow haskind_id = 'slideshow' -
contentcuration_slideshowslideno longer exists, andcontentcuration_filehas noslideshow_slide_idcolumn or index - The migration aborts with a non-zero exit when it can't acquire its lock within
lock_timeout - Uploading a
slideshownode through the ricecooker endpoint returns a 400 -
makemigrations --checkreports no changes
Testing
- A test covers the ricecooker endpoint rejecting a
slideshownode
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
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di learningequality/studio
-
Set unpublishable: true on PublishedChange by construction to simplify handleMaxRevs predicateApertaDEV: frontend P3 - low
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
learningequality/studio#5868 ·
I maintainer di solito rispondono entro 1 giorno
-
TAG: tech update / debt
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
learningequality/studio#2245 ·
I maintainer di solito rispondono entro 1 giorno
-
bug DEV: frontend
Difficoltà 4/5 3-5 giorni Idoneità per principianti 20/100
learningequality/studio#6365 ·
I maintainer di solito rispondono entro 1 giorno
-
bug DEV: frontend
Difficoltà 2/5 1-3 ore Idoneità per principianti 20/100
learningequality/studio#6364 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
learningequality/studio#6359 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di learningequality/studio
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
bug(sdk): add_toleration_json silently drops camelCase tolerationSeconds for static dict/list inputForse già presa @ravikumar266 l’ha presa oggi. Apertaarea/sdk kind/bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
kubeflow/pipelines#15347 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
predict_file with crop_model duplicates predictions once per imageForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
weecology/DeepForest#1445 ·
-
agent-ready priority: medium status: ready
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
melodic-software/claude-code-plugins#11864 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
PolicyEngine/policyengine-uk#2785 ·
I maintainer di solito rispondono entro 2 giorni