Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Scholarship agreement log: settle removal vs keep before dropping the table

Abierto
#2,352 0 comentarios 0 reacciones 0 asignados Ver en GitHub

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
Tipo de issue
Refactorización
Claridad
Necesita aclaración
Estado de actividad
Activo
Stack tecnológico
ruby
Área
backend, database

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

scholarships

🤖 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_response
  • app/views/scholarships/_agreement_history.html.erb, rendered by scholarships/edit and events/callouts/scholarship (admin-styled)
  • ScholarshipAgreementResponse + scholarship_agreement_responses table
  • Specs: scholarship_agreement_response_spec, plus agreement-history coverage in scholarship_spec and events/callouts_spec

Recommendation

Keep the table; treat the follow-up as de-duplicating the UI, not deleting the log.

  1. Fix #2351 first, so recipient responses are tracked at all.
  2. Decide where reason / responder / point-in-time amount_cents live 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.
  3. If the goal is just "one history UI per record", drop _agreement_history in 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

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de rubyforgood/awbw

Todos los issues de rubyforgood/awbw

Issues similares

Más issues de Ruby

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.