Skip to content

Conversation

@damian-molinski
Copy link
Contributor

@damian-molinski damian-molinski commented Sep 23, 2025

Description

This PR prepares frontend for changing active campaigns

Related Issue(s)

Resolves https://github.com/input-output-hk/catalyst-internal-docs/issues/316

Description of Changes

  • Stores active campaign ref in local storage (AppMetaStorage). When changes database documents are removes but templates used by local drafts. This happens inside SyncManager.
  • Make local drafts from not active campaign shown in workspace inside separate section with view only option.
  • Filtering queried proposals with CampaignFilters. This is not as dynamic as it should be but for now it's enough.
  • Made all places which rely on campaign and categories respect case when campaign does not have any categories
  • Define static refs for f14 and f15. They are no longer random but still only means something for frontend only.
  • Adds dummy .f15 constructor for campaign.
  • moved f14 categories and timeline to respective files f14_static_campaign_categories.dart and f14_static_campaign_timeline.dart. This allows us for f15 counter parts
  • Makes f15 active campaign !
  • TODO update index endpoint with filtering based on campaign

Demo

TODO

Related Pull Requests

Please confirm the following checks

  • My code follows the style guidelines of this project
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published in downstream module

@damian-molinski damian-molinski self-assigned this Sep 23, 2025
@damian-molinski damian-molinski added squad: face Frontend Catalyst Experience Team a: proposal Showing proposals or details of single proposal labels Sep 23, 2025
@damian-molinski damian-molinski moved this from New to 🏗 In progress in Catalyst Sep 23, 2025
@damian-molinski damian-molinski moved this from 🏗 In progress to 👀 In review in Catalyst Sep 24, 2025
@damian-molinski damian-molinski marked this pull request as ready for review September 24, 2025 14:16
Copy link
Contributor

@dt-iohk dt-iohk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall LGTM

@github-actions
Copy link
Contributor

📚 Docs Preview

The docs for this PR can be previewed at the following URL:

https://docs.dev.projectcatalyst.io/voices/feat/documents_campaign_isolation_316

@damian-molinski damian-molinski moved this from 👀 In review to 🛑 Blocked in Catalyst Sep 25, 2025
@damian-molinski damian-molinski added the no-track Used to skip tracking in Swarmia analytics, etc. label Sep 25, 2025
@damian-molinski
Copy link
Contributor Author

Waiting for gateway document index endpoint to allow category.id.in parameter

@damian-molinski damian-molinski merged commit 23e0721 into f15/cat-app Oct 7, 2025
41 checks passed
@damian-molinski damian-molinski deleted the feat/documents_campaign_isolation_316 branch October 7, 2025 09:23
@github-project-automation github-project-automation bot moved this from 🛑 Blocked to ✅ Done in Catalyst Oct 7, 2025
@damian-molinski damian-molinski mentioned this pull request Oct 14, 2025
2 tasks
dt-iohk added a commit that referenced this pull request Oct 14, 2025
…3492)

* chore: remove hardcoded values of f14 and fund14 (#3443)

* feat(cat-voices): tracking registration status (#3449)

* feat: add account_registration_status to account model + poller

* feat: check registration status before refreshing account public profile

* checking account indexed status

* typos

* fix: test

* refactor RegistrationStatusPoller so its using Streams

* fix: typos

* feat(cat-voices): Improvements to import proposals, handling malformed proposals (#3448)

* feat: don't import invalid refs and skip malformed proposals

* chore: remove unused code

* feat: use active campaign observer

* chore: fix test

* chore: review update

* chore: remove not needed emit

* chore: return correct new ref

* fix: test

* chore: change log from info to warning

* feat(cat-voices): email already used warning  (#3452)

* feat: implement registration signal handling for used email

* chore: do not report wallet accountChange error to sentry

* feat(cat-voices): Multi currency support (#3454)

* feat: multi currency support

* fix: spelling

* fix: revert unwanted changes

* refactor: cleanup code

* refactor: cleanup tests

* refactor: cleanup

* feat: update currency formatting

* refactor: cleanup formatting

* chore(cat-voices): update gateway open api specs (#3461)

* chore: update gateway openAPI specs

* chore: remove openAPI specs generation from earthly target

* fix: failing tests

* chore: cleanup earthly targer

* chore(cat-voices): cleanup UI (#3469)

* fix: document validation takes into account actions and comments too

* hard remove voting related content

* chore: clean up

* fix(cat-voices): disable failing earthly targets (#3482)

* feat(cat-voices): multicurrency support and money formatting changes (#3473)

* feat: use currency from the schema

* feat: allow custom currency codes

* refactor: allow description to be nullable

* chore: update gateway openAPI specs

* chore: remove openAPI specs generation from earthly target

* fix: failing tests

* feat: add fallback for integer schema

* feat: fallback double widget

* feat: make debug fallback more visible

* feat: allow to only enter decimal text

* feat: handle multiple of validation

* refactor: cleanup

* feat: add support for different formats and currencies related to money in proposals

* feat: allow to query currency by iso code

* feat: parse document currency format dynamically

* feat: convert more raw values into money instances

* feat: show allowed money range as money

* fix: validation

* feat: show multiple of as money

* fix: text reverting decimal separators

* feat: respect schema's multiple of

* docs: document currency format docs

* feat: parse money from string

* feat: convert money to use BigInts

* feat: update decimal input formatter to not exceed safe range of int / double

* fix: don't allow decimals in legacy ada format

* fix: node id differentiate

* fix: nodeId should not consider parent to be a child of itself

* feat: format money with code

* feat: formatting of different currencies

* refactor: code cleanup

* fix: spelling

* fix: tests

* fix: tests

* feat: display exact amount for registration fee as wallets do

* chore: cleanup

* chore: code review changes

* refactor: use wildcard function

---------

Co-authored-by: Damian Molinski <[email protected]>
Co-authored-by: Damian Moliński <[email protected]>

* chore(cat-voices): comments category_id (#3468)

* include category_id in CommentDocument metadata

* chore: spelling

* analyzer

* feat(cat-voices): documents campaign isolation (#3462)

* chore: move const content into fund specific files + fix tests

* empty f15 campaign

* feat: campaign filters

* fix: filter type

* feat: workspace multi campaign

* fix: viewing older proposals

* static all campaigns

* fix: more flexible create new proposal dialog

* feat: simplify campaign filtering

* watch user proposals count for active campaign

* campaign change documents clear

* fix: analyzer

* fix: tests

* chore: cleanup

* explicit categoryId query type

* chore: move active campaign pointers to one file

* feat: use category.in filter parameter

* fix: failing tests

* feat: add ProposalsFilters.forActiveCampaign constructor

* final list of all campaigns

* chore: refactor creating money logic

* fix: gitignore

* refactor: amount function

* Revert "chore(cat-voices): cleanup UI (#3469)"

This reverts commit 8058e1b.

* Revert "chore: adding voting page guard (#3437)"

This reverts commit 0dd9d2c.

* feat(cat-voices): Currency formatting adjustments (#3496)

* feat: display money as decimal

* feat: display money as decimals

* feat: allow only dot as decimal separator

* fix: tests

* fix: tests

* fix: tests

* fix: tests

* fix: tests

* Revert "fix(cat-voices): disable failing earthly targets (#3482)"

This reverts commit 2762cd6.

* fix: rename method

* fix: missing param

* chore(cat-voices): update index endpoint parameter (#3501)

* chore: update index endpoint parameter

* add parameters field to index response dto

* fix: index endpoint parameters (#3514)

* feat(cat-voices): respect title in agreement confirmation widget (#3500)

* refactor(cat-voices): unify range classes (#3513)

* refactor: unify ranges

* refactor: tests

* style: spelling

* fix: tests

* style: spelling

* feat(cat-voices): add placeholder to multi currency formatted amount (#3518)

* feat(cat-voices): F15 copy text and ID refs (#3516)

* feat: f15 documents refs

* feat: categories copy text

* feat: category dos and donts

* feat: update f15 campaign id

* feat: update category ref id in url

* chore: clean l10n

* chore: raw strings

* feat: short description

* chore: remove one element

* fix: review

* feat: support for active fund number in urls (#3526)

* feat: change max number of final proposals (#3530)

---------

Co-authored-by: Ryszard Schossler <[email protected]>
Co-authored-by: Damian Moliński <[email protected]>
Co-authored-by: Damian Molinski <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

a: proposal Showing proposals or details of single proposal no-track Used to skip tracking in Swarmia analytics, etc. squad: face Frontend Catalyst Experience Team

Projects

Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

4 participants