Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: [DHIS2-18310] enable non-Gregorian calendars in views & lists & forms #3900

Open
wants to merge 38 commits into
base: master
Choose a base branch
from

Conversation

alaa-yahia
Copy link
Member

@alaa-yahia alaa-yahia commented Dec 5, 2024

Implements DHIS2-18310 & DHIS2-18311 & DHIS2-18309 & DHIS2-18868

  • Modified clientToList, clientToForm and clientToView converters to handle local format conversions (DHIS2-18310)
  • Modified FormToClient converter to handle ISO format (DHIS2-18309)
  • Ensure that all “Last updated” calculations are working when local calendar is used
  • Ensure all date pickers (form and working list) are using local calendar.
  • Enable non-Gregorian calendars in working list filters DHIS2-18311
  • Fix search for a trackedEntity by a DATETIME & AGE attributes DHIS2-18868

@alaa-yahia alaa-yahia requested a review from a team as a code owner December 5, 2024 00:21
@alaa-yahia alaa-yahia force-pushed the DHIS2-18310-enable-non-gregorian-calendars-in-views-and-lists branch from 8983fd7 to 0294f8d Compare December 5, 2024 11:00
@simonadomnisoru
Copy link
Contributor

Hi @alaa-yahia,
I noticed two issues with the Age field:

  1. When selecting a date from the calendar, the year, months, and days are filled with incorrect values. (i.e. In the video below, I selected today's date from the Ethiopian calendar, so the year, months, and day should have been filled with 0).
  2. When typing a value into the days field, the calendar is filled with the gregorian value of the date.
Screen.Recording.2024-12-12.at.16.51.40.mov

In the video above I used the Ethiopian calendar. Can you have a look? Thank you!

Copy link
Member

@JoakimSM JoakimSM left a comment

Choose a reason for hiding this comment

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

A good start, but some things we will have to work a bit more on.

In addition to the individual comments we should convert the "last updated" tooltips from ISO to local calendar (I saw this in both the stages and events Widget and the enrollment Widget). Had a very quick look at the stages and events Widget and for now I think you can use something like moment(fromServerDate(updatedAt)).toISOString() and put the result into the clientToView converter of type DATETIME (we should probably also use the serverToClient converter, but this will be checked and resolved in separate ticket)

@alaa-yahia alaa-yahia force-pushed the DHIS2-18310-enable-non-gregorian-calendars-in-views-and-lists branch from da9bf63 to 013db2c Compare January 6, 2025 11:22
Copy link
Member

@JoakimSM JoakimSM left a comment

Choose a reason for hiding this comment

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

In addition to other comments:

  • We should fix the logic in getDateRangeValidator and getDateTimeRangeValidator. These validators are being used in the search form when using tracked entity attributes of value type date and dateTime. We should replace the parseDate logic and leverage the validation done in the ui library component.
  • Don't use parseDate on local dates. I think this means that we should remove parseDate from the codebase in its entirety (I didn't see any valid reason to use it anymore, but let me know if I missed something)

Copy link
Contributor

@simonadomnisoru simonadomnisoru left a comment

Choose a reason for hiding this comment

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

Hi @alaa-yahia, I found a few bugs that I hope you can look into. I tested with the Ethiopian and Nepalese calendars. Thank you!

@alaa-yahia
Copy link
Member Author

@simonadomnisoru I've pushed bug fixes addressing your feedbacks. Could you take another look when you have a time?
Thank you

@alaa-yahia alaa-yahia force-pushed the DHIS2-18310-enable-non-gregorian-calendars-in-views-and-lists branch from 7ba48ab to b3bd5ea Compare February 3, 2025 17:12
Copy link

sonarqubecloud bot commented Feb 5, 2025

Quality Gate Failed Quality Gate failed

Failed conditions
9 New issues
9 New Code Smells (required ≤ 0)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

Copy link
Contributor

@simonadomnisoru simonadomnisoru left a comment

Choose a reason for hiding this comment

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

@alaa-yahia, fantastic work on this feature! Well done! 🎉

@alaa-yahia alaa-yahia requested a review from JoakimSM February 5, 2025 15:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants