Remove platform-processed donations; donation links on orgs, people and events - #20
Merged
Merged
Conversation
Deletes the /donate route and feature, the org payments tab and its console route section, the Stripe.js loader and appearance, the three donation legal documents, the Apple Pay merchant-domain file, the /donate/* edge headers and redirect, the publishable-key and merchant-file build gates, the Stripe eslint fences and the two @stripe deps. deploy-web.yml loses the STRIPE_LIVE/STRIPE_TEST variables, the key emission and the three key assertions; Turnstile and the API/site assertions stay. The privacy, terms, cookies and subprocessors pages now describe donation links as external addresses civfix never processes.
Organization settings gains an https Donation link field saved through the org update mutation, and the overview shows the link's hostname with an edit link. The public org page and the signup page's donate block now open the external address in a new tab.
The four host-org overview keys, the three org form keys and the event settings org-fallback line become real entries in en/es/de/ko, so their call sites drop the inline defaults. The stale platform-donation org_note is removed with them. The console's organization donation field now rejects an unsafe https address the same way the shared components do, using SafeHttpsLinkSchema beside the request schema instead of letting one through that nothing will render.
The terms, privacy, cookies and sub-processors pages were rewritten for the donation-link change, so all four move to version 2026-09-16 with the sha256 of the newly rendered text. Everyone is asked to accept once more. DECISIONS 46 gains the sign-up page follow-up: PublicEventPageDTO.organization carries no donationUrl, so that surface cannot fall back to the org link.
App Store Connect already holds 1.2.0, so the next production build needs its own marketing version. app.config.js does not read package.json, so both move.
|
hang on I did not want this |
|
We need integrated donations |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
civfix no longer takes donations. There is no checkout, no fee, no payout and no donation record anywhere in the product: the Stripe integration, the org payments console, the donor receipt pages and the whole payments half of the contract are gone.
In their place, an organization or a person adds a donation link — an ordinary https address they own — in their settings. That link shows up as a Donate card on the events they host, on the organization's public page and on their profile, and tapping it opens the page in the browser. An event can also carry its own link, which wins over the organization's and the organizer's.
Because the product changed, the Terms of Service, Privacy Policy, Cookies & Storage and Sub-processors pages were rewritten and re-versioned, so everyone is asked to accept them once more the next time they sign in.
The mobile app moves to version 1.2.1 (1.2.0 is already in App Store Connect).
Shows in web and mobile.
Before you start
Test on staging.
You need two citizen accounts, and one of them should be an owner or admin of an organization and host an event as that organization.
Related PRs, all part of the same release: civfix-backend #52, civfix-admin #21, civfix-infra #8, dev-env #5. Merge civfix-backend #52 first — the donation-link columns and the new legal document versions live there, and this app expects them.
Verify
[Web]
example.orginto it. The field shows Must start with https:// and the save button will not let it through.https://example.org/give) and save. A toast confirms the organization was saved./orgs/<handle>). A button reads Donate to <your organization's name> and opens the address in a new tab./legal/terms. The row of links reads exactly Terms of Service · Privacy Policy · Cookies & Storage · Sub-processors — there are no donation documents in it. The line under the title shows the new version and effective date.[Mobile]
not-a-link— it refuses with the invalid-link message. Enter a real https address and tap Save.Regression
/e/<slug>) still renders its donate block when the event carries its own link, and the page builder's donate block still accepts a URL./donate/some-org. It now returns the 404 page — the route and its SPA fallback rule were both removed, so Cloudflare serves the site's 404. No redirect to the organization page was added.Not covered