Calendar Cycle Calculation Logic closes #276 #284

Merged
moritz merged 3 commits from feature/276_cycle_calculation into main 2025-12-16 16:39:37 +01:00
Owner

Description of the implemented changes

The changes were:

  • Bugfixing
  • New Feature
  • Breaking Change
  • Refactoring

Definition of Done

Code Quality

  • No new technical depths
  • Linting passed
  • Documentation is added were needed

Accessibility

  • New elements are properly defined with html-tags
  • Colour contrast follows WCAG criteria
  • Aria labels are added when needed
  • Everything is accessible by keyboard
  • Tab-Order is comprehensible
  • All interactive elements have a visible focus

Testing

  • Tests for new code are written
  • All tests pass
  • axe-core dev tools show no critical or major issues
## Description of the implemented changes The changes were: - [ ] Bugfixing - [x] New Feature - [ ] Breaking Change - [ ] Refactoring ## Definition of Done ### Code Quality - [x] No new technical depths - [x] Linting passed - [x] Documentation is added were needed ### Accessibility - [ ] New elements are properly defined with html-tags - [ ] Colour contrast follows WCAG criteria - [ ] Aria labels are added when needed - [ ] Everything is accessible by keyboard - [ ] Tab-Order is comprehensible - [ ] All interactive elements have a visible focus ### Testing - [x] Tests for new code are written - [x] All tests pass - [ ] axe-core dev tools show no critical or major issues
moritz added this to the Membership Fees milestone 2025-12-11 19:46:32 +01:00
moritz self-assigned this 2025-12-11 19:46:32 +01:00
moritz added 3 commits 2025-12-11 19:46:33 +01:00
fix(membership-fees): add DB constraints for enum and decimal precision
All checks were successful
continuous-integration/drone/push Build is passing
ebbf347e42
feat: implement calendar-based cycle calculation functions
All checks were successful
continuous-integration/drone/push Build is passing
822d06ed54
Add CalendarCycles module with functions for all interval types.
Includes comprehensive tests for edge cases.
moritz added 1 commit 2025-12-11 20:08:27 +01:00
refactor: improve CalendarCycles API and tests based on code review
All checks were successful
continuous-integration/drone/push Build is passing
b257c9897f
moritz added 1 commit 2025-12-11 20:21:28 +01:00
docs: fix CalendarCycles documentation to match actual implementation
All checks were successful
continuous-integration/drone/push Build is passing
ecddf55331
moritz changed title from WIP: Calendar Cycle Calculation Logic closes #276 to Calendar Cycle Calculation Logic closes #276 2025-12-11 20:47:13 +01:00
moritz added a new dependency 2025-12-15 21:38:52 +01:00
requested review from carla 2025-12-16 12:22:25 +01:00
moritz force-pushed feature/276_cycle_calculation from ecddf55331 to aa7e5a7d38 2025-12-16 14:07:08 +01:00 Compare
moritz force-pushed feature/276_cycle_calculation from aa7e5a7d38 to a7285915e6 2025-12-16 15:06:49 +01:00 Compare
carla approved these changes 2025-12-16 16:22:11 +01:00
carla left a comment
Owner

looks good to me :)

looks good to me :)
@ -0,0 +10,4 @@
The time-dependent functions (`current_cycle?/3`, `last_completed_cycle?/3`)
depend on a date parameter for testability. Their 2-argument variants
(`current_cycle?/2`, `last_completed_cycle?/2`) use `Date.utc_today()` and
Owner

If our meaning of “today” is Europe/Berlin (or any non-UTC TZ), we can be wrong for a window around midnight.
We could explicitly define the business clock as UTC (and document it), or centralize “today” behind a project helper (e.g. Mv.Time.today/0) that uses a configured timezone.

If our meaning of “today” is Europe/Berlin (or any non-UTC TZ), we can be wrong for a window around midnight. We could explicitly define the business clock as UTC (and document it), or centralize “today” behind a project helper (e.g. Mv.Time.today/0) that uses a configured timezone.
Author
Owner

I think this could be a part of a new issues, to set a timezone in the global settings

I think this could be a part of a new issues, to *set a timezone in the global settings*
@ -0,0 +50,4 @@
## Parameters
- `date` - Ignored in this 3-argument version (kept for API consistency)
Owner

why for API consistency?

why for API consistency?
Author
Owner

Because all other cycle function use the current date as first argument for testing the functions. This is just kept to have consistency between the other functions.

Because all other cycle function use the current date as first argument for testing the functions. This is just kept to have consistency between the other functions.
moritz marked this conversation as resolved
moritz merged commit 894b9b9d5c into main 2025-12-16 16:39:37 +01:00
moritz deleted branch feature/276_cycle_calculation 2025-12-16 16:39:48 +01:00
Sign in to join this conversation.
No description provided.