Scholarship agreement log: settle removal vs keep before dropping the table
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
Línea de trabajo
Comienza con #2351 y luego revisa Scholarship, ScholarshipAgreementResponse, app/views/scholarships/_agreement_history.html.erb y las specs indicadas para entender las dependencias actuales del log y la UI. Se considera terminado cuando se haya registrado una decisión de mantener la tabla y resolver la cuestión de la UI duplicada, o cuando se haya definido un nuevo lugar para cada campo junto con un plan de backfill.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
🤖 From Claude:
Part of #2251. Carved out of that umbrella's follow-ups, which scoped this as: backfill any needed history from scholarship_agreement_responses, then drop the callbacks, the _agreement_history partial, and the table.
Blocked by #2351.
Why it isn't a straight removal
The removal assumed a generic change log (PaperTrail versions at the time; Ahoy events now that #2245 pivoted) covers what the bespoke log holds. It doesn't:
Field on scholarship_agreement_responses |
On a generic change log? |
|---|---|
status transition |
✅ agreement_response_status before/after |
responded_at |
⚠️ only the event timestamp, which isn't the same field |
responder (recipient / admin / system) |
❌ domain role, not the acting user |
reason (decline free text) |
❌ never stored on the scholarship |
amount_cents at the time of response |
❌ point-in-time value |
Scholarship#latest_agreement_response is a live read dependency: the responded-at date and decline reason are not columns on scholarship, so the UI has no other source.
Worse, per #2351 a logged-out recipient accepting or declining on the public callout produces no Ahoy event at all — the bespoke log is currently the only record that it happened.
Current surface
Scholarship:has_many :agreement_responses,after_create/after_update :log_agreement_response,latest_agreement_responseapp/views/scholarships/_agreement_history.html.erb, rendered byscholarships/editandevents/callouts/scholarship(admin-styled)ScholarshipAgreementResponse+scholarship_agreement_responsestable- Specs:
scholarship_agreement_response_spec, plus agreement-history coverage inscholarship_specandevents/callouts_spec
Recommendation
Keep the table; treat the follow-up as de-duplicating the UI, not deleting the log.
- Fix #2351 first, so recipient responses are tracked at all.
- Decide where
reason/responder/ point-in-timeamount_centslive if the table goes. If the answer is "on the scholarship", that's a schema change plus a backfill — bigger than the removal it was meant to simplify. - If the goal is just "one history UI per record", drop
_agreement_historyin favour of the shared activity log only once the generic log carries those fields.
Acceptance
Either a decision recorded here to keep the table (and the duplicate-UI question settled), or a plan that names the new home for every field in the table above, with a backfill.
- Lenguaje dominante
- Ruby
- Estrellas
- 15
- Forks
- 28
- Merge medio
- 1 d 12 min
- PR fusionados (30 d)
- 262
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Incluye un Dockerfile o un archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de rubyforgood/awbw
-
blocked
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
rubyforgood/awbw#2824 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
rubyforgood/awbw#2822 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
rubyforgood/awbw#2160 ·
Los mantenedores suelen responder en 1 día
-
Update callout faq defualt text when the new person subscription launchesPosiblemente ocupada @maebeale la tomó hace 77 días. Abiertoblocked
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
rubyforgood/awbw#2095 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
rubyforgood/awbw#2088 ·
Los mantenedores suelen responder en 1 día
Todos los issues de rubyforgood/awbw
Issues similares
-
Liens externes cassésAbierto
Dificultad 1/5 1-3 horas Aptitud para principiantes 66/100
betagouv/conseillers-entreprises#4770 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
seek4science/seek#2762 ·
Los mantenedores suelen responder en 5 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
rubyevents/rubyevents#2277 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 92/100
Los mantenedores suelen responder en 2 días