2.7 KiB
opportunity-calendar Specification
Purpose
Present the filtered opportunities by close date in a vertically navigable calendar bounded by the chosen Reference.
Requirements
Requirement: Calendar is a Reference-bounded monthly view
Calendar SHALL show a continuous monthly view restricted to the selected Reference, with vertical scrolling and no month/week switch or previous/next navigation buttons. Switching between Overview and Calendar SHALL not fetch opportunities again.
Scenario: Reference spans multiple months
- WHEN the user opens Calendar for a multi-month Reference
- THEN all months in the Reference remain reachable by vertical scrolling, including months with no opportunities
Requirement: Every daily opportunity has a card
Each day SHALL show cards for all matching opportunities with a scrollable daily region when necessary. A hidden-event overflow link SHALL not replace the extra cards.
Scenario: Many opportunities close on one day
- WHEN the day's cards exceed its available height
- THEN the user can scroll within the day to reach all cards and the count reflects all matching opportunities
Requirement: Initial positioning includes adjacent weeks
When today is within Reference, Calendar SHALL position around the current week and adjust visible week sizing to include the preceding and following weeks where the Reference permits. Dates outside Reference SHALL remain excluded.
Scenario: Current week crosses a month boundary
- WHEN Calendar positions around today and the three-week interval crosses into another month
- THEN the rendered portions of those weeks are included in the positioning calculation
Requirement: Dates retain their calendar-day meaning
Calendar SHALL use EffectiveDate as a date-only close date without timezone shifts. Opportunities with missing or invalid close dates SHALL remain available in a separate list, and fiscal week labels SHALL use Sunday-start weeks and a June-start fiscal year.
Scenario: API date includes an offset
- WHEN an opportunity close date contains a timezone offset
- THEN its card retains the API calendar day instead of shifting to an adjacent day
Scenario: Missing close date
- WHEN a filtered opportunity has no valid close date
- THEN it is accessible through the undated-opportunities list
Requirement: Calendar details are read-only
Opportunity cards SHALL show stage information and open read-only details with the corresponding opportunity link. Calendar labels and controls SHALL be in English.
Scenario: User selects a card
- WHEN an opportunity card is clicked
- THEN its details are shown without changing the opportunity in Oracle