From 53a5b144f64db84b3f05ebf2ee159b182f4d796a Mon Sep 17 00:00:00 2001 From: Tusharmahajan12 <121154132+Tusharmahajan12@users.noreply.github.com> Date: Thu, 18 Apr 2024 09:40:37 +0530 Subject: [PATCH] [CR] Task #217406 [BE] Certification Changes (#1021) * Added time zone * Added time zone * Added time zone * Added time zone * Added time zone * Added validation in event edit * Added validation in event edit * Added validation in event edit * Added validation in event edit * remove attendense * Certification genration --- src/src/cron/prepareCertificateHtml.cron.ts | 66 ++- src/src/lms/certificate_html.ts | 505 ++++++++++++-------- 2 files changed, 360 insertions(+), 211 deletions(-) diff --git a/src/src/cron/prepareCertificateHtml.cron.ts b/src/src/cron/prepareCertificateHtml.cron.ts index 249d20f31..961c727e9 100644 --- a/src/src/cron/prepareCertificateHtml.cron.ts +++ b/src/src/cron/prepareCertificateHtml.cron.ts @@ -26,6 +26,7 @@ export class PrepareCertificateHtmlCron { @Cron(CronExpression.EVERY_5_MINUTES) async prepareCertificateHtml() { console.log('cron job: issueCertificate started at time ' + new Date()); + //fetch all test tracking data which has certificate_status null const userForIssueCertificate = await this.fetchTestTrackingData( parseInt( @@ -48,25 +49,26 @@ export class PrepareCertificateHtmlCron { let test_id = userTestData?.test_id; let context = userTestData?.context; let context_id = userTestData?.context_id; - let getUserList = await this.userService.getUserName(user_id); - let user_name = ''; - if (getUserList.length > 0) { - user_name += getUserList[0]?.first_name - ? (await this.method.CapitalizeEachWord( - getUserList[0].first_name, - )) + ' ' - : ''; - user_name += getUserList[0]?.middle_name - ? (await this.method.CapitalizeEachWord( - getUserList[0].middle_name, - )) + ' ' - : ''; - user_name += getUserList[0]?.last_name - ? (await this.method.CapitalizeEachWord( - getUserList[0].last_name, - )) + ' ' - : ''; - } + + const user_name = await this.method.CapitalizeEachWord( + [ + userTestData?.user?.first_name, + userTestData?.user?.middle_name, + userTestData?.user?.last_name, + ] + .filter((e) => e) + .join(' '), + ); + + const event_start_date = moment( + userTestData?.events?.[0]?.start_date, + ).format('DD MMM YYYY'); + const event_end_date = moment( + userTestData?.events?.[0]?.end_date, + ).format('DD MMM YYYY'); + const academic_year = + userTestData?.events?.[0]?.academic_year?.name; + //get attendance status let attendance_valid = false; let usrAttendanceList = @@ -112,6 +114,18 @@ export class PrepareCertificateHtmlCron { let certificate_id = certificate_data?.id; let uid = 'P-' + certificate_id + '-' + user_id; //update html code + certificateTemplate = certificateTemplate.replace( + '{{academic_year}}', + academic_year, + ); + certificateTemplate = certificateTemplate.replace( + '{{event_start_date}}', + event_start_date, + ); + certificateTemplate = certificateTemplate.replace( + '{{event_end_date}}', + event_end_date, + ); certificateTemplate = certificateTemplate.replace( '{{name}}', user_name, @@ -247,6 +261,20 @@ export class PrepareCertificateHtmlCron { score context context_id + user{ + first_name + middle_name + last_name + } + events(where:{context:{_eq:"events"}}){ + id + start_date + end_date + academic_year{ + name + } + + } } } `; diff --git a/src/src/lms/certificate_html.ts b/src/src/lms/certificate_html.ts index aa1015e02..9c72c2e39 100644 --- a/src/src/lms/certificate_html.ts +++ b/src/src/lms/certificate_html.ts @@ -5,219 +5,340 @@ export const html_code = ` Certificate - - + +
-
+
-
+
-
-
-
यह प्रमाणित किया जाता है कि
+
+
+ +
+
+
+
सत्र   
+
{{academic_year}}
+
 के लिए
+
+
+
+
यह प्रमाणित किया जाता है कि
-
श्री / सुश्री   
{{name}}
-
ने प्रोजेक्ट प्रगति शिविर के संचालन हेतु आयोजित प्रशिक्षण में पूरे उत्साह और प्रतिबद्धता से
भाग लेकर आवश्यक ज्ञान एवं कौशल अर्जित किया है|
-
आपको प्रगति शिविर संचालन के लिए प्रेरक के रूप में प्रमाणित करते हुए हमें असीम हर्ष का अनुभव हो रहा है
-
प्रशिक्षण में अर्जित किए गए कौशल: -
-
-
- सीखने के सत्रों को सुगम बनाना +
+
श्री / सुश्री   
+
{{name}}
+
 ने
+
+
+
दिनांक :   
+
+ {{event_start_date}} +
+
 से 
+
+ {{event_end_date}}
-
- समस्या - समाधान +
 तक
+
+
+
+ 'प्रोजेक्ट प्रगति' के प्रशिक्षण को सफलतापूर्वक पूरा + किया है।
- सीखने में तकनीकी प्रयोग + इस प्रशिक्षण के दौरान आपने शिक्षा से वंचित शिक्षार्थियों की + पहचान, उनका मार्गदर्शन, दस्तावेजीकरण और
- -
- -
-
- पारस्परिक संबंध कौशल +
+ ओपन स्कूल के माध्यम से 10 वीं कक्षा में नामांकन की प्रक्रिया + के बारे में जानकारी प्राप्त की है।
-
- सामुदायिक प्रबंधन +
+ आपको 'प्रगति मोबिलाइजर' के रूप में प्रमाणित करते हुए + हमें असीम हर्ष का अनुभव हो रहा है। +
+
+
+
+ प्रशिक्षण में अर्जित किए गए कौशल: +
+
+
+
+
+ + समुदाय के साथ प्रभावी संवाद +
+
+ + शिक्षा से वंचित शिक्षार्थियों को मार्गदर्शन प्रदान करना +
-
- -
-
-
-
 
-
तिथि :  
{{issue_date}}
-
UID :  
{{user_id}}
-
-
- +
+
+ + समस्या समाधान +
+
+ + 10 वीं के नामांकन के लिए दस्तावेजीकरण की समझ +
+
+
-
- -
Safeena Hussain
-
(Founder and Board Member)
-
- -
-
-
-
- -
- +
+
+
 
+
+
दिनांक :  
+
+ {{issue_date}} +
+
+
+
UID :  
+
+ {{user_id}} +
+
+
+ * + यह प्रमाणपत्र सिर्फ प्रशिक्षण में भागीदारी के लिए दिया जा रहा + है। +
+
+
+ +
+
+
+ +
+
गीतिका टंडन हिगिंस
+
(एसोसिएट निदेशक, प्रोजेक्ट प्रगति)
+
+
+
+ +
+
-
- + `;