Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Release 3.3.4-alpha #1858

Merged
merged 31 commits into from
Feb 19, 2025
Merged

Release 3.3.4-alpha #1858

merged 31 commits into from
Feb 19, 2025

Conversation

mpgxvii
Copy link
Member

@mpgxvii mpgxvii commented Feb 14, 2025

  • Allow task info visibility to be configurable in remote config (needed for studies where showing the number of questions and est time of completion of a task is not necessary)
  • Also allow slider and yesno input to be a matrix type (allow showing multiple slider questions in one page)
  • Update date input to be DD/MM/YYYY format
  • Add explicit check for changes in MP participant attributes (for changes in protocol, etc)
  • Ensure storage service is ready before app initialisation
  • Decode iat in token if not present in response (e.g. for ory tokens)
  • Fixed schema versions persisting even when enrolling on a separate platform instance
  • Add iOS Privacy Manifest (required for new updates)
  • Update dependencies

Copy link
Member

@yatharthranjan yatharthranjan left a comment

Choose a reason for hiding this comment

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

Thanks. Mostly looks good to me. Just some minor comments below.

@@ -127,6 +128,10 @@ export class TasksService {
return task.completed && this.isToday(task.timeCompleted)
}

wasTaskValidToday(task) {
return this.isToday(task.timestamp)
Copy link
Member

Choose a reason for hiding this comment

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

what is the reason for this check?

Copy link
Member

Choose a reason for hiding this comment

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

will this still work if completion window is long, so the task timestamp is before today?

Copy link
Member Author

Choose a reason for hiding this comment

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

I added the check to the getTasks method:

t => !this.isTaskExpired(t) || this.wasTaskCompletedToday(t) || this.wasTaskValidToday(t)

It will check if the task is not expired (if the completion window is long), if the task was completed today, and if the task was valid today. This was to keep expired tasks if they were valid in the same day to keep track of task progress of the day. Otherwise, they are not included in the day's progress.

@@ -281,7 +287,7 @@ export class QuestionsPageComponent implements OnInit {
const currentQs = this.getCurrentQuestions()
if (!currentQs) return
this.isRightButtonDisabled =
!this.questionsService.isAnyAnswered(currentQs) &&
!this.questionsService.areAllAnswered(currentQs) &&
!this.questionsService.getIsAnyNextEnabled(currentQs)
Copy link
Member

Choose a reason for hiding this comment

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

Could there be cases even in matrix types where some questions are required but some are optional on the same page?

Copy link
Member Author

Choose a reason for hiding this comment

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

Yes, but we currently don't support whether individual questions are required. They are configured per input type. But yes we can add support for this since it is a field in the Redcap questionnaire.

value = {}
DEFAULT_DATE_FORMAT = 'DD/MM/YYYY'
Copy link
Member

Choose a reason for hiding this comment

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

I think this is enough for now, but would be good to do this via remote config (or protocol). Please create an issue so it can be handled later.

Copy link
Member Author

Choose a reason for hiding this comment

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

Added here: #1859

@@ -83,5 +83,10 @@
</array>
<key>UIViewControllerBasedStatusBarAppearance</key>
<true/>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
Copy link
Member

Choose a reason for hiding this comment

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

what is this needed for (http urls?). I assume this will this be less secure?
If required i would like this to be configurable per project like we do in the pRMT app through remote config (by default it should be secure option)

Copy link
Member Author

Choose a reason for hiding this comment

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

Ah yes I was just copying this from the dev branch because I thought it was needed. Removed now.

@mpgxvii mpgxvii merged commit d4c85b4 into master Feb 19, 2025
4 checks passed
@mpgxvii mpgxvii deleted the release-3.3.4-alpha2 branch February 19, 2025 11:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants