Skip to content

Commit 8b02d1c

Browse files
authored
Merge pull request #2292 from tekdi/feat-prod-fix
Feat prod fix
2 parents af1c11d + 3e03d89 commit 8b02d1c

File tree

10 files changed

+104
-63
lines changed

10 files changed

+104
-63
lines changed

mfes/scp-teacher-repo/src/components/AttendanceDetails.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ export const fetchAttendanceDetails = async (
100100
if (newArray.length !== 0) {
101101
numberOfCohortMembers = newArray.filter(member => member.memberStatus === Status.ACTIVE || member.attendance !== '' ||
102102
(member.memberStatus === Status.DROPOUT && shortDateFormat(new Date(member.updatedAt)) > shortDateFormat(new Date(selectedDate)))||
103+
(member.memberStatus === "reassigned" && shortDateFormat(new Date(member.updatedAt)) > shortDateFormat(new Date(selectedDate)))||
103104
(member.memberStatus === Status.ARCHIVED && shortDateFormat(new Date(member.updatedAt)) > shortDateFormat(new Date(selectedDate)))).length;
104105
cohortMemberList = newArray;
105106
presentCount = getPresentCount(newArray);
@@ -109,16 +110,19 @@ export const fetchAttendanceDetails = async (
109110
if (hasDropout) {
110111
cohortMemberList = newArray.filter((user) => user.memberStatus === Status.ACTIVE ||
111112
(user.memberStatus === Status.DROPOUT && shortDateFormat(new Date(user.updatedAt)) > shortDateFormat(new Date(selectedDate)))||
113+
(user.memberStatus === "reassigned" && shortDateFormat(new Date(user.updatedAt)) > shortDateFormat(new Date(selectedDate)))||
112114
(user.memberStatus === Status.ARCHIVED && shortDateFormat(new Date(user.updatedAt)) > shortDateFormat(new Date(selectedDate))));
113115
dropoutMemberList = newArray.filter((user) => user.memberStatus === Status.DROPOUT && shortDateFormat(new Date(user.updatedAt)) <= shortDateFormat(new Date(selectedDate)));
114116
dropoutCount = dropoutMemberList.length;
115117
}
116118
} else {
117119
cohortMemberList = nameUserIdArray.filter((user) => user.memberStatus === Status.ACTIVE ||
120+
(user.memberStatus === "reassigned" && shortDateFormat(new Date(user.updatedAt)) > shortDateFormat(new Date(selectedDate)))||
118121
(user.memberStatus === Status.DROPOUT && shortDateFormat(new Date(user.updatedAt)) > shortDateFormat(new Date(selectedDate)))||
119122
(user.memberStatus === Status.ARCHIVED && shortDateFormat(new Date(user.updatedAt)) > shortDateFormat(new Date(selectedDate))));
120123
dropoutMemberList = nameUserIdArray.filter((user) => user.memberStatus === Status.DROPOUT && shortDateFormat(new Date(user.updatedAt)) <= shortDateFormat(new Date(selectedDate)));
121124
numberOfCohortMembers = nameUserIdArray.filter(member => member.memberStatus === Status.ACTIVE || (member.memberStatus === Status.DROPOUT && shortDateFormat(new Date(member.updatedAt)) > shortDateFormat(new Date(selectedDate)))||
125+
(member.memberStatus === "reassigned" && shortDateFormat(new Date(member.updatedAt)) > shortDateFormat(new Date(selectedDate)))||
122126
(member.memberStatus === Status.ARCHIVED && shortDateFormat(new Date(member.updatedAt)) > shortDateFormat(new Date(selectedDate)))).length;
123127
}
124128

mfes/scp-teacher-repo/src/components/CohortLearnerList.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,9 @@ const CohortLearnerList: React.FC<CohortLearnerListProp> = ({
6262
const resp = response?.result?.userDetails;
6363

6464
if (resp) {
65-
const userDetails = resp.map((user: any) => {
65+
// Filter out reassigned users
66+
const filteredResp = resp.filter((user: any) => user.status !== "reassigned");
67+
const userDetails = filteredResp.map((user: any) => {
6668
const ageField = user.customField.find(
6769
(field: { label: string }) => field.label === 'AGE'
6870
);

mfes/scp-teacher-repo/src/components/EntityForms/AddEditUser/AddEditUser.tsx

Lines changed: 56 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import {
2222
updateCohortUpdate,
2323
updateReassignUser,
2424
} from '@/services/CohortService/cohortService';
25-
import { RoleId , TENANT_DATA} from '@/utils/app.constant';
25+
import { RoleId, TENANT_DATA } from '@/utils/app.constant';
2626
import _ from 'lodash';
2727
import { fetchAttendanceStats } from '@/utils/helperAttendanceStatApi';
2828
const AddEditUser = ({
@@ -55,9 +55,9 @@ const AddEditUser = ({
5555
hideSubmit,
5656
setButtonShow,
5757
isSteeper,
58-
parentData=[]
58+
parentData = [],
5959
}) => {
60-
console.log("parentData=======>", parentData)
60+
console.log('parentData=======>', parentData);
6161
const [isLoading, setIsLoading] = useState(false);
6262
const [showAssignmentScreen, setShowAssignmentScreen] =
6363
useState<boolean>(false);
@@ -122,20 +122,20 @@ const AddEditUser = ({
122122
'grade',
123123
'center',
124124
'program',
125-
// 'class',
126-
// 'marital_status',
127-
// 'phone_type_available',
128-
// 'own_phone_check',
129-
130-
// 'ownphonecheck',
131-
// 'parent_phone',
132-
// 'preferred_mode_of_learning',
125+
// 'class',
126+
// 'marital_status',
127+
// 'phone_type_available',
128+
// 'own_phone_check',
129+
130+
// 'ownphonecheck',
131+
// 'parent_phone',
132+
// 'preferred_mode_of_learning',
133133
//'drop_out_reason',
134-
// 'work_domain',
135-
// 'what_do_you_want_to_become',
136-
// 'guardian_name',
137-
// 'guardian_relation',
138-
// 'dob',
134+
// 'work_domain',
135+
// 'what_do_you_want_to_become',
136+
// 'guardian_name',
137+
// 'guardian_relation',
138+
// 'dob',
139139
];
140140
} else {
141141
keysToRemove = [
@@ -161,10 +161,15 @@ const AddEditUser = ({
161161
isEditSchema.required = isEditSchema.required.filter(
162162
(key: any) => !keysToRemove.includes(key)
163163
);
164-
164+
165165
// Disable name fields and username for learner editing
166166
if (type === 'learner' && isEdit) {
167-
const fieldsToDisable = ['firstName', 'middleName', 'lastName', 'username'];
167+
const fieldsToDisable = [
168+
'firstName',
169+
'middleName',
170+
'lastName',
171+
'username',
172+
];
168173
fieldsToDisable.forEach((fieldName) => {
169174
if (isEditUiSchema[fieldName]) {
170175
isEditUiSchema[fieldName] = {
@@ -174,10 +179,8 @@ const AddEditUser = ({
174179
}
175180
});
176181
}
177-
// console.log('isEditSchema', JSON.stringify(isEditSchema));
178-
}
179-
180-
else if (isReassign) {
182+
// console.log('isEditSchema', JSON.stringify(isEditSchema));
183+
} else if (isReassign) {
181184
let originalRequired = isEditSchema.required;
182185
const keysToHave = [
183186
'state',
@@ -230,10 +233,10 @@ const AddEditUser = ({
230233
'middleName',
231234
'lastName',
232235
'username',
233-
236+
234237
'gender',
235238
'dob',
236-
'mobile',
239+
'mobile',
237240
'guardian_name',
238241
'guardian_relation',
239242
'parent_phone',
@@ -244,7 +247,7 @@ const AddEditUser = ({
244247
'class',
245248
'marital_status',
246249
'phone_type_accessible',
247-
// 'own_phone_check',
250+
// 'own_phone_check',
248251
'ownphonecheck',
249252

250253
'password',
@@ -271,17 +274,20 @@ const AddEditUser = ({
271274
const isBelow18 = (dob: any) => {
272275
const birthDate = new Date(dob);
273276
const today = new Date();
274-
277+
275278
let age = today.getFullYear() - birthDate.getFullYear();
276279
const monthDiff = today.getMonth() - birthDate.getMonth();
277-
278-
if (monthDiff < 0 || (monthDiff === 0 && today.getDate() < birthDate.getDate())) {
280+
281+
if (
282+
monthDiff < 0 ||
283+
(monthDiff === 0 && today.getDate() < birthDate.getDate())
284+
) {
279285
age--;
280286
}
281-
287+
282288
return age < 18;
283289
};
284-
290+
285291
const FormSubmitFunction = async (formData: any, payload: any) => {
286292
setPrefilledFormData(formData);
287293
console.log(formData, 'formdata');
@@ -327,8 +333,8 @@ const AddEditUser = ({
327333
userData: userData,
328334
customFields: customFields,
329335
};
330-
if(!isBelow18(userData?.dob)){
331-
object.customFields=[...parentData,...customFields]
336+
if (!isBelow18(userData?.dob)) {
337+
object.customFields = [...parentData, ...customFields];
332338
}
333339
console.log('object===>', object);
334340
const updateUserResponse = await updateUser(editableUserId, object);
@@ -341,7 +347,9 @@ const AddEditUser = ({
341347
showToastMessage(t(successUpdateMessage), 'success');
342348
telemetryCallbacks(telemetryUpdateKey);
343349

344-
UpdateSuccessCallback();
350+
if (typeof UpdateSuccessCallback === 'function') {
351+
UpdateSuccessCallback();
352+
}
345353
// localStorage.removeItem('BMGSData');
346354
} else {
347355
// console.error('Error update user:', error);
@@ -363,7 +371,9 @@ const AddEditUser = ({
363371
showToastMessage(t(successUpdateMessage), 'success');
364372
telemetryCallbacks(telemetryUpdateKey);
365373

366-
UpdateSuccessCallback();
374+
if (typeof UpdateSuccessCallback === 'function') {
375+
UpdateSuccessCallback();
376+
}
367377
} else {
368378
// console.error('Error update user:', error);
369379
showToastMessage(t(failureUpdateMessage), 'error');
@@ -413,7 +423,9 @@ const AddEditUser = ({
413423
}
414424
showToastMessage(t(successUpdateMessage), 'success');
415425
telemetryCallbacks(telemetryUpdateKey);
416-
UpdateSuccessCallback();
426+
if (typeof UpdateSuccessCallback === 'function') {
427+
UpdateSuccessCallback();
428+
}
417429
} else {
418430
// console.error('Error reassigning user:', error);
419431
showToastMessage(t(failureUpdateMessage), 'error');
@@ -471,7 +483,9 @@ const AddEditUser = ({
471483
showToastMessage(t(successCreateMessage), 'success');
472484

473485
telemetryCallbacks(telemetryCreateKey);
474-
SuccessCallback();
486+
if (typeof SuccessCallback === 'function') {
487+
SuccessCallback();
488+
}
475489

476490
// Send Notification with credentials to user
477491
try {
@@ -509,7 +523,9 @@ const AddEditUser = ({
509523
if (centerCreation) {
510524
showToastMessage(t(successCreateMessage), 'success');
511525
telemetryCallbacks(telemetryCreateKey);
512-
SuccessCallback();
526+
if (typeof SuccessCallback === 'function') {
527+
SuccessCallback();
528+
}
513529
} else {
514530
showToastMessage(t(failureCreateMessage), 'error');
515531
}
@@ -540,7 +556,9 @@ const AddEditUser = ({
540556
setShowAssignmentScreen(false);
541557
// setButtonShow(true)
542558
setFormData({});
543-
SuccessCallback();
559+
if (typeof SuccessCallback === 'function') {
560+
SuccessCallback();
561+
}
544562
};
545563
return (
546564
// <>

mfes/scp-teacher-repo/src/components/LearnersListItem.tsx

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -707,14 +707,20 @@ const LearnersListItem: React.FC<LearnerListProps> = ({
707707
),
708708
name: 'delete-User',
709709
},
710-
].filter(
711-
(option) =>
710+
].filter((option) => {
711+
// If isDropout is true, only show unmark-drop-out option
712+
if (isDropout) {
713+
return option.name === 'unmark-drop-out';
714+
}
715+
// Otherwise, apply existing filter logic
716+
return (
712717
(type === Role.STUDENT ||
713718
(option.name !== 'mark-drop-out' &&
714719
option.name !== 'unmark-drop-out')) &&
715720
(!(isFromProfile || isDropout) ||
716721
option.name !== 'reassign-centers')
717-
)
722+
);
723+
})
718724
: [
719725
// Only TL will see this option
720726
...(loggedInUserRole === Role.TEAM_LEADER
@@ -750,14 +756,20 @@ const LearnersListItem: React.FC<LearnerListProps> = ({
750756
),
751757
name: 'delete-User',
752758
},
753-
].filter(
754-
(option) =>
759+
].filter((option) => {
760+
// If isDropout is true, only show unmark-drop-out option
761+
if (isDropout) {
762+
return option.name === 'unmark-drop-out';
763+
}
764+
// Otherwise, apply existing filter logic
765+
return (
755766
(type === Role.STUDENT ||
756767
(option.name !== 'mark-drop-out' &&
757768
option.name !== 'unmark-drop-out')) &&
758769
(!(isFromProfile || isDropout) ||
759770
option.name !== 'reassign-centers')
760-
)
771+
);
772+
})
761773
}
762774
renderCustomContent={renderCustomContent}
763775
/>

mfes/scp-teacher-repo/src/pages/attendance-history.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,7 @@ const UserAttendanceHistory = () => {
275275
const currentDate = new Date(selectedDate);
276276
currentDate.setHours(0, 0, 0, 0);
277277
if (
278-
member.memberStatus === Status.ARCHIVED &&
278+
(member.memberStatus === Status.ARCHIVED || member.memberStatus === "reassigned") &&
279279
updatedAt <= currentDate
280280
) {
281281
return false;

mfes/scp-teacher-repo/src/pages/centers/[cohortId]/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,7 @@ const CohortPage = () => {
369369
});
370370
if (learnerResponse?.result?.userDetails) {
371371
setCohortLearnerListCount(
372-
learnerResponse?.result?.userDetails.length
372+
learnerResponse?.result?.userDetails.filter((user: any) => user.status !== "reassigned").length
373373
);
374374
} else {
375375
setCohortLearnerListCount(0);

mfes/scp-teacher-repo/src/pages/dashboard.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,7 @@ const Dashboard: React.FC<DashboardProps> = () => {
332332
const currentDate = new Date(selectedDate);
333333
currentDate.setHours(0, 0, 0, 0);
334334
if (
335-
member.memberStatus === Status.ARCHIVED &&
335+
(member.memberStatus === Status.ARCHIVED || member.memberStatus === "reassigned") &&
336336
updatedAt <= currentDate
337337
) {
338338
return false;

mfes/scp-teacher-repo/src/services/MyClassDetailsService.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ export const getMyCohortMemberList = async ({
5555
filters,
5656
includeArchived = false,
5757
}: CohortMemberList & { includeArchived?: boolean }): Promise<any> => {
58-
const statusFilters = [Status.DROPOUT, Status.ACTIVE];
58+
const statusFilters = [Status.DROPOUT, Status.ACTIVE, "reassigned"];
5959
if (includeArchived) {
6060
statusFilters.push(Status.ARCHIVED);
6161
}

mfes/scp-teacher-repo/src/shared/LearnerManage/LearnerManage.tsx

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -184,20 +184,20 @@ const LearnerManage = ({
184184
if (isEditProfile) {
185185
const user = await getUserDetails(userId, true);
186186
const targetLabels = [
187-
"RELATION_WITH_GUARDIAN",
188-
"PARENT_GUARDIAN_PHONE_NO",
189-
"NAME_OF_GUARDIAN"
187+
'RELATION_WITH_GUARDIAN',
188+
'PARENT_GUARDIAN_PHONE_NO',
189+
'NAME_OF_GUARDIAN',
190190
];
191-
191+
192192
// Step 1: Find matching fieldIds
193-
const fieldIds = user?.result?.userData?.customFields?.filter(item => targetLabels.includes(item.label))
194-
.map(item => item.fieldId);
195-
193+
const fieldIds = user?.result?.userData?.customFields
194+
?.filter((item) => targetLabels.includes(item.label))
195+
.map((item) => item.fieldId);
196196

197-
console.log('##### user', user?.result?.userData?.customFields);
198-
const result = fieldIds?.map(id => ({
197+
console.log('##### user', user?.result?.userData?.customFields);
198+
const result = fieldIds?.map((id) => ({
199199
fieldId: id,
200-
value: ""
200+
value: '',
201201
}));
202202
setParentData(result);
203203
let tempFormData = extractMatchingKeys(
@@ -324,7 +324,9 @@ const LearnerManage = ({
324324
<AddEditUser
325325
SuccessCallback={() => {
326326
onClose();
327-
onLearnerAdded();
327+
if (typeof onLearnerAdded === 'function') {
328+
onLearnerAdded();
329+
}
328330
setOpenModal(false);
329331
}}
330332
schema={isEditProfile ? addEditSchema : addSchema}
@@ -338,7 +340,9 @@ const LearnerManage = ({
338340
}
339341
UpdateSuccessCallback={() => {
340342
onClose();
341-
onLearnerAdded();
343+
if (typeof onLearnerAdded === 'function') {
344+
onLearnerAdded();
345+
}
342346
setOpenModal(false);
343347
}}
344348
extraFields={extraFields}

0 commit comments

Comments
 (0)