Skip to content

Commit bd35136

Browse files
authored
Merge pull request #2182 from AkshataKatwal16/12-new-changes
Issue feat: Add retension for manual assessment filter, sort content for up for review list by lastupdated date, change courseplanner success message colour
2 parents 34335bc + 1f19973 commit bd35136

File tree

5 files changed

+99
-19
lines changed

5 files changed

+99
-19
lines changed

apps/admin-app-repo/src/components/CoursePlan/CoursePlanForm.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,7 @@ const CoursePlanForm: React.FC<CoursePlanFormProps> = ({
287287
if (response) {
288288
showSnackbar({
289289
text: t(`Sub Topic has been successfully deleted`),
290-
bgColor: '#BA1A1A',
290+
bgColor: '#019722',
291291
textColor: '#fff',
292292
icon: <CheckCircleOutlineOutlinedIcon />, //ErrorOutlinedIcon
293293
});

mfes/content/src/components/Content/List.tsx

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,11 @@ export default function Content(props: Readonly<ContentProps>) {
311311
// }
312312
if(props.onTotalCountChange)
313313
{
314+
//console.log("hellooo")
315+
// filter.primaryCategory = [
316+
// 'Learning Resource','Practice Question Set','Activity','Story'];
317+
console.log("filter====>" , filter);
318+
314319
resultResponse = await ContentSearch({
315320
...filter,
316321
offset: adjustedOffset,
@@ -319,7 +324,8 @@ export default function Content(props: Readonly<ContentProps>) {
319324
primaryCategory: ['Course'],
320325
});
321326
}
322-
else{
327+
else{
328+
323329
resultResponse = await ContentSearch({
324330
...filter,
325331
offset: adjustedOffset,
@@ -330,15 +336,29 @@ export default function Content(props: Readonly<ContentProps>) {
330336
}
331337

332338

333-
if (resultResponse?.result?.count) {
339+
if(props.onTotalCountChange) {
340+
console.log("hellooo")
341+
// filter.primaryCategory = [
342+
// 'Learning Resource','Practice Question Set','Activity','Story'];
343+
console.log("filter====>" , filter);
334344

335-
setTotalCount(resultResponse?.result?.count);
336-
if(props.setTotalResources)
345+
const resultResponse2 = await ContentSearch({
346+
...filter,
347+
offset: adjustedOffset,
348+
limit: adjustedLimit,
349+
signal: controller.signal,
350+
primaryCategory: [
351+
'Learning Resource','Practice Question Set','Activity','Story'],
352+
});
353+
354+
setTotalCount(resultResponse2?.result?.count);
355+
}
356+
if(props.setTotalResources && resultResponse?.result?.count)
337357
{
338358
props.setTotalResources(resultResponse?.result?.count);
339359
}
340360

341-
}
361+
342362

343363
const response = resultResponse?.result;
344364
if (props?._config?.getContentData) {

mfes/content/src/services/Search.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,13 +125,15 @@ export const ContentSearch = async ({
125125
limit = 5,
126126
offset = 0,
127127
noPrimaryCategory = false,
128+
primaryCategory,
128129
}: {
129130
type: string;
130131
query?: string;
131132
filters?: object;
132133
limit?: number;
133134
offset?: number;
134135
noPrimaryCategory?: boolean;
136+
primaryCategory?: string[];
135137
}): Promise<ContentResponse> => {
136138
try {
137139
// Ensure the environment variable is defined
@@ -150,7 +152,10 @@ export const ContentSearch = async ({
150152
status: ['live'],
151153
channel: localStorage.getItem('channelId'),
152154
};
153-
// console.log('filtersObject====>', filtersObject?.primaryCategory);
155+
if(primaryCategory){
156+
filtersObject.primaryCategory = primaryCategory;
157+
}
158+
console.log('filtersObject====>' , filters);
154159

155160
// Only add primaryCategory if noPrimaryCategory is false and primaryCategory is not already set
156161
if (!noPrimaryCategory && !filtersObject.primaryCategory) {
@@ -161,6 +166,7 @@ export const ContentSearch = async ({
161166
? ['Activity', 'Story']
162167
: ['Learning Resource', 'Practice Question Set'];
163168
}
169+
// console.log('filtersObject====>', filtersObject);
164170

165171
const data = {
166172
request: {

mfes/workspace/src/pages/workspace/content/up-review/index.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ const columns = [
6464
key: 'create-by',
6565
title: 'CREATED BY',
6666
dataType: DataType.String,
67-
width: '100px',
67+
width: '180px',
6868
},
6969
{ key: 'action', title: 'ACTION', dataType: DataType.String, width: '100px' },
7070
];
@@ -123,7 +123,12 @@ const UpForReviewPage = () => {
123123
};
124124
}, [searchTerm]);
125125
useEffect(() => {
126-
const filteredArray = contentList.map((item: any) => ({
126+
const sortedContentList = [...contentList].sort((a: any, b: any) => {
127+
return (
128+
new Date(b.lastUpdatedOn).getTime() - new Date(a.lastUpdatedOn).getTime()
129+
);
130+
});
131+
const filteredArray = sortedContentList.map((item: any) => ({
127132
image: item?.appIcon,
128133

129134
name: item?.name,

mfes/youthNet/src/pages/manual-assessments/index.tsx

Lines changed: 59 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,15 @@ const AssessmentList = () => {
165165
(item: any) => ({ id: item?.value, name: item?.label })
166166
);
167167
setBlockData(transformedBlockData);
168-
const firstBlockId = transformedBlockData?.[0]?.id || '';
168+
let firstBlockId = transformedBlockData?.[0]?.id || '';
169+
if (
170+
router.query.blockId &&
171+
transformedBlockData?.some(
172+
(b: any) => String(b.id) === String(router.query.blockId)
173+
)
174+
) {
175+
firstBlockId = router.query.blockId;
176+
}
169177
setSelectedBlockValue(firstBlockId);
170178
setBlockId(firstBlockId);
171179
})
@@ -182,7 +190,7 @@ const AssessmentList = () => {
182190
setBlockData([]);
183191
}
184192
}
185-
}, []);
193+
}, [router.isReady, router.query.blockId]);
186194

187195
// Village list fetching logic (role-based, following villages page pattern)
188196
useEffect(() => {
@@ -196,8 +204,17 @@ const AssessmentList = () => {
196204
: null;
197205
setVillageList(villageData || []);
198206
if (villageData && villageData.length > 0) {
199-
setSelectedVillageValue(villageData[0]?.Id);
200-
setVillageId(villageData[0]?.Id);
207+
let firstVillageId = villageData[0]?.Id;
208+
if (
209+
router.query.villageId &&
210+
villageData.some(
211+
(v: any) => String(v.Id) === String(router.query.villageId)
212+
)
213+
) {
214+
firstVillageId = router.query.villageId;
215+
}
216+
setSelectedVillageValue(firstVillageId);
217+
setVillageId(firstVillageId);
201218
}
202219
} else if (YOUTHNET_USER_ROLE.LEAD === getLoggedInUserRole() && selectedBlockValue !== '') {
203220
// For LEAD role: fetch villages based on selected block
@@ -216,8 +233,17 @@ const AssessmentList = () => {
216233
);
217234
setVillageList(transformedVillageData || []);
218235
if (transformedVillageData && transformedVillageData.length > 0) {
219-
setSelectedVillageValue(transformedVillageData[0]?.Id);
220-
setVillageId(transformedVillageData[0]?.Id);
236+
let firstVillageId = transformedVillageData[0]?.Id;
237+
if (
238+
router.query.villageId &&
239+
transformedVillageData.some(
240+
(v: any) => String(v.Id) === String(router.query.villageId)
241+
)
242+
) {
243+
firstVillageId = router.query.villageId;
244+
}
245+
setSelectedVillageValue(firstVillageId);
246+
setVillageId(firstVillageId);
221247
}
222248
}
223249
} catch (error) {
@@ -227,22 +253,32 @@ const AssessmentList = () => {
227253
};
228254

229255
getVillageList();
230-
}, [selectedBlockValue]);
256+
}, [selectedBlockValue, router.query.villageId]);
231257

232258
// Initialize villages on page load for INSTRUCTOR role
233259
useEffect(() => {
260+
if (!router.isReady) return;
234261
if (YOUTHNET_USER_ROLE.INSTRUCTOR === getLoggedInUserRole()) {
235262
const villageDataString = localStorage.getItem('villageData');
236263
const villageData: any = villageDataString
237264
? JSON.parse(villageDataString)
238265
: null;
239266
if (villageData && villageData.length > 0) {
240267
setVillageList(villageData);
241-
setSelectedVillageValue(villageData[0]?.Id);
242-
setVillageId(villageData[0]?.Id);
268+
let firstVillageId = villageData[0]?.Id;
269+
if (
270+
router.query.villageId &&
271+
villageData.some(
272+
(v: any) => String(v.Id) === String(router.query.villageId)
273+
)
274+
) {
275+
firstVillageId = router.query.villageId;
276+
}
277+
setSelectedVillageValue(firstVillageId);
278+
setVillageId(firstVillageId);
243279
}
244280
}
245-
}, []);
281+
}, [router.isReady, router.query.villageId]);
246282

247283
// Reset assessment type and related lists when class changes
248284
useEffect(() => {
@@ -682,6 +718,13 @@ const AssessmentList = () => {
682718
onSelect={(value) => {
683719
setSelectedBlockValue(value);
684720
setBlockId(value);
721+
const { villageId, ...rest } = router.query;
722+
const newQuery = { ...rest, blockId: value };
723+
router.push(
724+
{ pathname: router.pathname, query: newQuery },
725+
undefined,
726+
{ shallow: true }
727+
);
685728
console.log('Block selected:', value);
686729
}}
687730
label={t('YOUTHNET_USERS_AND_VILLAGES.BLOCKS')}
@@ -710,6 +753,12 @@ const AssessmentList = () => {
710753
console.log('Village selected:', value);
711754
setSelectedVillageValue(value);
712755
setVillageId(value);
756+
const newQuery = { ...router.query, villageId: value };
757+
router.push(
758+
{ pathname: router.pathname, query: newQuery },
759+
undefined,
760+
{ shallow: true }
761+
);
713762
}}
714763
label={t('YOUTHNET_USERS_AND_VILLAGES.VILLAGES')}
715764
/>

0 commit comments

Comments
 (0)