From 2dc29b8e3b1e97b9a9f6304359387a7fe8980685 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Sun, 28 Apr 2024 03:37:30 +0200 Subject: [PATCH 01/18] fix(translations): sync translations from transifex (master) Automatically merged. --- i18n/ar.po | 71 ++++-- i18n/bn.po | 658 +++++++++++++++++++++++++++++++++++++------------- i18n/cs.po | 86 +++++-- i18n/es.po | 33 ++- i18n/fr.po | 95 +++++--- i18n/lo.po | 71 ++++-- i18n/nb.po | 73 ++++-- i18n/nl.po | 71 ++++-- i18n/pt.po | 83 +++++-- i18n/pt_BR.po | 71 ++++-- i18n/ru.po | 71 ++++-- i18n/sv.po | 70 ++++-- i18n/uk.po | 67 +++-- i18n/ur.po | 67 +++-- 14 files changed, 1180 insertions(+), 407 deletions(-) diff --git a/i18n/ar.po b/i18n/ar.po index 9402c2172d..2d3efc2460 100644 --- a/i18n/ar.po +++ b/i18n/ar.po @@ -2,15 +2,15 @@ # Translators: # KRG HIS , 2020 # Philip Larsen Donnelly, 2023 -# Viktor Varland , 2024 # Hamza Assada <7amza.it@gmail.com>, 2024 +# Viktor Varland , 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2024-03-07T14:47:33.932Z\n" +"POT-Creation-Date: 2024-03-16T14:40:27.542Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" -"Last-Translator: Hamza Assada <7amza.it@gmail.com>, 2024\n" +"Last-Translator: Viktor Varland , 2024\n" "Language-Team: Arabic (https://app.transifex.com/hisp-uio/teams/100509/ar/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -693,6 +693,12 @@ msgid "" "An error occurred while fetching enrollments. Please enter a valid url." msgstr "" +msgid "No feedback for this enrollment yet" +msgstr "" + +msgid "No indicator output for this enrollment yet" +msgstr "" + msgid "Quick actions" msgstr "" @@ -776,6 +782,12 @@ msgstr "" msgid "Choose a registering unit to start reporting" msgstr "اختر وحدة تسجيل لبدء الإبلاغ" +msgid "No feedback for this event yet" +msgstr "" + +msgid "No indicator output for this event yet" +msgstr "" + msgid "Program stage is invalid" msgstr "" @@ -938,12 +950,6 @@ msgstr "" msgid "View Event" msgstr "" -msgid "No feedback for this enrollment yet" -msgstr "" - -msgid "No indicator output for this enrollment yet" -msgstr "" - msgid "Selected program" msgstr "البرنامج المحدد" @@ -1427,6 +1433,35 @@ msgstr "" msgid "tracked entity instance" msgstr "نموذج الكيان المتتبع" +msgid "Link to an existing {{linkableStageLabel}}" +msgstr "" + +msgid "Choose a {{linkableStageLabel}}" +msgstr "" + +msgid "Ambiguous relationships, contact system administrator" +msgstr "" + +msgid "" +"Enter {{linkableStageLabel}} details in the next step after completing this " +"{{currentStageLabel}}." +msgstr "" + +msgid "Enter details now" +msgstr "" + +msgid "Link to an existing" +msgstr "" + +msgid "Scheduled date" +msgstr "التاريخ المقرر" + +msgid "Report date" +msgstr "تاريخ التقرير" + +msgid "Please select a valid event" +msgstr "" + msgid "New {{ eventName }} event" msgstr "" @@ -1538,15 +1573,6 @@ msgstr "اسم مرحلة البرنامج" msgid "Working list could not be loaded" msgstr "تعذر تحميل قائمة العمل" -msgid "Download as JSON" -msgstr "تنزيل كملف JSON" - -msgid "Download as CSV" -msgstr "تنزيل كملف CSV" - -msgid "Download with current filters" -msgstr "تنزيل مع اعتماد عوامل التصفية الحالية" - msgid "Download data..." msgstr "تنزيل البيانات" @@ -1619,6 +1645,15 @@ msgstr "إظهار أقل" msgid "Show All" msgstr "إظهار الكل" +msgid "Download as JSON" +msgstr "تنزيل كملف JSON" + +msgid "Download as CSV" +msgstr "تنزيل كملف CSV" + +msgid "Download with current filters" +msgstr "تنزيل مع اعتماد عوامل التصفية الحالية" + msgid "An error has occured. See log for details" msgstr "حدث خطأ. انظر السجل للحصول على التفاصيل" diff --git a/i18n/bn.po b/i18n/bn.po index d536082666..01f90ba01c 100644 --- a/i18n/bn.po +++ b/i18n/bn.po @@ -1,15 +1,15 @@ # # Translators: -# Viktor Varland , 2021 # Rahman Monjur , 2021 +# Viktor Varland , 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2022-08-17T08:14:13.865Z\n" +"POT-Creation-Date: 2024-03-16T14:40:27.542Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" -"Last-Translator: Rahman Monjur , 2021\n" -"Language-Team: Bengali (https://www.transifex.com/hisp-uio/teams/100509/bn/)\n" +"Last-Translator: Viktor Varland , 2024\n" +"Language-Team: Bengali (https://app.transifex.com/hisp-uio/teams/100509/bn/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -37,6 +37,27 @@ msgid "" "again, but be aware that this will close other versions." msgstr "" +msgid "View {{programName}} dashboard" +msgstr "" + +msgid "View dashboard" +msgstr "" + +msgid "View active enrollment" +msgstr "" + +msgid "Re-enroll" +msgstr "" + +msgid "in" +msgstr "" + +msgid "Enrolled" +msgstr "" + +msgid "Previously enrolled" +msgstr "" + msgid "Organisation unit" msgstr "" @@ -46,10 +67,10 @@ msgstr "" msgid "Last updated" msgstr "" -msgid "Enrolled" +msgid "error encountered during field validation" msgstr "" -msgid "Previously enrolled" +msgid "error" msgstr "" msgid "This value is validating" @@ -88,7 +109,7 @@ msgstr "" msgid "Please provide a valid time" msgstr "" -msgid "Please provide a valid percentage" +msgid "Please provide an integer between 0 and 100" msgstr "" msgid "Please provide a valid url" @@ -127,6 +148,21 @@ msgstr "" msgid "Enrollment" msgstr "নিবন্ধন" +msgid "Complete event" +msgstr "" + +msgid "{{ stageName }} - Basic info" +msgstr "" + +msgid "{{ stageName }} - Assignee" +msgstr "" + +msgid "{{ stageName }} - Status" +msgstr "" + +msgid "Please select {{categoryName}}" +msgstr "" + msgid "A future date is not allowed" msgstr "" @@ -142,13 +178,16 @@ msgstr "" msgid "Metadata error. see log for details" msgstr "" -msgid "Assigned user" +msgid "{{ stageName }} - Details" msgstr "" -msgid "Search for user" +msgid "{{ stageName }} - {{ sectionName }}" msgstr "" -msgid "Complete event" +msgid "Assigned user" +msgstr "" + +msgid "Search for user" msgstr "" msgid "Basic info" @@ -233,7 +272,7 @@ msgstr "" msgid "Go back to event without saving relationship" msgstr "" -msgid "Unsaved changes" +msgid "Discard unsaved changes?" msgstr "" msgid "" @@ -241,10 +280,10 @@ msgid "" "relationship" msgstr "" -msgid "Yes, discard" +msgid "Yes, discard changes" msgstr "" -msgid "No, stay here" +msgid "No, cancel" msgstr "" msgid "New event" @@ -265,15 +304,36 @@ msgstr "" msgid "enrollment" msgstr "" -msgid "in" -msgstr "" - msgid "Enroll in a program by selecting a program from the top bar." msgstr "" msgid "An error has occurred. See log for details" msgstr "" +msgid "{{programStageName}} completed" +msgstr "" + +msgid "" +"Would you like to complete the enrollment and all active events as well?" +msgstr "" + +msgid "{{count}} event in {{programStageName}}" +msgid_plural "{{count}} event in {{programStageName}}" +msgstr[0] "" +msgstr[1] "" + +msgid "Yes, complete enrollment and events" +msgstr "" + +msgid "Complete enrollment only" +msgstr "" + +msgid "Would you like to complete the enrollment?" +msgstr "" + +msgid "Complete enrollment" +msgstr "" + msgid "A duplicate exists (but there were some errors, see log for details" msgstr "" @@ -296,9 +356,6 @@ msgstr "" msgid "Registered person" msgstr "" -msgid "Leaving this page will discard the changes you made to this event." -msgstr "" - msgid "validation failed" msgstr "" @@ -314,10 +371,13 @@ msgstr "" msgid "Warnings" msgstr "" -msgid "Warnings found" +msgid "Generate new event" msgstr "" -msgid "Abort" +msgid "Do you want to create another event?" +msgstr "" + +msgid "Yes, create new event" msgstr "" msgid "Back to form" @@ -341,7 +401,9 @@ msgstr "" msgid "Operations running" msgstr "" -msgid "Sort" +msgid "" +"This event has unsaved changes. Leaving this page without saving will lose " +"these changes. Are you sure you want to discard unsaved changes?" msgstr "" msgid "No events to display" @@ -452,6 +514,12 @@ msgstr "" msgid "Select image" msgstr "" +msgid "Type to filter options" +msgstr "" + +msgid "No match found" +msgstr "" + msgid "Search" msgstr "" @@ -476,6 +544,9 @@ msgstr "" msgid "suggestions could not be retrieved" msgstr "" +msgid "No results found" +msgstr "" + msgid "No items to display" msgstr "" @@ -494,6 +565,9 @@ msgstr "" msgid "Reset filter" msgstr "" +msgid "Remove filter" +msgstr "" + msgid "{{fromDate}} to {{toDate}}" msgstr "" @@ -512,6 +586,9 @@ msgstr "" msgid "More filters" msgstr "" +msgid "Stage filters" +msgstr "" + msgid "Rows per page" msgstr "" @@ -536,19 +613,46 @@ msgstr "" msgid "Add comment" msgstr "" -msgid "You dont have access to write comments" +msgid "You don't have access to write comments" msgstr "" msgid "Write comment" msgstr "" +msgid "was blanked out and hidden by your last action" +msgstr "" + +msgid "Notice" +msgstr "" + +msgid "Close the notice" +msgstr "" + msgid "Use new Enrollment dashboard for {{programName}}" msgstr "" msgid "Opt in for {{programName}}" msgstr "" -msgid "No, cancel" +msgid "" +"By clicking opt-in below, you will start using the new enrollment dashboard " +"in the Capture app for this Tracker program. At the moment, there is certain" +" functionality from Tracker Capture that has not yet been added, including " +"relationship and referral functionality. The work on including this Tracker " +"functionality in Capture is ongoing and will be added in upcoming app " +"releases." +msgstr "" + +msgid "" +"The core team appreciates any feedback on this new functionality which is " +"currently being beta tested, please report any issues and feedback in the " +"DHIS2 JIRA project." +msgstr "" + +msgid "" +"Click the button below to opt-in to the new enrollment dashboard " +"functionality in the Capture app (beta) for this Tracker program for all " +"users." msgstr "" msgid "Yes, opt in" @@ -560,23 +664,23 @@ msgstr "" msgid "Opt out for {{programName}}" msgstr "" -msgid "Tracked entity instance with id \"{{teiId}}\" does not exist" +msgid "Enrollment with id \"{{enrollmentId}}\" does not exist" msgstr "" -msgid "" -"There is an error while opening this enrollment. Please enter a valid url." +msgid "Tracked entity instance with id \"{{teiId}}\" does not exist" msgstr "" -msgid "Enrollment with id \"{{enrollmentId}}\" does not exist" +msgid "Program with id \"{{programId}}\" does not exist" msgstr "" -msgid "Enrollment Dashboard" +msgid "" +"An error occurred while fetching enrollments. Please enter a valid url." msgstr "" -msgid "No indicator output for this enrollment yet" +msgid "No feedback for this enrollment yet" msgstr "" -msgid "No feedback for this enrollment yet" +msgid "No indicator output for this enrollment yet" msgstr "" msgid "Quick actions" @@ -606,9 +710,21 @@ msgid "" "{{programName}} has categories. Choose all categories to view dashboard." msgstr "" +msgid "Invalid enrollment id {{enrollmentId}}." +msgstr "" + msgid "Choose an enrollment to view the dashboard." msgstr "" +msgid "There are no active enrollments." +msgstr "" + +msgid "Add new enrollment for {{teiDisplayName}} in this program." +msgstr "" + +msgid "No access to program owner." +msgstr "" + msgid "{{teiDisplayName}} is not enrolled in this program." msgstr "" @@ -644,19 +760,16 @@ msgstr "" msgid "There was an error opening the Page" msgstr "" -msgid "Enrollment{{escape}} New Event" -msgstr "" - msgid "There was an error loading the page" msgstr "" msgid "Choose a registering unit to start reporting" msgstr "" -msgid "There are no feedbacks for this event" +msgid "No feedback for this event yet" msgstr "" -msgid "There are no indicators for this event" +msgid "No indicator output for this event yet" msgstr "" msgid "Program stage is invalid" @@ -671,7 +784,7 @@ msgstr "" msgid "Refer" msgstr "" -msgid "You can’t add any more events in this program" +msgid "You can't add any more {{ programStageName }} events" msgstr "" msgid "Cancel without saving" @@ -683,19 +796,7 @@ msgstr "" msgid "Program Stages could not be loaded" msgstr "" -msgid "stage" -msgstr "" - -msgid "Enrollment{{escape}} View Event" -msgstr "" - -msgid "Enrollment{{escape}} Edit Event" -msgstr "" - -msgid "The enrollment event data could not be found" -msgstr "" - -msgid "There are no feedback for this event" +msgid "Stage" msgstr "" msgid "Registered events" @@ -722,9 +823,6 @@ msgstr "" msgid "Save as new" msgstr "" -msgid "View dashboard" -msgstr "" - msgid "View enrollment" msgstr "" @@ -738,7 +836,10 @@ msgstr "" msgid "New Enrollment in program{{escape}} {{programName}}" msgstr "" -msgid "Save new" +msgid "Save {{trackedEntityTypeName}}" +msgstr "" + +msgid "Save {{trackedEntityName}}" msgstr "" msgid "Save new {{trackedEntityTypeName}} and link" @@ -786,213 +887,243 @@ msgstr "" msgid "Register" msgstr "" -msgid "" -"Fill in at least {{minAttributesRequiredToSearch}} attributes to search" +msgid "Back" msgstr "" -msgid "Search {{name}}" +msgid "events" msgstr "" -msgid "Search by {{name}}" +msgid "event" msgstr "" -msgid "Search by attributes" +msgid "You don't have access to edit this event" msgstr "" -msgid "Fill in these fields to search{{escape}} {{ searchableAttributes }}" +msgid "Edit event" +msgstr "" + +msgid "View changelog" +msgstr "" + +msgid "Event details" msgstr "" msgid "" -"Fill in at least {{minAttributesRequiredToSearch}} of these fields to " -"search{{escape}} {{searchableAttributes}}" +"Leaving this page will discard any selections you made for a new " +"relationship" msgstr "" -msgid "Fill in this field to search{{escape}} {{searchableAttributes}}" +msgid "Show all events" msgstr "" -msgid "Back" +msgid "Event could not be loaded. Are you sure it exists?" msgstr "" -msgid "Search for {{titleText}}" +msgid "Event could not be loaded" msgstr "" -msgid "Search for" -msgstr "অনুসন্ধান" +msgid "Organisation unit could not be loaded" +msgstr "" -msgid "" -"You can also choose a program from the top bar and search in that program" +msgid "Dashboard" msgstr "" -msgid "No results found" +msgid "Edit Event" msgstr "" -msgid "" -"You can change your search terms and search again to find what you are " -"looking for." +msgid "View Event" +msgstr "" + +msgid "Selected program" +msgstr "নির্বাচিত প্রোগ্রাম" + +msgid "Search {{uniqueAttrName}}" msgstr "" -msgid "Register a user" +msgid "Search by attributes" msgstr "" -msgid "Back to search" +msgid "Fill in at least {{count}} attribute to search" +msgid_plural "Fill in at least {{count}} attribute to search" +msgstr[0] "" +msgstr[1] "" + +msgid "Could not retrieve metadata. Please try again later." msgstr "" -msgid "An error has occurred" +msgid "The enrollment event data could not be found" msgstr "" -msgid "" -"There is a problem with this search, please change the search terms or try " -"again later. For more details open the Console tab of the Developer tools" +msgid "Possible duplicates found" msgstr "" -msgid "Too many results" +msgid "An error occurred loading possible duplicates" msgstr "" -msgid "" -"This search returned too many results to show. Try changing search terms or " -"searching by more attributes to narrow down the results." +msgid "You don't have access to delete this relationship" msgstr "" -msgid "Cannot search in all programs" +msgid "You don't have access to create any relationships" msgstr "" -msgid "Choose a type to start searching" +msgid "Add relationship" msgstr "" -msgid "View active enrollment" +msgid "No results found for " msgstr "" -msgid "Re-enroll" +msgid "Registering unit" +msgstr "নিবন্ধন কেন্দ্র" + +msgid "Choose a registering unit" msgstr "" -msgid "all programs" +msgid "Clear selection" +msgstr "" + +msgid "No programs available." msgstr "" -msgid "If none of search results match, you can create new " +msgid "Search for a program" msgstr "" -msgid "Create new" +msgid "Some programs are being filtered by the chosen registering unit" msgstr "" -msgid "" -"Not finding the results you were looking for? Try to search all programs " -"that use type " +msgid "Show all programs" msgstr "" -msgid "Search in all programs" +msgid "Choose a program" msgstr "" -msgid "events" +msgid "Search for {{titleText}}" msgstr "" -msgid "event" +msgid "Search for" +msgstr "অনুসন্ধান" + +msgid "" +"You can also choose a program from the top bar and search in that program" msgstr "" -msgid "You dont have access to edit this event" +msgid "Choose a type to start searching" msgstr "" -msgid "Edit event" +msgid "Search {{name}}" msgstr "" -msgid "Event details" +msgid "Search by {{name}}" +msgstr "" + +msgid "all programs" msgstr "" msgid "" -"Leaving this page will discard any selections you made for a new " -"relationship" +"Not finding the results you were looking for? Try to search all programs " +"that use type " msgstr "" -msgid "No one is assigned to this event" +msgid "Search in all programs" msgstr "" -msgid "Assign" +msgid "If none of search results match, you can create a new " msgstr "" -msgid "Event assigned to {{name}}" +msgid "Create new" msgstr "" -msgid "Feedbacks" +msgid "Fill in these fields to search{{escape}} {{ searchableAttributes }}" msgstr "" -msgid "Show all events" +msgid "" +"Fill in at least {{minAttributesRequiredToSearch}} of these fields to " +"search{{escape}} {{searchableAttributes}}" msgstr "" -msgid "Event could not be loaded. Are you sure it exists?" +msgid "Fill in this field to search{{escape}} {{searchableAttributes}}" msgstr "" -msgid "Event could not be loaded" +msgid "" +"You can change your search terms and search again to find what you are " +"looking for." msgstr "" -msgid "Organisation unit could not be loaded" +msgid "Back to search" msgstr "" -msgid "Possible duplicates found" +msgid "An error has occurred" msgstr "" -msgid "An error occurred loading possible duplicates" +msgid "Too many results" msgstr "" -msgid "You dont have access to delete this relationship" +msgid "Cannot search in all programs" msgstr "" -msgid "You dont have access to create any relationships" +msgid "Missing search criteria" msgstr "" -msgid "Add relationship" +msgid "Results found" msgstr "" -msgid "Selected registering unit" +msgid "Saved lists in this program" msgstr "" -msgid "Start Again" +msgid "Saved lists offer quick access to your most used views in a program." msgstr "" -msgid "Are you sure? All unsaved data will be lost." +msgid "" +"There are no saved lists in this program yet, create one using the button " +"below." msgstr "" -msgid "Accept" +msgid "Create saved list" msgstr "" -msgid "Registering Organisation Unit" +msgid "Create new in another program" msgstr "" -msgid "Select" +msgid "Create new event" msgstr "" -msgid "No programs available." +msgid "Search for a {{trackedEntityName}} in {{programName}}" msgstr "" -msgid "Selected program" -msgstr "নির্বাচিত প্রোগ্রাম" +msgid "Assigned to" +msgstr "" -msgid "Select program" +msgid "You don't have access to edit this assignee" msgstr "" -msgid "Selected" +msgid "Edit" msgstr "" -msgid "Results found" +msgid "No one is assigned to this event" msgstr "" -msgid "Search {{uniqueAttrName}}" +msgid "You don't have access to assign an assignee" msgstr "" -msgid "Fill in at least {{minAttributesRequired}} attributes to search" +msgid "Assign" msgstr "" -msgid "New {{trackedEntityName}} in {{programName}}" +msgid "This program is protected" msgstr "" -msgid "Search for a {{trackedEntityName}} in {{programName}}" +msgid "Reason to check for enrollments" msgstr "" -msgid "Clear selections" +msgid "" +"Describe the reason you are checking for enrollments in this protected " +"program" msgstr "" -msgid "To work with the selected program," +msgid "Check for enrollments" msgstr "" -msgid "open the Tracker Capture app" +msgid "" +"You must provide a reason to check for enrollments in this protected " +"program. All activity will be logged." msgstr "" msgid "Save comment" @@ -1004,10 +1135,10 @@ msgstr "" msgid "We are processing your request." msgstr "" -msgid "Add new" +msgid "Only one enrollment per {{tetName}} is allowed in this program" msgstr "" -msgid "Only one enrollment per {{tetName}} is allowed in this program" +msgid "Add new" msgstr "" msgid "Reactivate" @@ -1036,6 +1167,57 @@ msgstr "" msgid "Mark for follow-up" msgstr "" +msgid "Transfer" +msgstr "" + +msgid "An error occurred while transferring ownership" +msgstr "" + +msgid "Existing dates for auto-generated events will not be updated." +msgstr "" + +msgid "Latitude" +msgstr "" + +msgid "Longitude" +msgstr "" + +msgid "Set coordinates" +msgstr "" + +msgid "Coordinates" +msgstr "" + +msgid "Delete polygon" +msgstr "" + +msgid "Close without saving" +msgstr "" + +msgid "Finish drawing before saving" +msgstr "" + +msgid "Set area" +msgstr "" + +msgid "" +"Transferring enrollment ownership from {{ownerOrgUnit}} to " +"{{newOrgUnit}}{{escape}}" +msgstr "" + +msgid "" +"You will lose access to the enrollment when transferring ownership to " +"{{organisationUnit}}." +msgstr "" + +msgid "Transfer Ownership" +msgstr "" + +msgid "" +"Choose the organisation unit to which enrollment ownership should be " +"transferred." +msgstr "" + msgid "Enrollment date" msgstr "নিবন্ধনের তারিখ" @@ -1060,6 +1242,12 @@ msgstr "" msgid "Cancelled" msgstr "" +msgid "Add coordinates" +msgstr "" + +msgid "Add area" +msgstr "" + msgid "Comments about this enrollment" msgstr "" @@ -1102,25 +1290,31 @@ msgstr "" msgid "Yes, delete event" msgstr "" +msgid "Go to “Schedule” tab to reschedule this event" +msgstr "" + +msgid "Scheduled date cannot be changed for {{ eventStatus }} events" +msgstr "" + msgid "Event completed" msgstr "" msgid "Back to all stages and events" msgstr "" -msgid "You don't have access to edit this event" +msgid "Schedule date info" msgstr "" -msgid "Schedule date info" +msgid "Scheduled automatically for {{suggestedScheduleDate}}" msgstr "" msgid "" -"This date is the suggested scheduled date based on the intervals defined, \n" -" it can be adjusted if needed." +"The scheduled date matches the suggested date, but can be changed if needed." msgstr "" -msgid "This date is {{count}} days {{position}} the suggested date." -msgid_plural "This date is {{count}} days {{position}} the suggested date." +msgid "The scheduled date is {{count}} days {{position}} the suggested date." +msgid_plural "" +"The scheduled date is {{count}} days {{position}} the suggested date." msgstr[0] "" msgstr[1] "" @@ -1179,25 +1373,69 @@ msgstr "" msgid "Try again or contact your system administrator for support" msgstr "" -msgid "tracked entity instance" +msgid "Fix errors in the form to continue." msgstr "" -msgid "Fix errors in the form to continue." +msgid "You do not have access to delete this {{trackedEntityTypeName}}" +msgstr "" + +msgid "Delete {{trackedEntityTypeName}}" +msgstr "" + +msgid "" +"Are you sure you want to delete this {{trackedEntityTypeName}}? This will " +"permanently remove the {{trackedEntityTypeName}} and all its associated " +"enrollments and events in all programs." +msgstr "" + +msgid "There was a problem deleting the {{trackedEntityTypeName}}" +msgstr "" + +msgid "Yes, delete {{trackedEntityTypeName}}" msgstr "" msgid "Profile widget could not be loaded. Please try again later" msgstr "" -msgid "{{TETName}} profile" +msgid "{{trackedEntityTypeName}} profile" msgstr "" -msgid "Edit" +msgid "tracked entity instance" +msgstr "" + +msgid "Link to an existing {{linkableStageLabel}}" +msgstr "" + +msgid "Choose a {{linkableStageLabel}}" +msgstr "" + +msgid "Ambiguous relationships, contact system administrator" +msgstr "" + +msgid "" +"Enter {{linkableStageLabel}} details in the next step after completing this " +"{{currentStageLabel}}." +msgstr "" + +msgid "Enter details now" +msgstr "" + +msgid "Link to an existing" +msgstr "" + +msgid "Scheduled date" +msgstr "পরবর্তী ভিজিটের তারিখ" + +msgid "Report date" +msgstr "পরিদর্শনের তারিখ" + +msgid "Please select a valid event" msgstr "" msgid "New {{ eventName }} event" msgstr "" -msgid "This event is not yet preserved and cannot be edited" +msgid "To open this event, please wait until saving is complete" msgstr "" msgid "Show {{ rest }} more" @@ -1215,9 +1453,6 @@ msgstr "" msgid "Events could not be retrieved. Please try again later." msgstr "" -msgid "Registering unit" -msgstr "নিবন্ধন কেন্দ্র" - msgid "{{ totalEvents }} events" msgstr "" @@ -1230,31 +1465,88 @@ msgstr "" msgid "Stages and Events" msgstr "" -msgid "Working list could not be loaded" +msgid "Changelog" msgstr "" -msgid "Download as JSON" +msgid "No changes to display" msgstr "" -msgid "Download as XML" +msgid "Created" msgstr "" -msgid "Download as CSV" +msgid "Deleted" msgstr "" -msgid "Download with current filters" +msgid "Date" +msgstr "তারিখ" + +msgid "User" msgstr "" -msgid "Download data..." +msgid "Data item" msgstr "" -msgid "an error occurred loading working lists" +msgid "Change" msgstr "" -msgid "Enrollment status" +msgid "New {{trackedEntityTypeName}} relationship" msgstr "" -msgid "Assigned to" +msgid "Missing implementation step" +msgstr "" + +msgid "Go back without saving relationship" +msgstr "" + +msgid "New Relationship" +msgstr "" + +msgid "Link to an existing {{tetName}}" +msgstr "" + +msgid "An error occurred while adding the relationship" +msgstr "" + +msgid "" +"Something went wrong while loading relationships. Please try again later." +msgstr "" + +msgid "{{trackedEntityTypeName}} relationships" +msgstr "" + +msgid "Delete relationship" +msgstr "" + +msgid "" +"Deleting the relationship is permanent and cannot be undone. Are you sure " +"you want to delete this relationship?" +msgstr "" + +msgid "Yes, delete relationship" +msgstr "" + +msgid "An error occurred while deleting the relationship." +msgstr "" + +msgid "To open this relationship, please wait until saving is complete" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "Created date" +msgstr "" + +msgid "Program stage name" +msgstr "" + +msgid "Working list could not be loaded" +msgstr "" + +msgid "Download data..." +msgstr "" + +msgid "an error occurred loading working lists" msgstr "" msgid "Registration Date" @@ -1263,9 +1555,30 @@ msgstr "" msgid "Inactive" msgstr "ফলোআপ সম্পন্ন?" +msgid "Enrollment status" +msgstr "" + +msgid "Follow up" +msgstr "" + +msgid "Choose a program stage to filter by {{label}}" +msgstr "" + +msgid "Active enrollments" +msgstr "" + +msgid "Completed enrollments" +msgstr "" + +msgid "Cancelled enrollments" +msgstr "" + msgid "Working list could not be updated" msgstr "" +msgid "an error occurred loading the working lists" +msgstr "" + msgid "an error occurred loading Tracked entity instance lists" msgstr "" @@ -1302,6 +1615,15 @@ msgstr "" msgid "Show All" msgstr "" +msgid "Download as JSON" +msgstr "" + +msgid "Download as CSV" +msgstr "" + +msgid "Download with current filters" +msgstr "" + msgid "An error has occured. See log for details" msgstr "" @@ -1320,6 +1642,9 @@ msgstr "" msgid "Skipped" msgstr "" +msgid "Visited" +msgstr "" + msgid "{{trackedEntityName}} in program{{escape}} {{programName}}" msgstr "" @@ -1365,15 +1690,12 @@ msgstr "" msgid "Error editing the event, the changes made were not saved" msgstr "" -msgid "Set coordinate" +msgid "Error updating the Assignee" msgstr "" -msgid "Page {{currentPage}}" +msgid "Set coordinate" msgstr "" -msgid "Date" -msgstr "তারিখ" - msgid "Time" msgstr "" @@ -1389,16 +1711,10 @@ msgstr "" msgid "To time" msgstr "" -msgid "error encountered during field validation" -msgstr "" - -msgid "error" -msgstr "" - -msgid "Delete polygon" +msgid "Page {{currentPage}}" msgstr "" -msgid "Set area" +msgid "Area on map saved" msgstr "" msgid "Compatibility mode" diff --git a/i18n/cs.po b/i18n/cs.po index ad44a9980e..1c5788bfe7 100644 --- a/i18n/cs.po +++ b/i18n/cs.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2024-03-07T14:47:33.932Z\n" +"POT-Creation-Date: 2024-03-16T14:40:27.542Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" "Last-Translator: Jiří Podhorecký, 2024\n" "Language-Team: Czech (https://app.transifex.com/hisp-uio/teams/100509/cs/)\n" @@ -343,7 +343,7 @@ msgid "Would you like to complete the enrollment?" msgstr "" msgid "Complete enrollment" -msgstr "" +msgstr "Dokončit zápis" msgid "A duplicate exists (but there were some errors, see log for details" msgstr "" @@ -707,6 +707,12 @@ msgid "" msgstr "" "Při načítání registrací došlo k chybě. Zadejte prosím platnou adresu URL." +msgid "No feedback for this enrollment yet" +msgstr "K tomuto zápisu zatím není žádná zpětná vazba" + +msgid "No indicator output for this enrollment yet" +msgstr "Pro tento zápis zatím neexistuje žádný indikátorový výstup" + msgid "Quick actions" msgstr "Rychlé akce" @@ -796,6 +802,12 @@ msgstr "Při načítání stránky došlo k chybě" msgid "Choose a registering unit to start reporting" msgstr "Vyberte registraci jednotky a začněte hlásit" +msgid "No feedback for this event yet" +msgstr "" + +msgid "No indicator output for this event yet" +msgstr "" + msgid "Program stage is invalid" msgstr "Fáze programu je neplatná" @@ -960,12 +972,6 @@ msgstr "" msgid "View Event" msgstr "" -msgid "No feedback for this enrollment yet" -msgstr "K tomuto zápisu zatím není žádná zpětná vazba" - -msgid "No indicator output for this enrollment yet" -msgstr "Pro tento zápis zatím neexistuje žádný indikátorový výstup" - msgid "Selected program" msgstr "Vybraný program" @@ -1128,7 +1134,7 @@ msgid "Create new in another program" msgstr "" msgid "Create new event" -msgstr "" +msgstr "Vytvořit novou událost" msgid "Search for a {{trackedEntityName}} in {{programName}}" msgstr "Vyhledat {{trackedEntityName}} v {{programName}}" @@ -1380,10 +1386,13 @@ msgstr "před" msgid "There are {{count}} scheduled event in {{orgUnitName}} on this day." msgid_plural "" "There are {{count}} scheduled event in {{orgUnitName}} on this day." -msgstr[0] "" +msgstr[0] "Na tento den je v {{orgUnitName}} naplánovaná {{count}} událost." msgstr[1] "" +"Na tento den jsou v {{orgUnitName}} naplánované {{count}} události." msgstr[2] "" +"Na tento den je v {{orgUnitName}} naplánovaných {{count}} událostí." msgstr[3] "" +"Na tento den je v {{orgUnitName}} naplánovaných {{count}} událostí." msgid "" "Scheduling an event in {{stageName}} for {{programName}} in {{orgUnitName}}" @@ -1462,6 +1471,35 @@ msgstr "" msgid "tracked entity instance" msgstr "sledovaná instance entity" +msgid "Link to an existing {{linkableStageLabel}}" +msgstr "" + +msgid "Choose a {{linkableStageLabel}}" +msgstr "" + +msgid "Ambiguous relationships, contact system administrator" +msgstr "" + +msgid "" +"Enter {{linkableStageLabel}} details in the next step after completing this " +"{{currentStageLabel}}." +msgstr "" + +msgid "Enter details now" +msgstr "" + +msgid "Link to an existing" +msgstr "" + +msgid "Scheduled date" +msgstr "Plánované datum" + +msgid "Report date" +msgstr "Datum zprávy" + +msgid "Please select a valid event" +msgstr "" + msgid "New {{ eventName }} event" msgstr "Nová událost {{ eventName }}" @@ -1502,10 +1540,10 @@ msgid "No changes to display" msgstr "" msgid "Created" -msgstr "" +msgstr "Vytvořeno" msgid "Deleted" -msgstr "" +msgstr "Smazáno" msgid "Date" msgstr "datum" @@ -1514,7 +1552,7 @@ msgid "User" msgstr "Uživatel" msgid "Data item" -msgstr "" +msgstr "Datová položka" msgid "Change" msgstr "" @@ -1545,7 +1583,7 @@ msgid "{{trackedEntityTypeName}} relationships" msgstr "{{trackedEntityTypeName}} vztahy" msgid "Delete relationship" -msgstr "" +msgstr "Smazat vztah" msgid "" "Deleting the relationship is permanent and cannot be undone. Are you sure " @@ -1573,15 +1611,6 @@ msgstr "Název fáze programu" msgid "Working list could not be loaded" msgstr "Pracovní seznam nelze načíst" -msgid "Download as JSON" -msgstr "Stáhnout jako JSON" - -msgid "Download as CSV" -msgstr "Stáhnout jako CSV" - -msgid "Download with current filters" -msgstr "Stáhnout s aktuálními filtry" - msgid "Download data..." msgstr "Stáhnout data ..." @@ -1598,7 +1627,7 @@ msgid "Enrollment status" msgstr "Stav zápisu" msgid "Follow up" -msgstr "" +msgstr "Následovat" msgid "Choose a program stage to filter by {{label}}" msgstr "Vyberte fázi programu, kterou chcete filtrovat podle {{label}}" @@ -1654,6 +1683,15 @@ msgstr "Ukázat méně" msgid "Show All" msgstr "Ukázat vše" +msgid "Download as JSON" +msgstr "Stáhnout jako JSON" + +msgid "Download as CSV" +msgstr "Stáhnout jako CSV" + +msgid "Download with current filters" +msgstr "Stáhnout s aktuálními filtry" + msgid "An error has occured. See log for details" msgstr "Vyskytla se chyba. Podrobnosti najdete v protokolu" diff --git a/i18n/es.po b/i18n/es.po index d98c0dfbf8..47f05c027e 100644 --- a/i18n/es.po +++ b/i18n/es.po @@ -10,16 +10,16 @@ # Alison Andrade , 2024 # Philip Larsen Donnelly, 2024 # Gabriela Rodriguez , 2024 -# Viktor Varland , 2024 # Janeth Cruz, 2024 # Enzo Nicolas Rossi , 2024 +# Viktor Varland , 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" "POT-Creation-Date: 2024-03-16T14:40:27.542Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" -"Last-Translator: Enzo Nicolas Rossi , 2024\n" +"Last-Translator: Viktor Varland , 2024\n" "Language-Team: Spanish (https://app.transifex.com/hisp-uio/teams/100509/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1521,6 +1521,35 @@ msgstr " Perfil de {{trackedEntityTypeName}}" msgid "tracked entity instance" msgstr "instancia de entidad rastreada" +msgid "Link to an existing {{linkableStageLabel}}" +msgstr "" + +msgid "Choose a {{linkableStageLabel}}" +msgstr "" + +msgid "Ambiguous relationships, contact system administrator" +msgstr "" + +msgid "" +"Enter {{linkableStageLabel}} details in the next step after completing this " +"{{currentStageLabel}}." +msgstr "" + +msgid "Enter details now" +msgstr "" + +msgid "Link to an existing" +msgstr "" + +msgid "Scheduled date" +msgstr "Fecha planificada" + +msgid "Report date" +msgstr "Fecha de reporte" + +msgid "Please select a valid event" +msgstr "" + msgid "New {{ eventName }} event" msgstr "Nuevo evento {{ eventName }}" diff --git a/i18n/fr.po b/i18n/fr.po index e9da3edd31..bf36f4ff9a 100644 --- a/i18n/fr.po +++ b/i18n/fr.po @@ -1,19 +1,19 @@ # # Translators: -# Edem Kossi , 2022 # Karoline Tufte Lien , 2022 # tx_e2f_fr r25 , 2022 # Bram Piot , 2022 -# Yao Selom SAKA (HISP WCA) , 2023 -# Gabriela Rodriguez , 2023 -# Yayra Gomado , 2024 # Philip Larsen Donnelly, 2024 +# Edem Kossi , 2024 +# Gabriela Rodriguez , 2024 +# Yao Selom SAKA (HISP WCA) , 2024 +# Yayra Gomado , 2024 # Viktor Varland , 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2024-03-07T14:47:33.932Z\n" +"POT-Creation-Date: 2024-03-16T14:40:27.542Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" "Last-Translator: Viktor Varland , 2024\n" "Language-Team: French (https://app.transifex.com/hisp-uio/teams/100509/fr/)\n" @@ -363,7 +363,7 @@ msgid "Would you like to complete the enrollment?" msgstr "" msgid "Complete enrollment" -msgstr "" +msgstr "Terminer l'enrôlement" msgid "A duplicate exists (but there were some errors, see log for details" msgstr "" @@ -718,6 +718,12 @@ msgid "" "An error occurred while fetching enrollments. Please enter a valid url." msgstr "" +msgid "No feedback for this enrollment yet" +msgstr "Aucun commentaire pour cet enrôlement pour le moment" + +msgid "No indicator output for this enrollment yet" +msgstr "Aucune sortie d'indicateur pour cet enrôlement pour le moment" + msgid "Quick actions" msgstr "Actions rapides" @@ -809,6 +815,12 @@ msgstr "Une erreur s'est produite lors du chargement de la page" msgid "Choose a registering unit to start reporting" msgstr "Sélectionnez une unité d'enregistrement pour commencer un rapport" +msgid "No feedback for this event yet" +msgstr "" + +msgid "No indicator output for this event yet" +msgstr "" + msgid "Program stage is invalid" msgstr "Le stade de programme n'est pas valide" @@ -975,12 +987,6 @@ msgstr "" msgid "View Event" msgstr "" -msgid "No feedback for this enrollment yet" -msgstr "Aucun commentaire pour cet enrôlement pour le moment" - -msgid "No indicator output for this enrollment yet" -msgstr "Aucune sortie d'indicateur pour cet enrôlement pour le moment" - msgid "Selected program" msgstr "Programme choisi" @@ -1146,7 +1152,7 @@ msgid "Create new in another program" msgstr "" msgid "Create new event" -msgstr "" +msgstr "Créer un nouvel évènement" msgid "Search for a {{trackedEntityName}} in {{programName}}" msgstr "Rechercher un {{trackedEntityName}} dans {{programName}}" @@ -1386,9 +1392,9 @@ msgstr "" msgid "The scheduled date is {{count}} days {{position}} the suggested date." msgid_plural "" "The scheduled date is {{count}} days {{position}} the suggested date." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "La date prévue est {{count}} jour {{position}} la date suggérée." +msgstr[1] "xx" +msgstr[2] "La date prévue est {{count}} jour {{position}} la date suggérée." msgid "after" msgstr "après" @@ -1484,6 +1490,35 @@ msgstr "" msgid "tracked entity instance" msgstr "instance d'entité suivie" +msgid "Link to an existing {{linkableStageLabel}}" +msgstr "" + +msgid "Choose a {{linkableStageLabel}}" +msgstr "" + +msgid "Ambiguous relationships, contact system administrator" +msgstr "" + +msgid "" +"Enter {{linkableStageLabel}} details in the next step after completing this " +"{{currentStageLabel}}." +msgstr "" + +msgid "Enter details now" +msgstr "" + +msgid "Link to an existing" +msgstr "" + +msgid "Scheduled date" +msgstr "Date programmée" + +msgid "Report date" +msgstr "Date du rapport" + +msgid "Please select a valid event" +msgstr "" + msgid "New {{ eventName }} event" msgstr "Nouvel événement {{ eventName }}" @@ -1525,10 +1560,10 @@ msgid "No changes to display" msgstr "" msgid "Created" -msgstr "" +msgstr "Créé" msgid "Deleted" -msgstr "" +msgstr "Supprimé" msgid "Date" msgstr "Date" @@ -1537,7 +1572,7 @@ msgid "User" msgstr "Utilisateur" msgid "Data item" -msgstr "" +msgstr "Item de données" msgid "Change" msgstr "" @@ -1568,7 +1603,7 @@ msgid "{{trackedEntityTypeName}} relationships" msgstr "" msgid "Delete relationship" -msgstr "" +msgstr "Supprimer la relation" msgid "" "Deleting the relationship is permanent and cannot be undone. Are you sure " @@ -1596,15 +1631,6 @@ msgstr "Nom de l'étape du programme" msgid "Working list could not be loaded" msgstr "La liste des tâches n'a pas pu être chargée" -msgid "Download as JSON" -msgstr "Télécharger en JSON" - -msgid "Download as CSV" -msgstr "Télécharger en CSV" - -msgid "Download with current filters" -msgstr "Télécharger avec les filtres actuels" - msgid "Download data..." msgstr "Télécharger des données..." @@ -1621,7 +1647,7 @@ msgid "Enrollment status" msgstr "Statut de l'enrôlement" msgid "Follow up" -msgstr "" +msgstr "Suivi" msgid "Choose a program stage to filter by {{label}}" msgstr "Choisir un stade de programme pour filtrer par {{label}}" @@ -1679,6 +1705,15 @@ msgstr "Afficher moins" msgid "Show All" msgstr "Afficher tout" +msgid "Download as JSON" +msgstr "Télécharger en JSON" + +msgid "Download as CSV" +msgstr "Télécharger en CSV" + +msgid "Download with current filters" +msgstr "Télécharger avec les filtres actuels" + msgid "An error has occured. See log for details" msgstr "Une erreur s'est produite. Voir le journal pour plus de détails" diff --git a/i18n/lo.po b/i18n/lo.po index 975c2a7313..f975ddc69c 100644 --- a/i18n/lo.po +++ b/i18n/lo.po @@ -1,17 +1,17 @@ # # Translators: -# Philip Larsen Donnelly, 2023 # Thuy Nguyen , 2023 # Saysamone Sibounma, 2023 # Somkhit Bouavong , 2024 # Viktor Varland , 2024 +# Philip Larsen Donnelly, 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2024-03-07T14:47:33.932Z\n" +"POT-Creation-Date: 2024-03-16T14:40:27.542Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" -"Last-Translator: Viktor Varland , 2024\n" +"Last-Translator: Philip Larsen Donnelly, 2024\n" "Language-Team: Lao (https://app.transifex.com/hisp-uio/teams/100509/lo/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -679,6 +679,12 @@ msgid "" "An error occurred while fetching enrollments. Please enter a valid url." msgstr "" +msgid "No feedback for this enrollment yet" +msgstr "" + +msgid "No indicator output for this enrollment yet" +msgstr "" + msgid "Quick actions" msgstr "" @@ -762,6 +768,12 @@ msgstr "" msgid "Choose a registering unit to start reporting" msgstr "" +msgid "No feedback for this event yet" +msgstr "" + +msgid "No indicator output for this event yet" +msgstr "" + msgid "Program stage is invalid" msgstr "" @@ -924,12 +936,6 @@ msgstr "" msgid "View Event" msgstr "" -msgid "No feedback for this enrollment yet" -msgstr "" - -msgid "No indicator output for this enrollment yet" -msgstr "" - msgid "Selected program" msgstr "ເລືອກສາຍງານ" @@ -1396,6 +1402,35 @@ msgstr "" msgid "tracked entity instance" msgstr "" +msgid "Link to an existing {{linkableStageLabel}}" +msgstr "" + +msgid "Choose a {{linkableStageLabel}}" +msgstr "" + +msgid "Ambiguous relationships, contact system administrator" +msgstr "" + +msgid "" +"Enter {{linkableStageLabel}} details in the next step after completing this " +"{{currentStageLabel}}." +msgstr "" + +msgid "Enter details now" +msgstr "" + +msgid "Link to an existing" +msgstr "" + +msgid "Scheduled date" +msgstr "ກຳນົົດວັນທີ" + +msgid "Report date" +msgstr "ວັນທີີລາຍງານ" + +msgid "Please select a valid event" +msgstr "" + msgid "New {{ eventName }} event" msgstr "" @@ -1507,15 +1542,6 @@ msgstr "Program stage name" msgid "Working list could not be loaded" msgstr "" -msgid "Download as JSON" -msgstr "Download as JSON" - -msgid "Download as CSV" -msgstr "ດາວໂຫຼດເປັນ CSV" - -msgid "Download with current filters" -msgstr "" - msgid "Download data..." msgstr "" @@ -1588,6 +1614,15 @@ msgstr "" msgid "Show All" msgstr "" +msgid "Download as JSON" +msgstr "Download as JSON" + +msgid "Download as CSV" +msgstr "ດາວໂຫຼດເປັນ CSV" + +msgid "Download with current filters" +msgstr "" + msgid "An error has occured. See log for details" msgstr "" diff --git a/i18n/nb.po b/i18n/nb.po index fe81e36631..c10aed3885 100644 --- a/i18n/nb.po +++ b/i18n/nb.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2024-03-07T14:47:33.932Z\n" +"POT-Creation-Date: 2024-03-16T14:40:27.542Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" "Last-Translator: Karoline Tufte Lien , 2024\n" "Language-Team: Norwegian Bokmål (https://app.transifex.com/hisp-uio/teams/100509/nb/)\n" @@ -709,6 +709,12 @@ msgstr "" "Det oppsto en feil under henting av registreringer. Vennligst skriv inn en " "gyldig url." +msgid "No feedback for this enrollment yet" +msgstr "Ingen tilbakemeldinger for denne registreringen enda" + +msgid "No indicator output for this enrollment yet" +msgstr "Ingen indikatorresultat for denne registreringen enda" + msgid "Quick actions" msgstr "Snarveier" @@ -798,6 +804,12 @@ msgstr "Det oppsto en feil under lasting av siden" msgid "Choose a registering unit to start reporting" msgstr "Velg en registreringsenhet for å starte rapportering" +msgid "No feedback for this event yet" +msgstr "" + +msgid "No indicator output for this event yet" +msgstr "" + msgid "Program stage is invalid" msgstr "Programfase er ugyldig" @@ -963,12 +975,6 @@ msgstr "Endre hendelse" msgid "View Event" msgstr "Se hendelse" -msgid "No feedback for this enrollment yet" -msgstr "Ingen tilbakemeldinger for denne registreringen enda" - -msgid "No indicator output for this enrollment yet" -msgstr "Ingen indikatorresultat for denne registreringen enda" - msgid "Selected program" msgstr "Valgt program" @@ -1126,7 +1132,7 @@ msgid "Create new in another program" msgstr "" msgid "Create new event" -msgstr "" +msgstr "Opprett ny hendelse" msgid "Search for a {{trackedEntityName}} in {{programName}}" msgstr "Søk etter {{trackedEntityName}} i {{programName}}" @@ -1368,7 +1374,9 @@ msgid "The scheduled date is {{count}} days {{position}} the suggested date." msgid_plural "" "The scheduled date is {{count}} days {{position}} the suggested date." msgstr[0] "" +"Den planlagte datoen er {{count}} dag {{posisjon}} den foreslåtte datoen." msgstr[1] "" +"Den planlagte datoen er {{count}} dager {{posisjon}} den foreslåtte datoen." msgid "after" msgstr "etter" @@ -1460,6 +1468,35 @@ msgstr "" msgid "tracked entity instance" msgstr "Sporet enhetforekomst" +msgid "Link to an existing {{linkableStageLabel}}" +msgstr "" + +msgid "Choose a {{linkableStageLabel}}" +msgstr "" + +msgid "Ambiguous relationships, contact system administrator" +msgstr "" + +msgid "" +"Enter {{linkableStageLabel}} details in the next step after completing this " +"{{currentStageLabel}}." +msgstr "" + +msgid "Enter details now" +msgstr "" + +msgid "Link to an existing" +msgstr "" + +msgid "Scheduled date" +msgstr "Planlagt dato" + +msgid "Report date" +msgstr "Rapporteringsdato" + +msgid "Please select a valid event" +msgstr "" + msgid "New {{ eventName }} event" msgstr "Ny {{ eventName }} hendelse" @@ -1503,7 +1540,7 @@ msgid "Created" msgstr "Opprettet" msgid "Deleted" -msgstr "" +msgstr "Slettet" msgid "Date" msgstr "Dato" @@ -1571,15 +1608,6 @@ msgstr "Programfase navn" msgid "Working list could not be loaded" msgstr "Arbeidslisten kunne ikke lastes inn" -msgid "Download as JSON" -msgstr "Last ned i JSON format" - -msgid "Download as CSV" -msgstr "Last ned i CSV format" - -msgid "Download with current filters" -msgstr "Last ned med gjeldende filtre" - msgid "Download data..." msgstr "Last ned data..." @@ -1652,6 +1680,15 @@ msgstr "Vis mindre" msgid "Show All" msgstr "Vis alle" +msgid "Download as JSON" +msgstr "Last ned i JSON format" + +msgid "Download as CSV" +msgstr "Last ned i CSV format" + +msgid "Download with current filters" +msgstr "Last ned med gjeldende filtre" + msgid "An error has occured. See log for details" msgstr "Det har oppstått en feil. Se logg for detaljer" diff --git a/i18n/nl.po b/i18n/nl.po index d946b79d5d..20150c29d4 100644 --- a/i18n/nl.po +++ b/i18n/nl.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2024-03-07T14:47:33.932Z\n" +"POT-Creation-Date: 2024-03-16T14:40:27.542Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" "Last-Translator: Charel van den Elsen, 2024\n" "Language-Team: Dutch (https://app.transifex.com/hisp-uio/teams/100509/nl/)\n" @@ -722,6 +722,12 @@ msgstr "" "Er is een fout opgetreden bij het ophalen van inschrijvingen. Voer een " "geldige URL in." +msgid "No feedback for this enrollment yet" +msgstr "Nog geen feedback voor deze inschrijving" + +msgid "No indicator output for this enrollment yet" +msgstr "Nog geen indicatoroutput voor deze inschrijving" + msgid "Quick actions" msgstr "Snelle acties" @@ -814,6 +820,12 @@ msgstr "Er is een fout opgetreden bij het laden van de pagina" msgid "Choose a registering unit to start reporting" msgstr "Kies een registratie-eenheid om rapportage te starten" +msgid "No feedback for this event yet" +msgstr "" + +msgid "No indicator output for this event yet" +msgstr "" + msgid "Program stage is invalid" msgstr "Programmafase is ongeldig" @@ -981,12 +993,6 @@ msgstr "" msgid "View Event" msgstr "" -msgid "No feedback for this enrollment yet" -msgstr "Nog geen feedback voor deze inschrijving" - -msgid "No indicator output for this enrollment yet" -msgstr "Nog geen indicatoroutput voor deze inschrijving" - msgid "Selected program" msgstr "Geselecteerd programma" @@ -1150,7 +1156,7 @@ msgid "Create new in another program" msgstr "" msgid "Create new event" -msgstr "" +msgstr "Nieuw evenement maken" msgid "Search for a {{trackedEntityName}} in {{programName}}" msgstr "Zoek naar een {{trackedEntityName}} in {{programName}}" @@ -1394,7 +1400,9 @@ msgid "The scheduled date is {{count}} days {{position}} the suggested date." msgid_plural "" "The scheduled date is {{count}} days {{position}} the suggested date." msgstr[0] "" +"De geplande datum is {{count}} dag {{position}} de voorgestelde datum." msgstr[1] "" +"De geplande datum is {{getelde}} dagen {{positie}} de voorgestelde datum." msgid "after" msgstr "na" @@ -1490,6 +1498,35 @@ msgstr "" msgid "tracked entity instance" msgstr "gevolgd entiteitsexemplaar" +msgid "Link to an existing {{linkableStageLabel}}" +msgstr "" + +msgid "Choose a {{linkableStageLabel}}" +msgstr "" + +msgid "Ambiguous relationships, contact system administrator" +msgstr "" + +msgid "" +"Enter {{linkableStageLabel}} details in the next step after completing this " +"{{currentStageLabel}}." +msgstr "" + +msgid "Enter details now" +msgstr "" + +msgid "Link to an existing" +msgstr "" + +msgid "Scheduled date" +msgstr "Geplande datum" + +msgid "Report date" +msgstr "Rapporteer datum" + +msgid "Please select a valid event" +msgstr "" + msgid "New {{ eventName }} event" msgstr "Nieuwe {{ eventName }} evenement" @@ -1602,15 +1639,6 @@ msgstr "" msgid "Working list could not be loaded" msgstr "Werklijst kon niet worden geladen" -msgid "Download as JSON" -msgstr "Downloaden als JSON" - -msgid "Download as CSV" -msgstr "Downloaden als CSV" - -msgid "Download with current filters" -msgstr "Downloaden met huidige filters" - msgid "Download data..." msgstr "Gegevens downloaden..." @@ -1685,6 +1713,15 @@ msgstr "Laat minder zien" msgid "Show All" msgstr "Toon alles" +msgid "Download as JSON" +msgstr "Downloaden als JSON" + +msgid "Download as CSV" +msgstr "Downloaden als CSV" + +msgid "Download with current filters" +msgstr "Downloaden met huidige filters" + msgid "An error has occured. See log for details" msgstr "Er is een fout opgetreden. Zie logboek voor details" diff --git a/i18n/pt.po b/i18n/pt.po index 80e1bfa608..369770bf67 100644 --- a/i18n/pt.po +++ b/i18n/pt.po @@ -3,17 +3,17 @@ # David Júnior , 2021 # Fernando Jorge Bade, 2023 # Philip Larsen Donnelly, 2024 -# Ge Joao , 2024 # Gabriela Rodriguez , 2024 -# Viktor Varland , 2024 # Sheila André , 2024 +# Ge Joao , 2024 +# Viktor Varland , 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2024-03-07T14:47:33.932Z\n" +"POT-Creation-Date: 2024-03-16T14:40:27.542Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" -"Last-Translator: Sheila André , 2024\n" +"Last-Translator: Viktor Varland , 2024\n" "Language-Team: Portuguese (https://app.transifex.com/hisp-uio/teams/100509/pt/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -718,6 +718,12 @@ msgid "" msgstr "" "Ocorreu um erro ao buscar as inscrições. Por favor, insira um URL válido." +msgid "No feedback for this enrollment yet" +msgstr "Nenhum feedback para esta inscrição ainda" + +msgid "No indicator output for this enrollment yet" +msgstr "Ainda não há saída de indicador para esta inscrição" + msgid "Quick actions" msgstr "Ações rápidas" @@ -808,6 +814,12 @@ msgstr "Ocorreu um erro ao carregar a página" msgid "Choose a registering unit to start reporting" msgstr "Escolha uma unidade de registro para começar a relatar" +msgid "No feedback for this event yet" +msgstr "" + +msgid "No indicator output for this event yet" +msgstr "" + msgid "Program stage is invalid" msgstr "O estagio do programa é inválida" @@ -974,12 +986,6 @@ msgstr "" msgid "View Event" msgstr "" -msgid "No feedback for this enrollment yet" -msgstr "Nenhum feedback para esta inscrição ainda" - -msgid "No indicator output for this enrollment yet" -msgstr "Ainda não há saída de indicador para esta inscrição" - msgid "Selected program" msgstr "Programa selecionado" @@ -1144,7 +1150,7 @@ msgid "Create new in another program" msgstr "" msgid "Create new event" -msgstr "" +msgstr "Criar um novo evento" msgid "Search for a {{trackedEntityName}} in {{programName}}" msgstr "Procure por um {{trackedEntityName}} em {{programName}}" @@ -1387,9 +1393,9 @@ msgstr "" msgid "The scheduled date is {{count}} days {{position}} the suggested date." msgid_plural "" "The scheduled date is {{count}} days {{position}} the suggested date." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "A data agendada é {{count}} dia {{position}} da data sugerida." +msgstr[1] "A data agendada é de {{count}} dias {{position}} da data sugerida." +msgstr[2] "A data agendada é de {{count}} dias {{position}} da data sugerida." msgid "after" msgstr "Depois " @@ -1485,6 +1491,35 @@ msgstr "" msgid "tracked entity instance" msgstr "instância de entidade rastreada" +msgid "Link to an existing {{linkableStageLabel}}" +msgstr "" + +msgid "Choose a {{linkableStageLabel}}" +msgstr "" + +msgid "Ambiguous relationships, contact system administrator" +msgstr "" + +msgid "" +"Enter {{linkableStageLabel}} details in the next step after completing this " +"{{currentStageLabel}}." +msgstr "" + +msgid "Enter details now" +msgstr "" + +msgid "Link to an existing" +msgstr "" + +msgid "Scheduled date" +msgstr "Data agendada" + +msgid "Report date" +msgstr "Data do relatório" + +msgid "Please select a valid event" +msgstr "" + msgid "New {{ eventName }} event" msgstr "Novo evento de {{ eventName }}" @@ -1531,7 +1566,7 @@ msgid "Created" msgstr "Criado" msgid "Deleted" -msgstr "" +msgstr "Apagado" msgid "Date" msgstr "Encontro" @@ -1599,15 +1634,6 @@ msgstr "Nome do estágio do programa" msgid "Working list could not be loaded" msgstr "A lista de trabalho não pôde ser carregada" -msgid "Download as JSON" -msgstr "Baixar como JSON" - -msgid "Download as CSV" -msgstr "Baixar como CSV" - -msgid "Download with current filters" -msgstr "Baixar com filtros atuais" - msgid "Download data..." msgstr "Baixar dados ..." @@ -1681,6 +1707,15 @@ msgstr "Mostre menos" msgid "Show All" msgstr "Mostre tudo" +msgid "Download as JSON" +msgstr "Baixar como JSON" + +msgid "Download as CSV" +msgstr "Baixar como CSV" + +msgid "Download with current filters" +msgstr "Baixar com filtros atuais" + msgid "An error has occured. See log for details" msgstr "Ocorreu um erro. Veja o log para detalhes" diff --git a/i18n/pt_BR.po b/i18n/pt_BR.po index ba9107ce0a..f64d7513b9 100644 --- a/i18n/pt_BR.po +++ b/i18n/pt_BR.po @@ -1,16 +1,16 @@ # # Translators: # Oscar Mesones Lapouble , 2021 -# Viktor Varland , 2023 # Philip Larsen Donnelly, 2024 # Thiago Rocha, 2024 +# Viktor Varland , 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2024-03-07T14:47:33.932Z\n" +"POT-Creation-Date: 2024-03-16T14:40:27.542Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" -"Last-Translator: Thiago Rocha, 2024\n" +"Last-Translator: Viktor Varland , 2024\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/hisp-uio/teams/100509/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -680,6 +680,12 @@ msgid "" "An error occurred while fetching enrollments. Please enter a valid url." msgstr "" +msgid "No feedback for this enrollment yet" +msgstr "" + +msgid "No indicator output for this enrollment yet" +msgstr "" + msgid "Quick actions" msgstr "" @@ -763,6 +769,12 @@ msgstr "" msgid "Choose a registering unit to start reporting" msgstr "" +msgid "No feedback for this event yet" +msgstr "" + +msgid "No indicator output for this event yet" +msgstr "" + msgid "Program stage is invalid" msgstr "" @@ -925,12 +937,6 @@ msgstr "" msgid "View Event" msgstr "" -msgid "No feedback for this enrollment yet" -msgstr "" - -msgid "No indicator output for this enrollment yet" -msgstr "" - msgid "Selected program" msgstr "Programa selecionado" @@ -1403,6 +1409,35 @@ msgstr "" msgid "tracked entity instance" msgstr "" +msgid "Link to an existing {{linkableStageLabel}}" +msgstr "" + +msgid "Choose a {{linkableStageLabel}}" +msgstr "" + +msgid "Ambiguous relationships, contact system administrator" +msgstr "" + +msgid "" +"Enter {{linkableStageLabel}} details in the next step after completing this " +"{{currentStageLabel}}." +msgstr "" + +msgid "Enter details now" +msgstr "" + +msgid "Link to an existing" +msgstr "" + +msgid "Scheduled date" +msgstr "Data agendada" + +msgid "Report date" +msgstr "Data do relatório" + +msgid "Please select a valid event" +msgstr "" + msgid "New {{ eventName }} event" msgstr "" @@ -1514,15 +1549,6 @@ msgstr "Nome do estágio do programa" msgid "Working list could not be loaded" msgstr "" -msgid "Download as JSON" -msgstr "" - -msgid "Download as CSV" -msgstr "Baixar como CSV" - -msgid "Download with current filters" -msgstr "" - msgid "Download data..." msgstr "" @@ -1595,6 +1621,15 @@ msgstr "" msgid "Show All" msgstr "" +msgid "Download as JSON" +msgstr "" + +msgid "Download as CSV" +msgstr "Baixar como CSV" + +msgid "Download with current filters" +msgstr "" + msgid "An error has occured. See log for details" msgstr "" diff --git a/i18n/ru.po b/i18n/ru.po index ecc3a1d5dc..8cc2924a50 100644 --- a/i18n/ru.po +++ b/i18n/ru.po @@ -3,15 +3,15 @@ # Ulanbek Abakirov , 2020 # Wanda , 2021 # Valeriu Plesca , 2022 -# Philip Larsen Donnelly, 2024 # Viktor Varland , 2024 +# Philip Larsen Donnelly, 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2024-03-07T14:47:33.932Z\n" +"POT-Creation-Date: 2024-03-16T14:40:27.542Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" -"Last-Translator: Viktor Varland , 2024\n" +"Last-Translator: Philip Larsen Donnelly, 2024\n" "Language-Team: Russian (https://app.transifex.com/hisp-uio/teams/100509/ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -702,6 +702,12 @@ msgid "" "An error occurred while fetching enrollments. Please enter a valid url." msgstr "" +msgid "No feedback for this enrollment yet" +msgstr "" + +msgid "No indicator output for this enrollment yet" +msgstr "" + msgid "Quick actions" msgstr "" @@ -785,6 +791,12 @@ msgstr "" msgid "Choose a registering unit to start reporting" msgstr "" +msgid "No feedback for this event yet" +msgstr "" + +msgid "No indicator output for this event yet" +msgstr "" + msgid "Program stage is invalid" msgstr "" @@ -949,12 +961,6 @@ msgstr "" msgid "View Event" msgstr "" -msgid "No feedback for this enrollment yet" -msgstr "" - -msgid "No indicator output for this enrollment yet" -msgstr "" - msgid "Selected program" msgstr "Выбранная программа" @@ -1430,6 +1436,35 @@ msgstr "" msgid "tracked entity instance" msgstr "Элемент отслеживаемого объекта" +msgid "Link to an existing {{linkableStageLabel}}" +msgstr "" + +msgid "Choose a {{linkableStageLabel}}" +msgstr "" + +msgid "Ambiguous relationships, contact system administrator" +msgstr "" + +msgid "" +"Enter {{linkableStageLabel}} details in the next step after completing this " +"{{currentStageLabel}}." +msgstr "" + +msgid "Enter details now" +msgstr "" + +msgid "Link to an existing" +msgstr "" + +msgid "Scheduled date" +msgstr "Запланированная дата" + +msgid "Report date" +msgstr "Дата отчета" + +msgid "Please select a valid event" +msgstr "" + msgid "New {{ eventName }} event" msgstr "" @@ -1541,15 +1576,6 @@ msgstr "Название стадии программы" msgid "Working list could not be loaded" msgstr "Не могу загрузить Рабочий список " -msgid "Download as JSON" -msgstr "Скачать как JSON" - -msgid "Download as CSV" -msgstr "Загрузить в формате CSV" - -msgid "Download with current filters" -msgstr "Загрузить с текущими фильрами" - msgid "Download data..." msgstr "Загрузка данных..." @@ -1622,6 +1648,15 @@ msgstr "Покажи поменьше" msgid "Show All" msgstr "Показать все" +msgid "Download as JSON" +msgstr "Скачать как JSON" + +msgid "Download as CSV" +msgstr "Загрузить в формате CSV" + +msgid "Download with current filters" +msgstr "Загрузить с текущими фильрами" + msgid "An error has occured. See log for details" msgstr "Произошла ошибка. Смотрите подробности в лог-файле" diff --git a/i18n/sv.po b/i18n/sv.po index c893f03cd7..53ac26dbfa 100644 --- a/i18n/sv.po +++ b/i18n/sv.po @@ -2,12 +2,13 @@ # Translators: # Jason Pickering , 2023 # Philip Larsen Donnelly, 2024 +# Martin , 2024 # Viktor Varland , 2024 # msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2024-03-07T14:47:33.932Z\n" +"POT-Creation-Date: 2024-03-16T14:40:27.542Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" "Last-Translator: Viktor Varland , 2024\n" "Language-Team: Swedish (https://app.transifex.com/hisp-uio/teams/100509/sv/)\n" @@ -678,6 +679,12 @@ msgid "" "An error occurred while fetching enrollments. Please enter a valid url." msgstr "" +msgid "No feedback for this enrollment yet" +msgstr "" + +msgid "No indicator output for this enrollment yet" +msgstr "" + msgid "Quick actions" msgstr "" @@ -761,6 +768,12 @@ msgstr "" msgid "Choose a registering unit to start reporting" msgstr "" +msgid "No feedback for this event yet" +msgstr "" + +msgid "No indicator output for this event yet" +msgstr "" + msgid "Program stage is invalid" msgstr "" @@ -923,12 +936,6 @@ msgstr "" msgid "View Event" msgstr "" -msgid "No feedback for this enrollment yet" -msgstr "" - -msgid "No indicator output for this enrollment yet" -msgstr "" - msgid "Selected program" msgstr "" @@ -1398,6 +1405,35 @@ msgstr "" msgid "tracked entity instance" msgstr "" +msgid "Link to an existing {{linkableStageLabel}}" +msgstr "" + +msgid "Choose a {{linkableStageLabel}}" +msgstr "" + +msgid "Ambiguous relationships, contact system administrator" +msgstr "" + +msgid "" +"Enter {{linkableStageLabel}} details in the next step after completing this " +"{{currentStageLabel}}." +msgstr "" + +msgid "Enter details now" +msgstr "" + +msgid "Link to an existing" +msgstr "" + +msgid "Scheduled date" +msgstr "Schemalagd händelse" + +msgid "Report date" +msgstr "Rapportdatum" + +msgid "Please select a valid event" +msgstr "" + msgid "New {{ eventName }} event" msgstr "" @@ -1509,15 +1545,6 @@ msgstr "" msgid "Working list could not be loaded" msgstr "" -msgid "Download as JSON" -msgstr "" - -msgid "Download as CSV" -msgstr "Ladda ner som CSV" - -msgid "Download with current filters" -msgstr "" - msgid "Download data..." msgstr "" @@ -1590,6 +1617,15 @@ msgstr "" msgid "Show All" msgstr "" +msgid "Download as JSON" +msgstr "" + +msgid "Download as CSV" +msgstr "Ladda ner som CSV" + +msgid "Download with current filters" +msgstr "" + msgid "An error has occured. See log for details" msgstr "" @@ -1597,7 +1633,7 @@ msgid "Scheduled{{ escape }} due {{ time }}" msgstr "" msgid "Scheduled" -msgstr "" +msgstr "Schemalagd" msgid "Overdue{{ escape }} due {{ time }}" msgstr "" diff --git a/i18n/uk.po b/i18n/uk.po index 9457c2ba1f..99336b21c0 100644 --- a/i18n/uk.po +++ b/i18n/uk.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2024-03-07T14:47:33.932Z\n" +"POT-Creation-Date: 2024-03-16T14:40:27.542Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" "Last-Translator: Viktor Varland , 2024\n" "Language-Team: Ukrainian (https://app.transifex.com/hisp-uio/teams/100509/uk/)\n" @@ -682,6 +682,12 @@ msgid "" "An error occurred while fetching enrollments. Please enter a valid url." msgstr "" +msgid "No feedback for this enrollment yet" +msgstr "" + +msgid "No indicator output for this enrollment yet" +msgstr "" + msgid "Quick actions" msgstr "" @@ -765,6 +771,12 @@ msgstr "" msgid "Choose a registering unit to start reporting" msgstr "" +msgid "No feedback for this event yet" +msgstr "" + +msgid "No indicator output for this event yet" +msgstr "" + msgid "Program stage is invalid" msgstr "" @@ -927,12 +939,6 @@ msgstr "" msgid "View Event" msgstr "" -msgid "No feedback for this enrollment yet" -msgstr "" - -msgid "No indicator output for this enrollment yet" -msgstr "" - msgid "Selected program" msgstr "Обрані програми" @@ -1408,6 +1414,35 @@ msgstr "" msgid "tracked entity instance" msgstr "" +msgid "Link to an existing {{linkableStageLabel}}" +msgstr "" + +msgid "Choose a {{linkableStageLabel}}" +msgstr "" + +msgid "Ambiguous relationships, contact system administrator" +msgstr "" + +msgid "" +"Enter {{linkableStageLabel}} details in the next step after completing this " +"{{currentStageLabel}}." +msgstr "" + +msgid "Enter details now" +msgstr "" + +msgid "Link to an existing" +msgstr "" + +msgid "Scheduled date" +msgstr "Запланована дата" + +msgid "Report date" +msgstr "Дата звіту" + +msgid "Please select a valid event" +msgstr "" + msgid "New {{ eventName }} event" msgstr "" @@ -1519,15 +1554,6 @@ msgstr "Назва етапу програми" msgid "Working list could not be loaded" msgstr "" -msgid "Download as JSON" -msgstr "" - -msgid "Download as CSV" -msgstr "" - -msgid "Download with current filters" -msgstr "" - msgid "Download data..." msgstr "" @@ -1600,6 +1626,15 @@ msgstr "" msgid "Show All" msgstr "" +msgid "Download as JSON" +msgstr "" + +msgid "Download as CSV" +msgstr "" + +msgid "Download with current filters" +msgstr "" + msgid "An error has occured. See log for details" msgstr "" diff --git a/i18n/ur.po b/i18n/ur.po index 8e8dad8a53..4d0916dc9e 100644 --- a/i18n/ur.po +++ b/i18n/ur.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: i18next-conv\n" -"POT-Creation-Date: 2024-03-07T14:47:33.932Z\n" +"POT-Creation-Date: 2024-03-16T14:40:27.542Z\n" "PO-Revision-Date: 2019-06-27 07:31+0000\n" "Last-Translator: Viktor Varland , 2024\n" "Language-Team: Urdu (https://app.transifex.com/hisp-uio/teams/100509/ur/)\n" @@ -677,6 +677,12 @@ msgid "" "An error occurred while fetching enrollments. Please enter a valid url." msgstr "" +msgid "No feedback for this enrollment yet" +msgstr "" + +msgid "No indicator output for this enrollment yet" +msgstr "" + msgid "Quick actions" msgstr "" @@ -760,6 +766,12 @@ msgstr "" msgid "Choose a registering unit to start reporting" msgstr "" +msgid "No feedback for this event yet" +msgstr "" + +msgid "No indicator output for this event yet" +msgstr "" + msgid "Program stage is invalid" msgstr "" @@ -922,12 +934,6 @@ msgstr "" msgid "View Event" msgstr "" -msgid "No feedback for this enrollment yet" -msgstr "" - -msgid "No indicator output for this enrollment yet" -msgstr "" - msgid "Selected program" msgstr "منتخب کردہ پروگرام" @@ -1397,6 +1403,35 @@ msgstr "" msgid "tracked entity instance" msgstr "" +msgid "Link to an existing {{linkableStageLabel}}" +msgstr "" + +msgid "Choose a {{linkableStageLabel}}" +msgstr "" + +msgid "Ambiguous relationships, contact system administrator" +msgstr "" + +msgid "" +"Enter {{linkableStageLabel}} details in the next step after completing this " +"{{currentStageLabel}}." +msgstr "" + +msgid "Enter details now" +msgstr "" + +msgid "Link to an existing" +msgstr "" + +msgid "Scheduled date" +msgstr "شیڈول کی تاریخ" + +msgid "Report date" +msgstr "رپورٹ کی تاریخ" + +msgid "Please select a valid event" +msgstr "" + msgid "New {{ eventName }} event" msgstr "" @@ -1508,15 +1543,6 @@ msgstr "پروگرام مرحلے کا نام" msgid "Working list could not be loaded" msgstr "" -msgid "Download as JSON" -msgstr "JSON کے طور پر ڈاؤن لوڈ کریں" - -msgid "Download as CSV" -msgstr "CSV کے طور پر ڈاؤن لوڈ کریں" - -msgid "Download with current filters" -msgstr "" - msgid "Download data..." msgstr "" @@ -1589,6 +1615,15 @@ msgstr "" msgid "Show All" msgstr "" +msgid "Download as JSON" +msgstr "JSON کے طور پر ڈاؤن لوڈ کریں" + +msgid "Download as CSV" +msgstr "CSV کے طور پر ڈاؤن لوڈ کریں" + +msgid "Download with current filters" +msgstr "" + msgid "An error has occured. See log for details" msgstr "" From 6fd56daaa61ce8b795f52455df4220e4f9eaa35e Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Sun, 28 Apr 2024 01:44:15 +0000 Subject: [PATCH 02/18] chore(release): cut 100.68.1 [skip release] ## [100.68.1](https://github.com/dhis2/capture-app/compare/v100.68.0...v100.68.1) (2024-04-28) ### Bug Fixes * **translations:** sync translations from transifex (master) ([2dc29b8](https://github.com/dhis2/capture-app/commit/2dc29b8e3b1e97b9a9f6304359387a7fe8980685)) --- CHANGELOG.md | 7 +++++++ package.json | 4 ++-- packages/rules-engine/package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 766c604c00..c055acd091 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [100.68.1](https://github.com/dhis2/capture-app/compare/v100.68.0...v100.68.1) (2024-04-28) + + +### Bug Fixes + +* **translations:** sync translations from transifex (master) ([2dc29b8](https://github.com/dhis2/capture-app/commit/2dc29b8e3b1e97b9a9f6304359387a7fe8980685)) + # [100.68.0](https://github.com/dhis2/capture-app/compare/v100.67.12...v100.68.0) (2024-04-25) diff --git a/package.json b/package.json index 51b284c4de..75830c309a 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "capture-app", "homepage": ".", - "version": "100.68.0", + "version": "100.68.1", "cacheVersion": "7", "serverVersion": "38", "license": "BSD-3-Clause", @@ -10,7 +10,7 @@ "packages/rules-engine" ], "dependencies": { - "@dhis2/rules-engine-javascript": "100.68.0", + "@dhis2/rules-engine-javascript": "100.68.1", "@dhis2/app-runtime": "^3.9.3", "@dhis2/d2-i18n": "^1.1.0", "@dhis2/d2-icons": "^1.0.1", diff --git a/packages/rules-engine/package.json b/packages/rules-engine/package.json index dccfa10f5c..3e55cc7eab 100644 --- a/packages/rules-engine/package.json +++ b/packages/rules-engine/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/rules-engine-javascript", - "version": "100.68.0", + "version": "100.68.1", "license": "BSD-3-Clause", "main": "./build/cjs/index.js", "scripts": { From 8c5ba727d34bd04def952a4065e7fc1facc70989 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20Storl=C3=B8kken=20Melseth?= Date: Mon, 29 Apr 2024 12:51:16 +0200 Subject: [PATCH 03/18] chore: switch semantic release branch (#3627) --- .github/workflows/verify-app.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/verify-app.yml b/.github/workflows/verify-app.yml index 4877b7ceed..4d12a6d4dc 100644 --- a/.github/workflows/verify-app.yml +++ b/.github/workflows/verify-app.yml @@ -193,7 +193,7 @@ jobs: path: '**/node_modules' key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - - uses: dhis2/action-semantic-release@ignore-app-hub-lib + - uses: dhis2/action-semantic-release@use-yarn-version-prepare with: publish-apphub: true publish-github: true From 3237698f77b62cf0b5c690b9a1db74d627bea5dc Mon Sep 17 00:00:00 2001 From: Tony Valle <79843014+superskip@users.noreply.github.com> Date: Mon, 29 Apr 2024 16:39:17 +0200 Subject: [PATCH 04/18] fix: [DHIS2-17131] schedule dates with format DD-MM-YYYY (#3584) --- .../helpers/deriveAutoGenerateEvents.js | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/deriveAutoGenerateEvents.js b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/deriveAutoGenerateEvents.js index e36a6e10e6..eab301fe99 100644 --- a/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/deriveAutoGenerateEvents.js +++ b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/deriveAutoGenerateEvents.js @@ -1,12 +1,9 @@ // @flow -import { pipe } from 'capture-core-utils'; import moment from 'moment'; import { dataElementTypes, ProgramStage } from '../../../../../metaData'; -import { convertFormToClient, convertClientToServer } from '../../../../../converters'; +import { convertClientToServer } from '../../../../../converters'; import { convertCategoryOptionsToServer } from '../../../../../converters/clientToServer'; -const convertFn = pipe(convertFormToClient, convertClientToServer); - const ignoreAutoGenerateIfApplicable = (stage, firstStageDuringRegistrationEvent) => !firstStageDuringRegistrationEvent || firstStageDuringRegistrationEvent.id !== stage.id; @@ -56,15 +53,17 @@ export const deriveAutoGenerateEvents = ({ const eventInfo = openAfterEnrollment ? { status: 'ACTIVE', - occurredAt: convertFn(dateToUseInActiveStatus, dataElementTypes.DATE), - scheduledAt: convertFn(dateToUseInActiveStatus, dataElementTypes.DATE), + occurredAt: dateToUseInActiveStatus, + scheduledAt: dateToUseInActiveStatus, } : { status: 'SCHEDULE', // for schedule type of events we want to add the standard interval days to the date - scheduledAt: moment(convertFn(dateToUseInScheduleStatus, dataElementTypes.DATE)) - .add(minDaysFromStart, 'days') - .format('YYYY-MM-DD'), + scheduledAt: convertClientToServer( + moment(dateToUseInScheduleStatus) + .add(minDaysFromStart, 'days') + .format('YYYY-MM-DD'), + dataElementTypes.DATE), }; return { From 586ac55a5c1efd121ce10b477e8e41dd71452a2e Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Mon, 29 Apr 2024 14:45:19 +0000 Subject: [PATCH 05/18] chore(release): cut 100.68.2 [skip release] ## [100.68.2](https://github.com/dhis2/capture-app/compare/v100.68.1...v100.68.2) (2024-04-29) ### Bug Fixes * [DHIS2-17131] schedule dates with format DD-MM-YYYY ([#3584](https://github.com/dhis2/capture-app/issues/3584)) ([3237698](https://github.com/dhis2/capture-app/commit/3237698f77b62cf0b5c690b9a1db74d627bea5dc)) --- CHANGELOG.md | 7 +++++++ package.json | 4 ++-- packages/rules-engine/package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c055acd091..2496eeb314 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [100.68.2](https://github.com/dhis2/capture-app/compare/v100.68.1...v100.68.2) (2024-04-29) + + +### Bug Fixes + +* [DHIS2-17131] schedule dates with format DD-MM-YYYY ([#3584](https://github.com/dhis2/capture-app/issues/3584)) ([3237698](https://github.com/dhis2/capture-app/commit/3237698f77b62cf0b5c690b9a1db74d627bea5dc)) + ## [100.68.1](https://github.com/dhis2/capture-app/compare/v100.68.0...v100.68.1) (2024-04-28) diff --git a/package.json b/package.json index 75830c309a..b8a096a50a 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "capture-app", "homepage": ".", - "version": "100.68.1", + "version": "100.68.2", "cacheVersion": "7", "serverVersion": "38", "license": "BSD-3-Clause", @@ -10,7 +10,7 @@ "packages/rules-engine" ], "dependencies": { - "@dhis2/rules-engine-javascript": "100.68.1", + "@dhis2/rules-engine-javascript": "100.68.2", "@dhis2/app-runtime": "^3.9.3", "@dhis2/d2-i18n": "^1.1.0", "@dhis2/d2-icons": "^1.0.1", diff --git a/packages/rules-engine/package.json b/packages/rules-engine/package.json index 3e55cc7eab..0225903449 100644 --- a/packages/rules-engine/package.json +++ b/packages/rules-engine/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/rules-engine-javascript", - "version": "100.68.1", + "version": "100.68.2", "license": "BSD-3-Clause", "main": "./build/cjs/index.js", "scripts": { From 8aa86956d8df15518a536b0dc51fa908cb9cb6db Mon Sep 17 00:00:00 2001 From: Tony Valle <79843014+superskip@users.noreply.github.com> Date: Mon, 29 Apr 2024 16:57:17 +0200 Subject: [PATCH 06/18] fix: [DHIS2-17096] show/hide option groups in profile widget (#3593) --- .../WidgetProfile/WidgetProfile.component.js | 2 +- .../WidgetProfile/hooks/useApiProgram.js | 39 +++++++++++++ .../WidgetProfile/hooks/useOptionGroups.js | 58 +++++++++++++++++++ .../WidgetProfile/hooks/useProgram.js | 54 ++++++----------- 4 files changed, 116 insertions(+), 37 deletions(-) create mode 100644 src/core_modules/capture-core/components/WidgetProfile/hooks/useApiProgram.js create mode 100644 src/core_modules/capture-core/components/WidgetProfile/hooks/useOptionGroups.js diff --git a/src/core_modules/capture-core/components/WidgetProfile/WidgetProfile.component.js b/src/core_modules/capture-core/components/WidgetProfile/WidgetProfile.component.js index 66f14d57e5..2ad6516daf 100644 --- a/src/core_modules/capture-core/components/WidgetProfile/WidgetProfile.component.js +++ b/src/core_modules/capture-core/components/WidgetProfile/WidgetProfile.component.js @@ -88,7 +88,7 @@ const WidgetProfilePlain = ({ const error = programsError || trackedEntityInstancesError || userRolesError; const clientAttributesWithSubvalues = useClientAttributesWithSubvalues(teiId, program, trackedEntityInstanceAttributes); const teiDisplayName = useTeiDisplayName(program, storedAttributeValues, clientAttributesWithSubvalues, teiId); - const displayChangelog = supportsChangelog && program.trackedEntityType?.changelogEnabled; + const displayChangelog = supportsChangelog && program && program.trackedEntityType?.changelogEnabled; const displayInListAttributes = useMemo(() => clientAttributesWithSubvalues .filter(item => item.displayInList) diff --git a/src/core_modules/capture-core/components/WidgetProfile/hooks/useApiProgram.js b/src/core_modules/capture-core/components/WidgetProfile/hooks/useApiProgram.js new file mode 100644 index 0000000000..073ab42e40 --- /dev/null +++ b/src/core_modules/capture-core/components/WidgetProfile/hooks/useApiProgram.js @@ -0,0 +1,39 @@ +// @flow +import { useMemo } from 'react'; +import { useDataQuery } from '@dhis2/app-runtime'; + +const fields = + 'id,version,displayName,displayShortName,description,programType,style,minAttributesRequiredToSearch,enrollmentDateLabel,incidentDateLabel,featureType,selectEnrollmentDatesInFuture,selectIncidentDatesInFuture,displayIncidentDate,' + + 'access[*],' + + 'dataEntryForm[id,htmlCode],' + + 'categoryCombo[id,displayName,isDefault,categories[id,displayName]],' + + 'programIndicators[id,displayName,code,shortName,style,displayInForm,expression,displayDescription,description,filter,program[id]],' + + 'programSections[id, displayFormName, sortOrder, trackedEntityAttributes],' + + 'programRuleVariables[id,displayName,programRuleVariableSourceType,valueType,program[id],programStage[id],dataElement[id],trackedEntityAttribute[id],useCodeForOptionSet],' + + 'programStages[id,access,autoGenerateEvent,openAfterEnrollment,generatedByEnrollmentDate,reportDateToUse,minDaysFromStart,displayName,description,executionDateLabel,formType,featureType,validationStrategy,enableUserAssignment,style,' + + 'dataEntryForm[id,htmlCode],' + + 'programStageSections[id,displayName,displayDescription,sortOrder,dataElements[id]],' + + 'programStageDataElements[compulsory,displayInReports,renderOptionsAsRadio,allowFutureDate,renderType[*],dataElement[id,displayName,displayShortName,displayFormName,valueType,translations[*],description,optionSetValue,style,optionSet[id,displayName,version,valueType,options[id,displayName,code,style, translations]]]]' + + '],' + + 'programTrackedEntityAttributes[trackedEntityAttribute[id,displayName,displayShortName,displayFormName,description,valueType,optionSetValue,unique,orgunitScope,pattern,translations[property,locale,value],optionSet[id,displayName,version,valueType,options[id,displayName,name,code,style,translations]]],displayInList,searchable,mandatory,renderOptionsAsRadio,allowFutureDate],' + + 'trackedEntityType[id,access,displayName,allowAuditLog,minAttributesRequiredToSearch,featureType,trackedEntityTypeAttributes[trackedEntityAttribute[id],displayInList,mandatory,searchable],translations[property,locale,value]],' + + 'userRoles[id,displayName]'; + +export const useApiProgram = (programId: string) => { + const { error, loading, data } = useDataQuery( + useMemo( + () => ({ + programs: { + resource: 'programs', + id: programId, + params: { + fields, + }, + }, + }), + [programId], + ), + ); + + return { error, loading, program: data?.programs }; +}; diff --git a/src/core_modules/capture-core/components/WidgetProfile/hooks/useOptionGroups.js b/src/core_modules/capture-core/components/WidgetProfile/hooks/useOptionGroups.js new file mode 100644 index 0000000000..fe4533e6a5 --- /dev/null +++ b/src/core_modules/capture-core/components/WidgetProfile/hooks/useOptionGroups.js @@ -0,0 +1,58 @@ +// @flow +import { useMemo } from 'react'; +import { useApiMetadataQuery } from 'capture-core/utils/reactQueryHelpers'; + +const createOptionSetToOptionGroupDictionary = ({ optionGroups }) => optionGroups.reduce( + (acc, optionGroup) => { + const optionSetId = optionGroup.optionSet.id; + const transformedOptionGroup = { + id: optionGroup.id, + options: optionGroup.options.map(option => option.id), + }; + if (acc[optionSetId]) { + acc[optionSetId].push(transformedOptionGroup); + } else { + acc[optionSetId] = [transformedOptionGroup]; + } + return acc; + }, + {}, +); + +export const useOptionGroups = (program: any) => { + const params = useMemo(() => { + if (!program) { + return {}; + } + + const attributes = program.programTrackedEntityAttributes.reduce( + (acc, attribute) => { + const optionSet = attribute.trackedEntityAttribute.optionSet; + if (optionSet) { + acc.push(optionSet.id); + } + return acc; + }, + [], + ); + + return { + fields: 'id,optionSet,options', + filter: `optionSet.id:in:[${attributes.join(',')}]`, + }; + }, [program]); + + const queryKey = ['optionGroups', 'programAttributes', ...(program?.id ? [program.id] : [])]; + const queryFn = { resource: 'optionGroups', params }; + const queryOptions = { + enabled: Boolean(program), + select: createOptionSetToOptionGroupDictionary, + }; + const { data, isLoading, error } = useApiMetadataQuery(queryKey, queryFn, queryOptions); + + return { + optionGroups: program ? data : null, + loading: isLoading, + error, + }; +}; diff --git a/src/core_modules/capture-core/components/WidgetProfile/hooks/useProgram.js b/src/core_modules/capture-core/components/WidgetProfile/hooks/useProgram.js index b9c9a72f64..b23ddc9a9f 100644 --- a/src/core_modules/capture-core/components/WidgetProfile/hooks/useProgram.js +++ b/src/core_modules/capture-core/components/WidgetProfile/hooks/useProgram.js @@ -1,51 +1,33 @@ // @flow import { useMemo } from 'react'; -import { useDataQuery } from '@dhis2/app-runtime'; - -const fields = - 'id,version,displayName,displayShortName,description,programType,style,minAttributesRequiredToSearch,enrollmentDateLabel,incidentDateLabel,featureType,selectEnrollmentDatesInFuture,selectIncidentDatesInFuture,displayIncidentDate,' + - 'access[*],' + - 'dataEntryForm[id,htmlCode],' + - 'categoryCombo[id,displayName,isDefault,categories[id,displayName]],' + - 'programIndicators[id,displayName,code,shortName,style,displayInForm,expression,displayDescription,description,filter,program[id]],' + - 'programSections[id, displayFormName, sortOrder, trackedEntityAttributes],' + - 'programRuleVariables[id,displayName,programRuleVariableSourceType,valueType,program[id],programStage[id],dataElement[id],trackedEntityAttribute[id],useCodeForOptionSet],' + - 'programStages[id,access,autoGenerateEvent,openAfterEnrollment,generatedByEnrollmentDate,reportDateToUse,minDaysFromStart,displayName,description,executionDateLabel,formType,featureType,validationStrategy,enableUserAssignment,style,' + - 'dataEntryForm[id,htmlCode],' + - 'programStageSections[id,displayName,displayDescription,sortOrder,dataElements[id]],' + - 'programStageDataElements[compulsory,displayInReports,renderOptionsAsRadio,allowFutureDate,renderType[*],dataElement[id,displayName,displayShortName,displayFormName,valueType,translations[*],description,optionSetValue,style,optionSet[id,displayName,version,valueType,options[id,displayName,code,style, translations]]]]' + - '],' + - 'programTrackedEntityAttributes[trackedEntityAttribute[id,displayName,displayShortName,displayFormName,description,valueType,optionSetValue,unique,orgunitScope,pattern,translations[property,locale,value],optionSet[id,displayName,version,valueType,options[id,displayName,name,code,style,translations]]],displayInList,searchable,mandatory,renderOptionsAsRadio,allowFutureDate],' + - 'trackedEntityType[id,access,displayName,allowAuditLog,minAttributesRequiredToSearch,featureType,trackedEntityTypeAttributes[trackedEntityAttribute[id],displayInList,mandatory,searchable],translations[property,locale,value]],' + - 'userRoles[id,displayName]'; +import { useApiProgram } from './useApiProgram'; +import { useOptionGroups } from './useOptionGroups'; export const useProgram = (programId: string) => { - const { error, loading, data } = useDataQuery( - useMemo( - () => ({ - programs: { - resource: 'programs', - id: programId, - params: { - fields, - }, - }, - }), - [programId], - ), - ); + const { error: programError, loading: programLoading, program } = useApiProgram(programId); + const { error: optionGroupsError, loading: optionGroupsLoading, optionGroups } = useOptionGroups(program); const programMetadata = useMemo(() => { - if (data?.programs) { - const program = data.programs; + if (program && optionGroups) { if (program.trackedEntityType) { program.trackedEntityType.changelogEnabled = program.trackedEntityType.allowAuditLog; delete program.trackedEntityType.allowAuditLog; } + program.programTrackedEntityAttributes = program.programTrackedEntityAttributes.map((attribute) => { + const tea = attribute.trackedEntityAttribute; + if (tea.optionSet) { + tea.optionSet.optionGroups = optionGroups[tea.optionSet.id]; + } + return attribute; + }); return program; } return null; - }, [data]); + }, [program, optionGroups]); - return { error, loading, program: !loading && programMetadata }; + return { + program: programMetadata, + loading: programLoading || optionGroupsLoading, + error: programError || optionGroupsError, + }; }; From 83e039951ab7d3188f75cb059f79dd5292f346fd Mon Sep 17 00:00:00 2001 From: eirikhaugstulen Date: Mon, 29 Apr 2024 16:59:16 +0200 Subject: [PATCH 07/18] fix: [DHIS2-17177] Registration page stuck after failed save (#3595) --- .../RegistrationDataEntry/RegistrationDataEntry.epics.js | 9 +++++++++ src/epics/trackerCapture.epics.js | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.epics.js b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.epics.js index 686fa6b24e..d14df1119e 100644 --- a/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.epics.js +++ b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.epics.js @@ -17,6 +17,7 @@ import { getStageWithOpenAfterEnrollment, PAGES, } from './helpers'; +import { cleanUpUid } from '../NewPage.actions'; export const startSavingNewTrackedEntityInstanceEpic: Epic = (action$: InputObservable) => action$.pipe( @@ -140,3 +141,11 @@ export const completeSavingNewTrackedEntityInstanceWithEnrollmentEpic = ( })); }), ); + +export const failedSavingNewTrackedEntityInstanceWithEnrollmentEpic = ( + action$: InputObservable, +) => + action$.pipe( + ofType(registrationFormActionTypes.NEW_TRACKED_ENTITY_INSTANCE_WITH_ENROLLMENT_SAVE_FAILED), + map(() => cleanUpUid()), + ); diff --git a/src/epics/trackerCapture.epics.js b/src/epics/trackerCapture.epics.js index 8d3dcfb76f..f014eda6ce 100644 --- a/src/epics/trackerCapture.epics.js +++ b/src/epics/trackerCapture.epics.js @@ -182,7 +182,7 @@ import { } from '../core_modules/capture-core/components/DataEntries/TeiRegistrationEntry/TeiRegistrationEntry.epics'; import { completeSavingNewTrackedEntityInstanceEpic, - completeSavingNewTrackedEntityInstanceWithEnrollmentEpic, + completeSavingNewTrackedEntityInstanceWithEnrollmentEpic, failedSavingNewTrackedEntityInstanceWithEnrollmentEpic, startSavingNewTrackedEntityInstanceEpic, startSavingNewTrackedEntityInstanceWithEnrollmentEpic, } from '../core_modules/capture-core/components/Pages/New/RegistrationDataEntry/RegistrationDataEntry.epics'; @@ -338,6 +338,7 @@ export const epics = combineEpics( startSavingNewTrackedEntityInstanceWithEnrollmentEpic, completeSavingNewTrackedEntityInstanceEpic, completeSavingNewTrackedEntityInstanceWithEnrollmentEpic, + failedSavingNewTrackedEntityInstanceWithEnrollmentEpic, changedEnrollmentIdEpic, fetchEnrollmentIdEpic, verifyEnrollmentIdSuccessEpic, From 9a7261c6d43f3667edb162882d841025fb08fff0 Mon Sep 17 00:00:00 2001 From: Simona Domnisoru Date: Mon, 29 Apr 2024 17:01:30 +0200 Subject: [PATCH 08/18] fix: [DHIS2-17044] missing singular translation (#3598) --- .../EnrollmentPage/EnrollmentPageNavigation/index.js | 2 +- i18n/en.pot | 10 ++++++---- .../Stage/StageOverview/StageOverview.component.js | 6 +++++- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/cypress/e2e/EnrollmentPage/EnrollmentPageNavigation/index.js b/cypress/e2e/EnrollmentPage/EnrollmentPageNavigation/index.js index bdc1d2f189..cdaf9408ea 100644 --- a/cypress/e2e/EnrollmentPage/EnrollmentPageNavigation/index.js +++ b/cypress/e2e/EnrollmentPage/EnrollmentPageNavigation/index.js @@ -95,7 +95,7 @@ Given('you land on the enrollment page by having typed only the enrollmentId in .contains('Enrollment Dashboard'); cy.contains('[data-test="scope-selector"]', 'Carlos Cruz'); cy.contains('[data-test="scope-selector"]', 'Taninahun (Malen) CHP'); - cy.contains('1 events'); + cy.contains('1 event'); }); When('you reset the tei selection', () => { diff --git a/i18n/en.pot b/i18n/en.pot index 723eb3a41d..4def224e97 100644 --- a/i18n/en.pot +++ b/i18n/en.pot @@ -5,8 +5,8 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -"POT-Creation-Date: 2024-03-16T14:40:27.542Z\n" -"PO-Revision-Date: 2024-03-16T14:40:27.542Z\n" +"POT-Creation-Date: 2024-04-05T13:37:32.910Z\n" +"PO-Revision-Date: 2024-04-05T13:37:32.910Z\n" msgid "Choose one or more dates..." msgstr "Choose one or more dates..." @@ -1500,8 +1500,10 @@ msgstr "This stage can only have one event" msgid "Events could not be retrieved. Please try again later." msgstr "Events could not be retrieved. Please try again later." -msgid "{{ totalEvents }} events" -msgstr "{{ totalEvents }} events" +msgid "{{ count }} event" +msgid_plural "{{ count }} event" +msgstr[0] "{{ count }} event" +msgstr[1] "{{count}} events" msgid "{{ overdueEvents }} overdue" msgstr "{{ overdueEvents }} overdue" diff --git a/src/core_modules/capture-core/components/WidgetStagesAndEvents/Stages/Stage/StageOverview/StageOverview.component.js b/src/core_modules/capture-core/components/WidgetStagesAndEvents/Stages/Stage/StageOverview/StageOverview.component.js index 6302d58ff0..d219d597ec 100644 --- a/src/core_modules/capture-core/components/WidgetStagesAndEvents/Stages/Stage/StageOverview/StageOverview.component.js +++ b/src/core_modules/capture-core/components/WidgetStagesAndEvents/Stages/Stage/StageOverview/StageOverview.component.js @@ -97,7 +97,11 @@ export const StageOverviewPlain = ({ title, icon, description, events, classes } }
- {i18n.t('{{ totalEvents }} events', { totalEvents })} + {i18n.t('{{ count }} event', { + count: totalEvents, + defaultValue: '{{ count }} event', + defaultValue_plural: '{{count}} events', + })}
{overdueEvents > 0 ?
From 21d9d6e985fb17548745c065f8415866fdb19394 Mon Sep 17 00:00:00 2001 From: eirikhaugstulen Date: Mon, 29 Apr 2024 17:03:58 +0200 Subject: [PATCH 09/18] fix: [DHIS2-16931] Working list hides delete button (#3603) --- .../components/ListView/withEndColumnMenu/RowMenu.component.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/core_modules/capture-core/components/ListView/withEndColumnMenu/RowMenu.component.js b/src/core_modules/capture-core/components/ListView/withEndColumnMenu/RowMenu.component.js index 28778a4ef7..49362c29af 100644 --- a/src/core_modules/capture-core/components/ListView/withEndColumnMenu/RowMenu.component.js +++ b/src/core_modules/capture-core/components/ListView/withEndColumnMenu/RowMenu.component.js @@ -127,6 +127,7 @@ class Index extends React.Component { {this.state.menuOpen && { ({ ref, style, placement }) => ( From 7750761b3e20a7ed36ff96831c5bbd3cb0e78263 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20Storl=C3=B8kken=20Melseth?= Date: Mon, 29 Apr 2024 17:06:10 +0200 Subject: [PATCH 10/18] fix: [DHIS2-17161] Do not update attribute values from enrollment Widget (#3601) --- .../useCommonEnrollmentDomainData.js | 2 +- .../components/WidgetEnrollment/hooks/useEnrollment.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core_modules/capture-core/components/Pages/common/EnrollmentOverviewDomain/useCommonEnrollmentDomainData/useCommonEnrollmentDomainData.js b/src/core_modules/capture-core/components/Pages/common/EnrollmentOverviewDomain/useCommonEnrollmentDomainData/useCommonEnrollmentDomainData.js index 5ce1534b56..16133e2f38 100644 --- a/src/core_modules/capture-core/components/Pages/common/EnrollmentOverviewDomain/useCommonEnrollmentDomainData/useCommonEnrollmentDomainData.js +++ b/src/core_modules/capture-core/components/Pages/common/EnrollmentOverviewDomain/useCommonEnrollmentDomainData/useCommonEnrollmentDomainData.js @@ -23,7 +23,7 @@ export const useCommonEnrollmentDomainData = (teiId: string, enrollmentId: strin id: ({ variables: { teiId: updatedTeiId } }) => updatedTeiId, params: ({ variables: { programId: updatedProgramId } }) => ({ program: updatedProgramId, - fields: ['enrollments[*],attributes'], + fields: ['enrollments[*,!attributes],attributes'], }), }, }), diff --git a/src/core_modules/capture-core/components/WidgetEnrollment/hooks/useEnrollment.js b/src/core_modules/capture-core/components/WidgetEnrollment/hooks/useEnrollment.js index b37ae14a77..1513f6a2c0 100644 --- a/src/core_modules/capture-core/components/WidgetEnrollment/hooks/useEnrollment.js +++ b/src/core_modules/capture-core/components/WidgetEnrollment/hooks/useEnrollment.js @@ -27,7 +27,7 @@ export const useEnrollment = ({ resource: 'tracker/enrollments/', id: ({ variables: { enrollmentId: updatedEnrollmentId } }) => updatedEnrollmentId, params: { - fields: 'enrollment,trackedEntity,program,status,orgUnit,enrolledAt,occurredAt,followUp,deleted,createdBy,updatedBy,attributes,geometry', + fields: 'enrollment,trackedEntity,program,status,orgUnit,enrolledAt,occurredAt,followUp,deleted,createdBy,updatedBy,geometry', }, }, }), From 10411079433999e6d366ab8768e51b636a5b0e0a Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Mon, 29 Apr 2024 15:17:56 +0000 Subject: [PATCH 11/18] chore(release): cut 100.68.3 [skip release] ## [100.68.3](https://github.com/dhis2/capture-app/compare/v100.68.2...v100.68.3) (2024-04-29) ### Bug Fixes * [DHIS2-16931] Working list hides delete button ([#3603](https://github.com/dhis2/capture-app/issues/3603)) ([21d9d6e](https://github.com/dhis2/capture-app/commit/21d9d6e985fb17548745c065f8415866fdb19394)) * [DHIS2-17044] missing singular translation ([#3598](https://github.com/dhis2/capture-app/issues/3598)) ([9a7261c](https://github.com/dhis2/capture-app/commit/9a7261c6d43f3667edb162882d841025fb08fff0)) * [DHIS2-17096] show/hide option groups in profile widget ([#3593](https://github.com/dhis2/capture-app/issues/3593)) ([8aa8695](https://github.com/dhis2/capture-app/commit/8aa86956d8df15518a536b0dc51fa908cb9cb6db)) * [DHIS2-17161] Do not update attribute values from enrollment Widget ([#3601](https://github.com/dhis2/capture-app/issues/3601)) ([7750761](https://github.com/dhis2/capture-app/commit/7750761b3e20a7ed36ff96831c5bbd3cb0e78263)) * [DHIS2-17177] Registration page stuck after failed save ([#3595](https://github.com/dhis2/capture-app/issues/3595)) ([83e0399](https://github.com/dhis2/capture-app/commit/83e039951ab7d3188f75cb059f79dd5292f346fd)) --- CHANGELOG.md | 11 +++++++++++ package.json | 4 ++-- packages/rules-engine/package.json | 2 +- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2496eeb314..00645f9d14 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,14 @@ +## [100.68.3](https://github.com/dhis2/capture-app/compare/v100.68.2...v100.68.3) (2024-04-29) + + +### Bug Fixes + +* [DHIS2-16931] Working list hides delete button ([#3603](https://github.com/dhis2/capture-app/issues/3603)) ([21d9d6e](https://github.com/dhis2/capture-app/commit/21d9d6e985fb17548745c065f8415866fdb19394)) +* [DHIS2-17044] missing singular translation ([#3598](https://github.com/dhis2/capture-app/issues/3598)) ([9a7261c](https://github.com/dhis2/capture-app/commit/9a7261c6d43f3667edb162882d841025fb08fff0)) +* [DHIS2-17096] show/hide option groups in profile widget ([#3593](https://github.com/dhis2/capture-app/issues/3593)) ([8aa8695](https://github.com/dhis2/capture-app/commit/8aa86956d8df15518a536b0dc51fa908cb9cb6db)) +* [DHIS2-17161] Do not update attribute values from enrollment Widget ([#3601](https://github.com/dhis2/capture-app/issues/3601)) ([7750761](https://github.com/dhis2/capture-app/commit/7750761b3e20a7ed36ff96831c5bbd3cb0e78263)) +* [DHIS2-17177] Registration page stuck after failed save ([#3595](https://github.com/dhis2/capture-app/issues/3595)) ([83e0399](https://github.com/dhis2/capture-app/commit/83e039951ab7d3188f75cb059f79dd5292f346fd)) + ## [100.68.2](https://github.com/dhis2/capture-app/compare/v100.68.1...v100.68.2) (2024-04-29) diff --git a/package.json b/package.json index b8a096a50a..05d66c8d2f 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "capture-app", "homepage": ".", - "version": "100.68.2", + "version": "100.68.3", "cacheVersion": "7", "serverVersion": "38", "license": "BSD-3-Clause", @@ -10,7 +10,7 @@ "packages/rules-engine" ], "dependencies": { - "@dhis2/rules-engine-javascript": "100.68.2", + "@dhis2/rules-engine-javascript": "100.68.3", "@dhis2/app-runtime": "^3.9.3", "@dhis2/d2-i18n": "^1.1.0", "@dhis2/d2-icons": "^1.0.1", diff --git a/packages/rules-engine/package.json b/packages/rules-engine/package.json index 0225903449..52392d7986 100644 --- a/packages/rules-engine/package.json +++ b/packages/rules-engine/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/rules-engine-javascript", - "version": "100.68.2", + "version": "100.68.3", "license": "BSD-3-Clause", "main": "./build/cjs/index.js", "scripts": { From 794e9039ea86714802fbad9c9f1fd164e60a869f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20Storl=C3=B8kken=20Melseth?= Date: Mon, 29 Apr 2024 17:22:17 +0200 Subject: [PATCH 12/18] chore: cypress login issue v42 (#3602) --- cypress/e2e/SmokeTests.feature | 3 ++- cypress/support/commands.js | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/cypress/e2e/SmokeTests.feature b/cypress/e2e/SmokeTests.feature index 6ce30ae163..bb2410d889 100644 --- a/cypress/e2e/SmokeTests.feature +++ b/cypress/e2e/SmokeTests.feature @@ -5,7 +5,8 @@ Feature: Smoke tests Given you open the App without auth cookie Then you should see the login prompt - @skip-login + # login form is not working for v42 currently + @skip-login @v<42 Scenario: Show app main selections and header bar: without auth cookie Given you open the App without auth cookie When you fill in credentials diff --git a/cypress/support/commands.js b/cypress/support/commands.js index 428216f958..dbd509e0d3 100644 --- a/cypress/support/commands.js +++ b/cypress/support/commands.js @@ -28,3 +28,36 @@ Cypress.Commands.add('forceVisit', (url) => { cy.visit(url); cy.window().then((win) => { win.location.href = url; }); }); + +// overrides loginByApi from @dhis2/cypress-commands +// temporary solution: should use solution from @dhis2/cypres-commands when available +Cypress.Commands.add('loginByApi', ({ username, password, baseUrl }) => { + const currentInstanceVersion = Number(/[.](\d+)/.exec(Cypress.env('dhis2InstanceVersion'))[1]); + + if (currentInstanceVersion >= 42) { + cy.request({ + url: `${baseUrl}/api/auth/login`, + method: 'POST', + followRedirect: true, + body: { + username, + password, + }, + }); + } else { + cy.request({ + url: `${baseUrl}/dhis-web-commons-security/login.action`, + method: 'POST', + form: true, + followRedirect: true, + body: { + j_username: username, + j_password: password, + '2fa_code': '', + }, + }); + } + + // Set base url for the app platform + window.localStorage.setItem('DHIS2_BASE_URL', baseUrl); +}); From 6a0bb73b2c9cfba5361e5bbb9b1f4218b3200cd3 Mon Sep 17 00:00:00 2001 From: Simona Domnisoru Date: Mon, 29 Apr 2024 17:26:20 +0200 Subject: [PATCH 13/18] fix: [DHIS2-17225] cannot add TET with polygon or coordiante (#3618) --- cypress/e2e/NewPage.feature | 12 +++++++++++ cypress/e2e/NewPage/index.js | 21 +++++++++++++++++++ ...rackedEntityInstanceDataEntry.component.js | 5 +++-- .../CoordinateField.component.js | 1 + 4 files changed, 37 insertions(+), 2 deletions(-) diff --git a/cypress/e2e/NewPage.feature b/cypress/e2e/NewPage.feature index fd0ad26b65..43f1a18395 100644 --- a/cypress/e2e/NewPage.feature +++ b/cypress/e2e/NewPage.feature @@ -224,3 +224,15 @@ Feature: User creates a new entries from the registration page Scenario: First stage appears on registration page Given you are in Child programme registration page Then the first stage appears on registration page + + Scenario: New malaria entity without enrollment + Given you are in the registration page with Ngelehun CHC org unit selected + And you select Malaria Entity from the available tracked entity types + And you click the location button + Then the map opens + + Scenario: New focus area without enrollment + Given you are in the registration page with Ngelehun CHC org unit selected + And you select Focus area from the available tracked entity types + And the user clicks the element containing the text: Choose area on map + Then the map opens diff --git a/cypress/e2e/NewPage/index.js b/cypress/e2e/NewPage/index.js index 3c968d2b3f..d104f14c6d 100644 --- a/cypress/e2e/NewPage/index.js +++ b/cypress/e2e/NewPage/index.js @@ -7,6 +7,10 @@ And('you are on the default registration page', () => { cy.visit('/#/new'); }); +Given('you are in the registration page with Ngelehun CHC org unit selected', () => { + cy.visit('/#/new?orgUnitId=DiszpKrYNg8'); +}); + And('there should be informative message explaining you need to select an organisation unit', () => { cy.get('[data-test="informative-paper"]') .contains('Choose a registering unit to start reporting') @@ -638,3 +642,20 @@ And('you delete the recently added tracked entity', () => { }); cy.url().should('include', 'selectedTemplateId=IpHINAT79UW'); }); + +And(/^you select (.*) from the available tracked entity types/, (selection) => { + cy.get('[data-test="dhis2-uicore-select-input"]') + .click(); + cy.contains(selection) + .click(); +}); + +And('you click the location button', () => { + cy.get('[data-test="mapIconButton"]') + .click(); +}); + +Then('the map opens', () => { + cy.get('.leaflet-container').should('exist'); +}); + diff --git a/src/core_modules/capture-core/components/DataEntries/TrackedEntityInstance/TrackedEntityInstanceDataEntry.component.js b/src/core_modules/capture-core/components/DataEntries/TrackedEntityInstance/TrackedEntityInstanceDataEntry.component.js index fad0f62845..b98d36f10e 100644 --- a/src/core_modules/capture-core/components/DataEntries/TrackedEntityInstance/TrackedEntityInstanceDataEntry.component.js +++ b/src/core_modules/capture-core/components/DataEntries/TrackedEntityInstance/TrackedEntityInstanceDataEntry.component.js @@ -10,6 +10,7 @@ import { import type { TeiRegistration } from '../../../metaData'; type FinalTeiDataEntryProps = { + orgUnitId: string, teiRegistrationMetadata: TeiRegistration, }; // final step before the generic dataEntry is inserted @@ -19,10 +20,11 @@ class FinalTeiDataEntry extends React.Component { } render() { - const { teiRegistrationMetadata, ...passOnProps } = this.props; + const { teiRegistrationMetadata, orgUnitId, ...passOnProps } = this.props; return ( ); @@ -62,7 +64,6 @@ export class PreTeiDataEntry extends React.Component { render() { const { - orgUnitId, trackedEntityTypeId, onUpdateField, onStartAsyncUpdateField, diff --git a/src/core_modules/capture-ui/CoordinateField/CoordinateField.component.js b/src/core_modules/capture-ui/CoordinateField/CoordinateField.component.js index 39bb978211..782b38b821 100644 --- a/src/core_modules/capture-ui/CoordinateField/CoordinateField.component.js +++ b/src/core_modules/capture-ui/CoordinateField/CoordinateField.component.js @@ -129,6 +129,7 @@ export class CoordinateField extends React.Component {
Date: Mon, 29 Apr 2024 15:47:33 +0000 Subject: [PATCH 14/18] chore(release): cut 100.68.4 [skip release] ## [100.68.4](https://github.com/dhis2/capture-app/compare/v100.68.3...v100.68.4) (2024-04-29) ### Bug Fixes * [DHIS2-17225] cannot add TET with polygon or coordiante ([#3618](https://github.com/dhis2/capture-app/issues/3618)) ([6a0bb73](https://github.com/dhis2/capture-app/commit/6a0bb73b2c9cfba5361e5bbb9b1f4218b3200cd3)) --- CHANGELOG.md | 7 +++++++ package.json | 4 ++-- packages/rules-engine/package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 00645f9d14..1417fead6f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [100.68.4](https://github.com/dhis2/capture-app/compare/v100.68.3...v100.68.4) (2024-04-29) + + +### Bug Fixes + +* [DHIS2-17225] cannot add TET with polygon or coordiante ([#3618](https://github.com/dhis2/capture-app/issues/3618)) ([6a0bb73](https://github.com/dhis2/capture-app/commit/6a0bb73b2c9cfba5361e5bbb9b1f4218b3200cd3)) + ## [100.68.3](https://github.com/dhis2/capture-app/compare/v100.68.2...v100.68.3) (2024-04-29) diff --git a/package.json b/package.json index 05d66c8d2f..d05bffd8e9 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "capture-app", "homepage": ".", - "version": "100.68.3", + "version": "100.68.4", "cacheVersion": "7", "serverVersion": "38", "license": "BSD-3-Clause", @@ -10,7 +10,7 @@ "packages/rules-engine" ], "dependencies": { - "@dhis2/rules-engine-javascript": "100.68.3", + "@dhis2/rules-engine-javascript": "100.68.4", "@dhis2/app-runtime": "^3.9.3", "@dhis2/d2-i18n": "^1.1.0", "@dhis2/d2-icons": "^1.0.1", diff --git a/packages/rules-engine/package.json b/packages/rules-engine/package.json index 52392d7986..2a1a73d42d 100644 --- a/packages/rules-engine/package.json +++ b/packages/rules-engine/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/rules-engine-javascript", - "version": "100.68.3", + "version": "100.68.4", "license": "BSD-3-Clause", "main": "./build/cjs/index.js", "scripts": { From 50480e4460572547320e610c749963bd68b7eb80 Mon Sep 17 00:00:00 2001 From: Simona Domnisoru Date: Tue, 30 Apr 2024 07:54:56 +0200 Subject: [PATCH 15/18] fix: [BETA-102] handle Arabic dates when registering with auto-generate events (#3621) --- .../helpers/deriveAutoGenerateEvents.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/deriveAutoGenerateEvents.js b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/deriveAutoGenerateEvents.js index eab301fe99..b9b9d32197 100644 --- a/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/deriveAutoGenerateEvents.js +++ b/src/core_modules/capture-core/components/Pages/New/RegistrationDataEntry/helpers/deriveAutoGenerateEvents.js @@ -59,11 +59,11 @@ export const deriveAutoGenerateEvents = ({ : { status: 'SCHEDULE', // for schedule type of events we want to add the standard interval days to the date - scheduledAt: convertClientToServer( - moment(dateToUseInScheduleStatus) - .add(minDaysFromStart, 'days') - .format('YYYY-MM-DD'), - dataElementTypes.DATE), + scheduledAt: convertClientToServer(moment(dateToUseInScheduleStatus) + .add(minDaysFromStart, 'days') + .format('YYYY-MM-DD'), + dataElementTypes.DATE, + ), }; return { From 95e208191fe79977bd07cd2c10e90c89ec10d755 Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Tue, 30 Apr 2024 06:01:37 +0000 Subject: [PATCH 16/18] chore(release): cut 100.68.5 [skip release] ## [100.68.5](https://github.com/dhis2/capture-app/compare/v100.68.4...v100.68.5) (2024-04-30) ### Bug Fixes * [BETA-102] handle Arabic dates when registering with auto-generate events ([#3621](https://github.com/dhis2/capture-app/issues/3621)) ([50480e4](https://github.com/dhis2/capture-app/commit/50480e4460572547320e610c749963bd68b7eb80)) --- CHANGELOG.md | 7 +++++++ package.json | 4 ++-- packages/rules-engine/package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1417fead6f..5c8a1a886a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [100.68.5](https://github.com/dhis2/capture-app/compare/v100.68.4...v100.68.5) (2024-04-30) + + +### Bug Fixes + +* [BETA-102] handle Arabic dates when registering with auto-generate events ([#3621](https://github.com/dhis2/capture-app/issues/3621)) ([50480e4](https://github.com/dhis2/capture-app/commit/50480e4460572547320e610c749963bd68b7eb80)) + ## [100.68.4](https://github.com/dhis2/capture-app/compare/v100.68.3...v100.68.4) (2024-04-29) diff --git a/package.json b/package.json index d05bffd8e9..13c3c975cc 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "capture-app", "homepage": ".", - "version": "100.68.4", + "version": "100.68.5", "cacheVersion": "7", "serverVersion": "38", "license": "BSD-3-Clause", @@ -10,7 +10,7 @@ "packages/rules-engine" ], "dependencies": { - "@dhis2/rules-engine-javascript": "100.68.4", + "@dhis2/rules-engine-javascript": "100.68.5", "@dhis2/app-runtime": "^3.9.3", "@dhis2/d2-i18n": "^1.1.0", "@dhis2/d2-icons": "^1.0.1", diff --git a/packages/rules-engine/package.json b/packages/rules-engine/package.json index 2a1a73d42d..7f0a6bccc0 100644 --- a/packages/rules-engine/package.json +++ b/packages/rules-engine/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/rules-engine-javascript", - "version": "100.68.4", + "version": "100.68.5", "license": "BSD-3-Clause", "main": "./build/cjs/index.js", "scripts": { From 535d43018eeb1c70b8756abc65bde974916d5e2a Mon Sep 17 00:00:00 2001 From: Tony Valle <79843014+superskip@users.noreply.github.com> Date: Tue, 30 Apr 2024 12:00:13 +0200 Subject: [PATCH 17/18] fix: [DHIS2-17195] implement d2:condition (#3615) --- .../src/d2Functions/getD2Functions.js | 23 ++++++++- .../src/d2Functions/getD2Functions.types.js | 7 +-- .../expressionService/executeExpression.js | 1 + .../ruleEffectsForEventProgram.test.js | 48 +++++++++++++++++++ 4 files changed, 75 insertions(+), 4 deletions(-) diff --git a/packages/rules-engine/src/d2Functions/getD2Functions.js b/packages/rules-engine/src/d2Functions/getD2Functions.js index 459238f447..7eab3a4821 100644 --- a/packages/rules-engine/src/d2Functions/getD2Functions.js +++ b/packages/rules-engine/src/d2Functions/getD2Functions.js @@ -1,8 +1,8 @@ // @flow - import log from 'loglevel'; import { getZScoreWFA, getZScoreWFH, getZScoreHFA } from './zScoreFunctions'; import { extractDataMatrixValue } from './gs1DataMatrixFuntions'; +import { executeExpression } from '../services/expressionService'; import type { D2FunctionsInput, D2Functions } from './getD2Functions.types'; @@ -303,4 +303,25 @@ export const getD2Functions = ({ return params[0]; }, }, + condition: { + parameters: 3, + execute: (params: any) => { + // The expression in params[0] was wrapped in quotation marks, + // so we need to evaluate it using executeExpression. + const dhisFunctions: D2Functions = getD2Functions({ + dateUtils, + variablesHash, + selectedOrgUnit, + selectedUserRoles, + }); + const result = executeExpression({ + expression: params[0], + dhisFunctions, + variablesHash, + onError: () => log.error(`Evaluation of d2:condition expression ${params[0]} failed`), + onVerboseLog: () => {}, + }); + return result ? params[1] : params[2]; + }, + }, }); diff --git a/packages/rules-engine/src/d2Functions/getD2Functions.types.js b/packages/rules-engine/src/d2Functions/getD2Functions.types.js index 4d2403997c..cb2fbcd0f5 100644 --- a/packages/rules-engine/src/d2Functions/getD2Functions.types.js +++ b/packages/rules-engine/src/d2Functions/getD2Functions.types.js @@ -19,10 +19,10 @@ type D2ParameterRange = {| export type D2Parameters = number | D2ParameterRange; -export type D2FunctionConfig = { +export type D2FunctionConfig = {| parameters?: D2Parameters, - execute: Function, -} + execute: (params: Array) => any, +|} export type D2Functions = $ReadOnly<{| ceil: D2FunctionConfig, floor: D2FunctionConfig, @@ -56,4 +56,5 @@ export type D2Functions = $ReadOnly<{| addControlDigits: D2FunctionConfig, checkControlDigits: D2FunctionConfig, multiTextContains: D2FunctionConfig, + condition: D2FunctionConfig, |}>; diff --git a/packages/rules-engine/src/services/expressionService/executeExpression.js b/packages/rules-engine/src/services/expressionService/executeExpression.js index cdd0a4f9a2..d820ebf0f8 100644 --- a/packages/rules-engine/src/services/expressionService/executeExpression.js +++ b/packages/rules-engine/src/services/expressionService/executeExpression.js @@ -189,6 +189,7 @@ export const executeExpression = ({ .replace(/'[^']*'|"[^"]*"/g, match => ' '.repeat(match.length)); const applicableDhisFunctions = Object.entries(dhisFunctions).map(([key, value]) => ({ ...value, name: key })); answer = internalExecuteExpression( + // $FlowExpectedError { dhisFunctionsObject: dhisFunctions, applicableDhisFunctions }, removeNewLinesFromNonStrings(expressionWithInjectedVariableValues, expressionModuloStrings), onError, diff --git a/src/core_modules/capture-core/rules/__tests__/ruleEffectsForEventProgram.test.js b/src/core_modules/capture-core/rules/__tests__/ruleEffectsForEventProgram.test.js index 77c631223a..08423e2131 100644 --- a/src/core_modules/capture-core/rules/__tests__/ruleEffectsForEventProgram.test.js +++ b/src/core_modules/capture-core/rules/__tests__/ruleEffectsForEventProgram.test.js @@ -1659,6 +1659,7 @@ describe('Event rules engine effects with functions and effects', () => { id: 'isP0uvT24jf', displayContent: "d2:yearsBetween( '2010-01-28', V{event_date}) =", data: "d2:yearsBetween( '2010-01-28', V{event_date})", + location: 'feedback', programRuleActionType: 'DISPLAYTEXT', }, { @@ -1829,6 +1830,20 @@ describe('Event rules engine effects with functions and effects', () => { location: 'feedback', programRuleActionType: 'DISPLAYTEXT', }, + { + id: 'enZhulwjMED', + displayContent: "d2:condition('1 == 2', 'equal', 'not equal') = ", + data: "d2:condition('1 == 2', 'equal', 'not equal')", + location: 'feedback', + programRuleActionType: 'DISPLAYTEXT', + }, + { + id: 'i2UOFxZJo4a', + displayContent: "d2:condition('2 == 2', 'equal', 'not equal') = ", + data: "d2:condition('2 == 2', 'equal', 'not equal')", + location: 'feedback', + programRuleActionType: 'DISPLAYTEXT', + }, ], }, ]; @@ -1893,6 +1908,7 @@ describe('Event rules engine effects with functions and effects', () => { [ { type: 'DISPLAYTEXT', + id: 'feedback', displayText: { id: 'isP0uvT24jf', message: "d2:yearsBetween( '2010-01-28', V{event_date}) = " }, }, { @@ -2017,6 +2033,16 @@ describe('Event rules engine effects with functions and effects', () => { id: 'feedback', displayText: { id: 'EojHcBMpW7q', message: 'd2:hasValue( #{age} ) = ' }, }, + { + type: 'DISPLAYTEXT', + id: 'feedback', + displayText: { id: 'enZhulwjMED', message: "d2:condition('1 == 2', 'equal', 'not equal') = not equal" }, + }, + { + type: 'DISPLAYTEXT', + id: 'feedback', + displayText: { id: 'i2UOFxZJo4a', message: "d2:condition('2 == 2', 'equal', 'not equal') = equal" }, + }, ], ], [ @@ -2028,6 +2054,7 @@ describe('Event rules engine effects with functions and effects', () => { [ { type: 'DISPLAYTEXT', + id: 'feedback', displayText: { id: 'isP0uvT24jf', message: "d2:yearsBetween( '2010-01-28', V{event_date}) = 10" }, }, { @@ -2156,6 +2183,16 @@ describe('Event rules engine effects with functions and effects', () => { id: 'feedback', displayText: { id: 'EojHcBMpW7q', message: 'd2:hasValue( #{age} ) = true' }, }, + { + type: 'DISPLAYTEXT', + id: 'feedback', + displayText: { id: 'enZhulwjMED', message: "d2:condition('1 == 2', 'equal', 'not equal') = not equal" }, + }, + { + type: 'DISPLAYTEXT', + id: 'feedback', + displayText: { id: 'i2UOFxZJo4a', message: "d2:condition('2 == 2', 'equal', 'not equal') = equal" }, + }, ], ], [ @@ -2167,6 +2204,7 @@ describe('Event rules engine effects with functions and effects', () => { [ { type: 'DISPLAYTEXT', + id: 'feedback', displayText: { id: 'isP0uvT24jf', message: "d2:yearsBetween( '2010-01-28', V{event_date}) = 10" }, }, { @@ -2295,6 +2333,16 @@ describe('Event rules engine effects with functions and effects', () => { id: 'feedback', displayText: { id: 'EojHcBMpW7q', message: 'd2:hasValue( #{age} ) = true' }, }, + { + type: 'DISPLAYTEXT', + id: 'feedback', + displayText: { id: 'enZhulwjMED', message: "d2:condition('1 == 2', 'equal', 'not equal') = not equal" }, + }, + { + type: 'DISPLAYTEXT', + id: 'feedback', + displayText: { id: 'i2UOFxZJo4a', message: "d2:condition('2 == 2', 'equal', 'not equal') = equal" }, + }, ], ], ])('where functions take place', (currentEvent, expected) => { From a5b2aedd469ce5218a57cbfdfda9413caecc397f Mon Sep 17 00:00:00 2001 From: "@dhis2-bot" Date: Tue, 30 Apr 2024 10:05:28 +0000 Subject: [PATCH 18/18] chore(release): cut 100.68.6 [skip release] ## [100.68.6](https://github.com/dhis2/capture-app/compare/v100.68.5...v100.68.6) (2024-04-30) ### Bug Fixes * [DHIS2-17195] implement d2:condition ([#3615](https://github.com/dhis2/capture-app/issues/3615)) ([535d430](https://github.com/dhis2/capture-app/commit/535d43018eeb1c70b8756abc65bde974916d5e2a)) --- CHANGELOG.md | 7 +++++++ package.json | 4 ++-- packages/rules-engine/package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5c8a1a886a..efc0243e1f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [100.68.6](https://github.com/dhis2/capture-app/compare/v100.68.5...v100.68.6) (2024-04-30) + + +### Bug Fixes + +* [DHIS2-17195] implement d2:condition ([#3615](https://github.com/dhis2/capture-app/issues/3615)) ([535d430](https://github.com/dhis2/capture-app/commit/535d43018eeb1c70b8756abc65bde974916d5e2a)) + ## [100.68.5](https://github.com/dhis2/capture-app/compare/v100.68.4...v100.68.5) (2024-04-30) diff --git a/package.json b/package.json index 13c3c975cc..969be1017e 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "capture-app", "homepage": ".", - "version": "100.68.5", + "version": "100.68.6", "cacheVersion": "7", "serverVersion": "38", "license": "BSD-3-Clause", @@ -10,7 +10,7 @@ "packages/rules-engine" ], "dependencies": { - "@dhis2/rules-engine-javascript": "100.68.5", + "@dhis2/rules-engine-javascript": "100.68.6", "@dhis2/app-runtime": "^3.9.3", "@dhis2/d2-i18n": "^1.1.0", "@dhis2/d2-icons": "^1.0.1", diff --git a/packages/rules-engine/package.json b/packages/rules-engine/package.json index 7f0a6bccc0..4977088ef3 100644 --- a/packages/rules-engine/package.json +++ b/packages/rules-engine/package.json @@ -1,6 +1,6 @@ { "name": "@dhis2/rules-engine-javascript", - "version": "100.68.5", + "version": "100.68.6", "license": "BSD-3-Clause", "main": "./build/cjs/index.js", "scripts": {