Scholarship agreement log: settle removal vs keep before dropping the table
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 35/100
Hướng nghiên cứu
Bắt đầu với #2351, sau đó kiểm tra Scholarship, ScholarshipAgreementResponse, app/views/scholarships/_agreement_history.html.erb và các specs được liệt kê để hiểu các phụ thuộc hiện tại của log và UI. Được xem là hoàn tất khi đã ghi lại quyết định giữ lại bảng và giải quyết vấn đề UI trùng lặp, hoặc chỉ rõ một vị trí mới cho mọi trường cùng với kế hoạch backfill.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
🤖 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.
- Ngôn ngữ chính
- Ruby
- Star
- 15
- Fork
- 28
- Merge trung bình
- 1 ngày 12 phút
- Pull request đã merge (30 ngày)
- 262
Chuẩn bị môi trường
Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.
- Có Dockerfile hoặc tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của rubyforgood/awbw
-
blocked
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
rubyforgood/awbw#2824 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
rubyforgood/awbw#2822 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
rubyforgood/awbw#2160 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Update callout faq defualt text when the new person subscription launchesCó thể đã có người làm @maebeale đã nhận 79 ngày trước. Đang mởblocked
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
rubyforgood/awbw#2095 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
rubyforgood/awbw#2088 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của rubyforgood/awbw
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 77/100
Maintainer thường phản hồi trong vòng 1 ngày
-
L: javascript
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
dependabot/dependabot-core#16744 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
area:core-lib P2 size:S
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 77/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
Maintainer thường phản hồi trong vòng 1 ngày