Skip to content

Commit

Permalink
avniproject/avni-webapp#1263 | Add recentDuration input for 'Recent' …
Browse files Browse the repository at this point in the history
…type Standard Report Cards
  • Loading branch information
1t5j0y committed Jun 28, 2024
1 parent 86f72cf commit ce27941
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 7 deletions.
17 changes: 16 additions & 1 deletion src/ReportCard.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@ class ReportCard extends BaseEntity {
countOfCards: {type: "int", default: 1, optional: true}, //Used only by nested ReportCards
standardReportCardInputSubjectTypes: {type: "list", objectType: "SubjectType"},
standardReportCardInputPrograms: {type: "list", objectType: "Program"},
standardReportCardInputEncounterTypes: {type: "list", objectType: "EncounterType"}
standardReportCardInputEncounterTypes: {type: "list", objectType: "EncounterType"},
standardReportCardInputRecentDurationJSON: {type: "string", optional: true}
},
};

Expand All @@ -32,6 +33,7 @@ class ReportCard extends BaseEntity {
reportCard.standardReportCardInputSubjectTypes = [];
reportCard.standardReportCardInputPrograms = [];
reportCard.standardReportCardInputEncounterTypes = [];
reportCard.standardReportCardInputRecentDuration = null;
return reportCard;
}

Expand Down Expand Up @@ -132,6 +134,14 @@ class ReportCard extends BaseEntity {
this.that.standardReportCardInputEncounterTypes = this.fromEntityList(x);
}

get standardReportCardInputRecentDurationJSON() {
return JSON.parse(this.that.standardReportCardInputRecentDurationJSON);
}

set standardReportCardInputRecentDurationJSON(x) {
this.that.standardReportCardInputRecentDurationJSON = x;
}

/**
* Helper method used to generate unique key value for Nested Report Cards using UUID and Index of the Report Card.
* The Nested Report Card's query responses would be mapped to the corresponding Dashboard Report cards using the UUID and Index.
Expand Down Expand Up @@ -172,6 +182,7 @@ class ReportCard extends BaseEntity {
resource.standardReportCardInputEncounterTypes.forEach(uuid => {
reportCard.standardReportCardInputEncounterTypes.push(entityService.findByUUID(uuid, EncounterType.schema.name));
});
reportCard.standardReportCardInputRecentDurationJSON = resource.standardReportCardInputRecentDuration;

return reportCard;
}
Expand All @@ -187,6 +198,10 @@ class ReportCard extends BaseEntity {
isSubjectTypeFilterSupported() {
return this.isStandardReportType() && this.standardReportCardType.isSubjectTypeFilterSupported();
}

isRecentType() {
return this.isStandardReportType() && this.standardReportCardType.isRecentType();
}
}

export default ReportCard;
2 changes: 1 addition & 1 deletion src/Schema.js
Original file line number Diff line number Diff line change
Expand Up @@ -252,7 +252,7 @@ function createRealmConfig() {
return doCompact;
},
//order is important, should be arranged according to the dependency
schemaVersion: 192,
schemaVersion: 193,
onMigration: function (oldDB, newDB) {
console.log("[AvniModels.Schema]", `Running migration with old schema version: ${oldDB.schemaVersion} and new schema version: ${newDB.schemaVersion}`);
if (oldDB.schemaVersion === VersionWithEmbeddedMigrationProblem)
Expand Down
30 changes: 25 additions & 5 deletions src/StandardReportCardType.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,16 +42,22 @@ class StandardReportCardType extends BaseEntity {
Rejected: "Rejected",
ScheduledVisits: "Scheduled visits",
OverdueVisits: "Overdue visits",
LatestRegistrations: "Last 24 hours registrations",
LatestEnrolments: "Last 24 hours enrolments",
LatestVisits: "Last 24 hours visits",
RecentRegistrations: "Recent registrations",
RecentEnrolments: "Recent enrolments",
RecentVisits: "Recent visits",
Total: "Total",
Comments: "Comments",
CallTasks: "Call tasks",
OpenSubjectTasks: "Open subject tasks",
DueChecklist: "Due checklist",
};

static recentCardDurationUnits = [
"days",
"weeks",
"months"
]

get iconName() {
const typeIcon = {
[StandardReportCardType.type.Approved]: 'check-circle',
Expand Down Expand Up @@ -94,7 +100,7 @@ class StandardReportCardType extends BaseEntity {
}

defaultTypes() {
return [StandardReportCardType.type.ScheduledVisits, StandardReportCardType.type.OverdueVisits, StandardReportCardType.type.LatestRegistrations, StandardReportCardType.type.LatestEnrolments, StandardReportCardType.type.LatestVisits, StandardReportCardType.type.Total]
return [StandardReportCardType.type.ScheduledVisits, StandardReportCardType.type.OverdueVisits, StandardReportCardType.type.RecentRegistrations, StandardReportCardType.type.RecentEnrolments, StandardReportCardType.type.RecentVisits, StandardReportCardType.type.Total]
}

isApprovalType() {
Expand Down Expand Up @@ -131,7 +137,21 @@ class StandardReportCardType extends BaseEntity {
}

isSubjectTypeFilterSupported() {
return [StandardReportCardType.type.ScheduledVisits, StandardReportCardType.type.OverdueVisits].includes(this.name);
return [
StandardReportCardType.type.ScheduledVisits,
StandardReportCardType.type.OverdueVisits,
StandardReportCardType.type.RecentRegistrations,
StandardReportCardType.type.RecentEnrolments,
StandardReportCardType.type.RecentVisits,
].includes(this.name);
}

isRecentType() {
return [
StandardReportCardType.type.RecentRegistrations,
StandardReportCardType.type.RecentEnrolments,
StandardReportCardType.type.RecentVisits,
].includes(this.name);
}
}

Expand Down

0 comments on commit ce27941

Please sign in to comment.