From 3c0836c0f19e9c5dd944acb432885f0296cf460e Mon Sep 17 00:00:00 2001 From: Jon Sayer Date: Sun, 7 Jul 2019 11:49:01 -0700 Subject: [PATCH 01/13] changes up to July 7 --- src/classes/C501_CTRL_ClassReg_CreateAcct.cls | 75 +++++++++++--- src/classes/C501_TEST_ClassReg_CreateAcct.cls | 10 +- src/classes/C501_UTIL_ClassRegUtilities.cls | 27 ++++- src/labels/CustomLabels.labels | 98 +++++++++++++++++++ src/objects/Account.object | 37 +++++++ src/package.xml | 17 ++++ src/pages/C501_ClassReg_CreateAcct.page | 50 ++++++++-- 7 files changed, 286 insertions(+), 28 deletions(-) diff --git a/src/classes/C501_CTRL_ClassReg_CreateAcct.cls b/src/classes/C501_CTRL_ClassReg_CreateAcct.cls index 627374d..dddb835 100644 --- a/src/classes/C501_CTRL_ClassReg_CreateAcct.cls +++ b/src/classes/C501_CTRL_ClassReg_CreateAcct.cls @@ -8,7 +8,7 @@ public class C501_CTRL_ClassReg_CreateAcct { public String pageStatus {get; set;} public ID loginID {get; set;} public String schoolName {get; set;} - public String schoolNameText {get; set;} + public Account schoolNameText {get; set;} public String schoolRegion { get{ if(schoolRegion == null){ @@ -18,8 +18,13 @@ public class C501_CTRL_ClassReg_CreateAcct { } set; } + public School_Term__c term {get; set;} public String grade {get; set;} + public Boolean noState {get; set;} + public Boolean noSchool {get; set;} + public Boolean noGrade {get; set;} + public Boolean noWaiver {get; set;} private String RegType {get; set;} public List schoolList { @@ -93,7 +98,11 @@ public class C501_CTRL_ClassReg_CreateAcct { gradeList = C501_UTIL_ClassRegUtilities.listOfGrades(); schoolName = ''; - schoolNameText = ''; + schoolNameText = null; + noState = false; + noSchool = false; + noGrade = false; + noWaiver = false; Map FsAcctMap = Schema.SObjectType.Account.fieldSets.getMap(); Map FsContMap = Schema.SObjectType.Contact.fieldSets.getMap(); @@ -169,17 +178,38 @@ public class C501_CTRL_ClassReg_CreateAcct { Boolean passValidation = true; if(schoolName == null || schoolName == '' ){ - ApexPages.addMessage(new ApexPages.message(ApexPages.severity.ERROR,'Please Select a School') ); + ApexPages.addMessage(new ApexPages.message(ApexPages.severity.ERROR,Label.C501_RegSite_SelectSchool) ); + noSchool = true; passValidation = false; + } else { + noSchool = false; } + /*if(family.BillingState == null || family.BillingState == '' ){ + ApexPages.addMessage(new ApexPages.message(ApexPages.severity.ERROR,Label.C501_RegSite_SelectState) ); + noState = true; + passValidation = false; + } else { + noState = false; + }*/ if(grade == null || grade == '' ){ - ApexPages.addMessage(new ApexPages.message(ApexPages.severity.ERROR,'Please Select a Grade') ); + ApexPages.addMessage(new ApexPages.message(ApexPages.severity.ERROR,Label.C501_RegSite_SelectGrade) ); + noGrade = true; passValidation = false; + } else { + noGrade = false; } if( parent.Email == null && parent.HomePhone == null && parent.MobilePhone == null && parent.OtherPhone == null ){ - ApexPages.addMessage(new ApexPages.message(ApexPages.severity.ERROR,'Please enter a contact method (phone number or email) for the parent. We need to be able to contact you!') ); + ApexPages.addMessage(new ApexPages.message(ApexPages.severity.ERROR,Label.C501_RegSite_ParentContactRequired) ); passValidation = false; } + if(term.Waiver__c == false){ + ApexPages.addMessage(new ApexPages.message(ApexPages.severity.ERROR,Label.C501_ClassReg_WaiverRequired) ); + noWaiver = true; + passValidation = false; + } else { + noWaiver = false; + } + if(passValidation == false){ return null; } @@ -200,15 +230,37 @@ public class C501_CTRL_ClassReg_CreateAcct { term.Parent__c = parent.Id; term.School__c = schoolName; - schoolNameText = [Select id,Name from Account where id = :schoolName].Name; + schoolNameText = [Select id, + Name, + Teachers_at_Site__c, + Primary_Teacher__r.FirstName , + Primary_Teacher__r.LastName , + Secondary_Teacher__r.FirstName , + Secondary_Teacher__r.LastName + from Account + where id = :schoolName]; - // future version, need to make this dynamic term.School_Year__c = C501_UTIL_ClassRegUtilities.currentSchoolYear( Date.today() ); term.C501_Sign_Up_Source__c = 'Online'; insert term; - - + if(parent.MobilePhone != null && parent.MobilePhone != '' ){ + String SMSmessage = Label.C501_RegSite_ConfirmSMS+' '+schoolNameText.Name; + C501_UTIL_ClassRegUtilities.logActivityToContact(parent.Id,SMSmessage, SMSmessage,'Call'); + C501_UTIL_ClassRegUtilities.sendSMSGenericFuture(parent.MobilePhone,Label.C501_RegSite_ConfirmSMS+' '+schoolNameText.Name ); + } + if(parent.Email != null && parent.Email != '' ){ + String teacherName = schoolNameText.Primary_Teacher__r.FirstName + ' ' + schoolNameText.Primary_Teacher__r.LastName; + + if(schoolNameText.Secondary_Teacher__r.LastName != null){ + teacherName = teacherName + ' ' + Label.C501_ClassReg_AND + ' ' + schoolNameText.Secondary_Teacher__r.FirstName + ' ' + schoolNameText.Secondary_Teacher__r.LastName; + } + + String emailMessage = Label.C501_RegSite_ConfirmSMS+' '+schoolNameText.Name +Label.C501_RegSite_EmailConfirmP2+' '+Label.C501_RegSite_EmailConfirmP3+' '+teacherName+Label.C501_RegSite_EmailConfirmP4; + C501_UTIL_ClassRegUtilities.SendEmailGeneric('jon-c@501commons.org',parent.Email,Label.C501_RegSite_ConfirmSMS+' '+schoolNameText.Name,emailMessage); + + C501_UTIL_ClassRegUtilities.logActivityToContact(parent.Id,Label.C501_RegSite_ConfirmSMS+' '+schoolNameText.Name, emailMessage,'Email'); + } pageStatus = 'finished'; return null; } @@ -264,9 +316,4 @@ public class C501_CTRL_ClassReg_CreateAcct { return schoolOptions; } - /*public map> contactFieldName2Options(){ - - }*/ - - } \ No newline at end of file diff --git a/src/classes/C501_TEST_ClassReg_CreateAcct.cls b/src/classes/C501_TEST_ClassReg_CreateAcct.cls index bc4d79a..bd7ff1d 100644 --- a/src/classes/C501_TEST_ClassReg_CreateAcct.cls +++ b/src/classes/C501_TEST_ClassReg_CreateAcct.cls @@ -52,6 +52,8 @@ public class C501_TEST_ClassReg_CreateAcct { } @isTest static void testSuccessfulInsert(){ + insert new TwilioConfig__c(Name = 'default', AuthToken__c = 'xxx', Default_Send_Number__c = '206222222', AccountSid__c = 'xxx'); + Class_Site_Login_Attempt__c att = createLoggedInTestUser(); Account school = new Account(Name='TestSchool',Region__c = 'Seattle'); @@ -61,13 +63,17 @@ public class C501_TEST_ClassReg_CreateAcct { Test.setCurrentPage(createAcctPage); System.currentPageReference().getParameters().put('a', att.id); System.currentPageReference().getParameters().put('r', '1'); + System.currentPageReference().getParameters().put('c', 'test@test.com'); Test.startTest(); C501_CTRL_ClassReg_CreateAcct controller = new C501_CTRL_ClassReg_CreateAcct(); System.assert(controller.pageStatus == 'new'); - controller.parent.FirstName = 'Test'; - controller.parent.LastName = 'LastName'; + //System.assert(controller.getRegions().size() == 5); + + controller.parent.FirstName = 'Test'; + controller.parent.LastName = 'LastName'; + controller.parent.MobilePhone = '1234567890'; controller.family.BillingStreet = '123 Main St'; controller.family.BillingCity = 'Seattle'; controller.family.BillingState = 'WA'; diff --git a/src/classes/C501_UTIL_ClassRegUtilities.cls b/src/classes/C501_UTIL_ClassRegUtilities.cls index 2f7f3b2..3db802e 100644 --- a/src/classes/C501_UTIL_ClassRegUtilities.cls +++ b/src/classes/C501_UTIL_ClassRegUtilities.cls @@ -190,8 +190,8 @@ public class C501_UTIL_ClassRegUtilities { public static void sendEmailConfirmation(ID AcctID, String emailAddress){ Class_Site_Login_Attempt__c att = generateLoginCode(AcctID, emailAddress); - String message = 'Hello there! Your code is: '+att.Secret_Code__c; - SendEmailGeneric('jon-c@501commons.org',emailAddress,'Your Techbridge Girls Confirmation Code',message); + String message = Label.C501_ClassReg_CodeMessage + ' '+att.Secret_Code__c + ' ' +Label.C501_ClassReg_CodeMessageDisclaim; + SendEmailGeneric('jon-c@501commons.org',emailAddress,Label.C501_ClassReg_ConfirmCodeSubject,message); insert att; } @@ -256,6 +256,12 @@ public class C501_UTIL_ClassRegUtilities { return att; } + @future(callout=true) + public static void sendSMSGenericFuture(String phoneNumber, String message){ + sendSMSGeneric(phoneNumber,message); + } + + public static void sendSMSGeneric(String phoneNumber, String message){ TwilioConfig__c tcon = [SELECT id, AccountSid__c, AuthToken__c, Default_Send_Number__c FROM TwilioConfig__c WHERE Name = 'default' LIMIT 1]; @@ -272,7 +278,7 @@ public class C501_UTIL_ClassRegUtilities { public static void sendSMS(ID AcctID,String phoneNumber){ Class_Site_Login_Attempt__c att = generateLoginCode(AcctId, phoneNumber); - sendSMSGeneric(phoneNumber,'Hello there! Your code is: '+att.Secret_Code__c); + sendSMSGeneric(phoneNumber,Label.C501_ClassReg_CodeMessage + ' '+att.Secret_Code__c + ' ' + Label.C501_ClassReg_CodeMessageDisclaim); insert att; } @@ -347,6 +353,21 @@ public class C501_UTIL_ClassRegUtilities { return page; } + public static void logActivityToContact(Id contactId,String subject, String message,String messageType){ + Task log = new Task( + Description = message, + WhoId = contactId, + Priority = 'Normal', + Subject = subject, + Status = 'Completed', + CallType = 'Outbound', + Type = messageType, + Activity_Report_Type__c = 'Programs', + ReminderDateTime = System.now()+1 + ); + insert log; + } + /*public void ObjectsFieldMerge(Account masterObject, List duplicateObjects){ Set mergeCandidates = new Set { masterObject.Id diff --git a/src/labels/CustomLabels.labels b/src/labels/CustomLabels.labels index b928bf5..72ec630 100644 --- a/src/labels/CustomLabels.labels +++ b/src/labels/CustomLabels.labels @@ -1,5 +1,19 @@ + + C501_ClassReg_AND + en_US + false + C501_ClassReg_AND + and + + + C501_ClassReg_AddtlStudentInfo + en_US + false + C501_ClassReg_AddtlStudentInfo + Additional Student Information + C501_ClassReg_AuthToTreatMinor en_US @@ -63,6 +77,20 @@ C501_ClassReg_ChildSchoolRegion Techbridge serves girls in four different regions. Which region is your child's school in? + + C501_ClassReg_CodeMessageDisclaim + en_US + false + C501_ClassReg_CodeMessageDisclaim + This is an unmonitored account so please don’t reply. + + + C501_ClassReg_ConfirmCodeSubject + en_US + false + C501_ClassReg_ConfirmCodeSubject + Your Techbridge Girls Confirmation Code + C501_ClassReg_EvalStudy en_US @@ -244,6 +272,13 @@ We may also look at your child’s school information, like attendance and cours C501_ClassReg_PhotoVideoP1 Occasionally, Techbridge Girls program activities may be photographed, videotaped, and/or audio taped for educational, publicity or fundraising purposes. Please indicate if you give permission for you and/or your child or ward to appear in videos, photos and/or audio recordings without compensation (e.g., as part of brochures, slide shows or program websites). Your authorization below also permits Techbridge Girls to share photos and other media depicting you and/or your child or ward with partner organizations for use in their promotions of Techbridge Girls events and programs. + + C501_ClassReg_PlzSelectOne + en_US + false + C501_ClassReg_PlzSelectOne + Please Select One + C501_ClassReg_StudentID en_US @@ -258,6 +293,13 @@ We may also look at your child’s school information, like attendance and cours C501_ClassReg_SubmitApplication Submit Application + + C501_ClassReg_WaiverRequired + en_US + false + C501_ClassReg_WaiverRequired + You must check the box to sign the Participant Waiver. This is not optional. + C501_ClassReg_dcArea en_US @@ -335,6 +377,13 @@ We may also look at your child’s school information, like attendance and cours C501_RegSite_ConfirmMessageSite We have received your application. We have sent a confirmation message to the Email Address or Phone Number you provided. A copy of your application is below. Feel free to save or print this for your records. + + C501_RegSite_ConfirmSMS + en_US + false + C501_RegSite_ConfirmSMS + Thanks for registering for Techbridge Girls @ + C501_RegSite_Continue en_US @@ -342,6 +391,27 @@ We may also look at your child’s school information, like attendance and cours C501_RegSite_Continue Continue + + C501_RegSite_EmailConfirmP2 + en_US + false + C501_RegSite_EmailConfirmP2 + ! The programs begins on + + + C501_RegSite_EmailConfirmP3 + en_US + false + C501_RegSite_EmailConfirmP3 + with + + + C501_RegSite_EmailConfirmP4 + en_US + false + C501_RegSite_EmailConfirmP4 + . Please contact the Techbridge Teacher at your school or community site for any questions. + C501_RegSite_FamilyInformation en_US @@ -405,6 +475,13 @@ We may also look at your child’s school information, like attendance and cours C501_RegSite_NotProvided Not provided + + C501_RegSite_ParentContactRequired + en_US + false + C501_RegSite_ParentContactRequired + Please enter a contact method (phone number or email) for the parent. We need to be able to contact you! + C501_RegSite_ParentEmail en_US @@ -440,6 +517,27 @@ We may also look at your child’s school information, like attendance and cours C501_RegSite_RememberMeDevice Remember me on this device. + + C501_RegSite_SelectGrade + en_US + false + C501_RegSite_SelectGrade + Please Select a Grade + + + C501_RegSite_SelectSchool + en_US + false + C501_RegSite_SelectSchool + Please Select a School + + + C501_RegSite_SelectState + en_US + false + C501_RegSite_SelectState + Please Select a State + C501_RegSite_SiteRegFormTitle en_US diff --git a/src/objects/Account.object b/src/objects/Account.object index 99fbd66..360eb9a 100644 --- a/src/objects/Account.object +++ b/src/objects/Account.object @@ -28,6 +28,19 @@ SUBSTITUTE(C501_Class_Site_Mobile_Number__c, "(", ""), " false Phone + + Primary_Teacher__c + SetNull + false + + Contact + Accounts (Primary Teacher) + Schools + false + false + false + Lookup + Region__c false @@ -62,4 +75,28 @@ SUBSTITUTE(C501_Class_Site_Mobile_Number__c, "(", ""), " + + Secondary_Teacher__c + SetNull + false + + Contact + Accounts (Secondary Teacher) + Accounts + false + false + false + Lookup + + + Teachers_at_Site__c + false + Primary_Teacher__r.FirstName & ' ' & Primary_Teacher__r.LastName + BlankAsZero + + false + false + Text + false + diff --git a/src/package.xml b/src/package.xml index ace5f8b..ad421be 100644 --- a/src/package.xml +++ b/src/package.xml @@ -21,7 +21,10 @@ Account.C501_Class_Site_Mobile_Number_Lookup__c Account.C501_Class_Site_Mobile_Number__c + Account.Primary_Teacher__c Account.Region__c + Account.Secondary_Teacher__c + Account.Teachers_at_Site__c Class_Site_Login_Attempt__c.Account__c Class_Site_Login_Attempt__c.Code_Sent_To__c Class_Site_Login_Attempt__c.Login_Attempts__c @@ -98,6 +101,8 @@ CustomField + C501_ClassReg_AND + C501_ClassReg_AddtlStudentInfo C501_ClassReg_AuthToTreatMinor C501_ClassReg_AuthToTreatMinorLabel C501_ClassReg_AuthToTreatMinorP1 @@ -108,6 +113,8 @@ C501_ClassReg_ChildSchoolName C501_ClassReg_ChildSchoolName C501_ClassReg_ChildSchoolRegion + C501_ClassReg_CodeMessageDisclaim + C501_ClassReg_ConfirmCodeSubject C501_ClassReg_EvalStudy C501_ClassReg_EvalStudyH1 C501_ClassReg_EvalStudyH1P1 @@ -133,10 +140,12 @@ C501_ClassReg_PhotoVideo C501_ClassReg_PhotoVideoLabel C501_ClassReg_PhotoVideoP1 + C501_ClassReg_PlzSelectOne C501_ClassReg_StudentID C501_ClassReg_StudentID C501_ClassReg_SubmitApplication C501_ClassReg_SubmitApplication + C501_ClassReg_WaiverRequired C501_ClassReg_dcArea C501_ClassReg_eastBay C501_ClassReg_parentFamilyConsent @@ -148,7 +157,11 @@ C501_RegSite_City C501_RegSite_CodeMismatch C501_RegSite_ConfirmMessageSite + C501_RegSite_ConfirmSMS C501_RegSite_Continue + C501_RegSite_EmailConfirmP2 + C501_RegSite_EmailConfirmP3 + C501_RegSite_EmailConfirmP4 C501_RegSite_FamilyInformation C501_RegSite_FinishedApp C501_RegSite_FirstName @@ -158,11 +171,15 @@ C501_RegSite_LeaveBlankEmail C501_RegSite_Login C501_RegSite_NotProvided + C501_RegSite_ParentContactRequired C501_RegSite_ParentEmail C501_RegSite_ParentFirstName C501_RegSite_ParentLastName C501_RegSite_ProvidePhoneEmail C501_RegSite_RememberMeDevice + C501_RegSite_SelectGrade + C501_RegSite_SelectSchool + C501_RegSite_SelectState C501_RegSite_SiteRegFormTitle C501_RegSite_State C501_RegSite_StreetAddress diff --git a/src/pages/C501_ClassReg_CreateAcct.page b/src/pages/C501_ClassReg_CreateAcct.page index 6258c09..cbd7b66 100644 --- a/src/pages/C501_ClassReg_CreateAcct.page +++ b/src/pages/C501_ClassReg_CreateAcct.page @@ -71,23 +71,23 @@
- - + +
- - + +
- - - @@ -147,13 +147,19 @@ + + +
+ Error: {! $Label.C501_ClassReg_PlzSelectOne } +
+
- - + +
@@ -180,6 +186,11 @@ + +
+ Error: {! $Label.C501_ClassReg_PlzSelectOne } +
+
@@ -195,9 +206,22 @@ + +
+ Error: {! $Label.C501_ClassReg_PlzSelectOne } +
+
+ +
+
+

+ {! $Label.C501_ClassReg_AddtlStudentInfo } +

+
+
@@ -337,6 +361,14 @@

+ +

+ Error: {! $Label.C501_ClassReg_WaiverRequired } +
+ + + +

From 0d61f47715ef99ea4bdc9388d905e6224717855d Mon Sep 17 00:00:00 2001 From: Jon Sayer Date: Fri, 12 Jul 2019 16:58:51 -0700 Subject: [PATCH 02/13] changes up to 7/12/2019 --- src/classes/C501_CTRL_ClassReg_CreateAcct.cls | 68 +++++- ...C501_CTRL_ClassReg_CreateAcct.cls-meta.xml | 5 + src/classes/C501_CTRL_ClassReg_Login.cls | 2 +- src/classes/C501_UTIL_ClassRegUtilities.cls | 6 +- src/labels/CustomLabels.labels | 84 ++++++++ src/objects/Account.object | 10 + src/objects/Contact.object | 107 ++------- src/package.xml | 13 ++ src/pages/C501_ClassReg_CreateAcct.page | 204 +++++++++++++++++- src/pages/C501_ClassReg_Login.page | 4 +- 10 files changed, 384 insertions(+), 119 deletions(-) diff --git a/src/classes/C501_CTRL_ClassReg_CreateAcct.cls b/src/classes/C501_CTRL_ClassReg_CreateAcct.cls index dddb835..f0c9afb 100644 --- a/src/classes/C501_CTRL_ClassReg_CreateAcct.cls +++ b/src/classes/C501_CTRL_ClassReg_CreateAcct.cls @@ -9,6 +9,9 @@ public class C501_CTRL_ClassReg_CreateAcct { public ID loginID {get; set;} public String schoolName {get; set;} public Account schoolNameText {get; set;} + public Boolean dontKnowId {get; set;} + public Boolean noAllergies {get; set;} + public String schoolRegion { get{ if(schoolRegion == null){ @@ -22,9 +25,12 @@ public class C501_CTRL_ClassReg_CreateAcct { public School_Term__c term {get; set;} public String grade {get; set;} public Boolean noState {get; set;} + public Boolean needPickup {get; set;} public Boolean noSchool {get; set;} public Boolean noGrade {get; set;} public Boolean noWaiver {get; set;} + public Boolean noStuID {get; set;} + public Boolean noAllergyResp {get; set;} private String RegType {get; set;} public List schoolList { @@ -103,6 +109,10 @@ public class C501_CTRL_ClassReg_CreateAcct { noSchool = false; noGrade = false; noWaiver = false; + dontKnowId = false; + noStuID = false; + noAllergyResp = false; + needPickup = false; Map FsAcctMap = Schema.SObjectType.Account.fieldSets.getMap(); Map FsContMap = Schema.SObjectType.Contact.fieldSets.getMap(); @@ -198,6 +208,31 @@ public class C501_CTRL_ClassReg_CreateAcct { } else { noGrade = false; } + + if(term.Student_School_ID__c == null && dontKnowId == false){ + ApexPages.addMessage(new ApexPages.message(ApexPages.severity.ERROR,Label.C501_RegSite_ProvideStudentId ) ); + noStuId = true; + passValidation = false; + } else { + noStuId = false; + } + + if(child.Allergies__c == null && noAllergies == false){ + ApexPages.addMessage(new ApexPages.message(ApexPages.severity.ERROR,Label.C501_RegSite_NoAllergiesError ) ); + noAllergyResp = true; + passValidation = false; + } else { + noAllergyResp = false; + } + + if(child.Student_Transportation__c == 'Will receive a ride' && (child.Authorized_Pickup_1_Name__c == null || child.Authorized_Pickup_1_Phone__c == null || child.Authorized_Pickup_1_Relationship__c == null ) ){ + ApexPages.addMessage(new ApexPages.message(ApexPages.severity.ERROR,Label.C501_RegSite_PickUpChildError ) ); + needPickup = true; + passValidation = false; + } else { + needPickup = false; + } + if( parent.Email == null && parent.HomePhone == null && parent.MobilePhone == null && parent.OtherPhone == null ){ ApexPages.addMessage(new ApexPages.message(ApexPages.severity.ERROR,Label.C501_RegSite_ParentContactRequired) ); passValidation = false; @@ -232,11 +267,15 @@ public class C501_CTRL_ClassReg_CreateAcct { schoolNameText = [Select id, Name, - Teachers_at_Site__c, - Primary_Teacher__r.FirstName , - Primary_Teacher__r.LastName , - Secondary_Teacher__r.FirstName , - Secondary_Teacher__r.LastName + C501_Next_Program_Start_Date__c, + ( + SELECT npe5__Status__c, + npe5__Contact__c, + npe5__Contact__r.FirstName, + npe5__Contact__r.LastName + FROM npe5__Affiliations__r + WHERE npe5__Status__c = 'Current' + ) from Account where id = :schoolName]; @@ -250,14 +289,21 @@ public class C501_CTRL_ClassReg_CreateAcct { C501_UTIL_ClassRegUtilities.sendSMSGenericFuture(parent.MobilePhone,Label.C501_RegSite_ConfirmSMS+' '+schoolNameText.Name ); } if(parent.Email != null && parent.Email != '' ){ - String teacherName = schoolNameText.Primary_Teacher__r.FirstName + ' ' + schoolNameText.Primary_Teacher__r.LastName; - - if(schoolNameText.Secondary_Teacher__r.LastName != null){ - teacherName = teacherName + ' ' + Label.C501_ClassReg_AND + ' ' + schoolNameText.Secondary_Teacher__r.FirstName + ' ' + schoolNameText.Secondary_Teacher__r.LastName; + String teacherName = ''; + for(Integer i = 0; i < schoolNameText.npe5__Affiliations__r.size(); i++){ + if(i != 0 && i + 1 == schoolNameText.npe5__Affiliations__r.size() && schoolNameText.npe5__Affiliations__r.size() > 1){ + teacherName = teacherName + ' ' + Label.C501_ClassReg_AND + ' '; + } else if(i != 0 && schoolNameText.npe5__Affiliations__r.size() > 1 ) { + teacherName = teacherName + ', '; + } + teacherName = teacherName + schoolNameText.npe5__Affiliations__r[i].npe5__Contact__r.FirstName + ' ' +schoolNameText.npe5__Affiliations__r[i].npe5__Contact__r.LastName; } - String emailMessage = Label.C501_RegSite_ConfirmSMS+' '+schoolNameText.Name +Label.C501_RegSite_EmailConfirmP2+' '+Label.C501_RegSite_EmailConfirmP3+' '+teacherName+Label.C501_RegSite_EmailConfirmP4; - C501_UTIL_ClassRegUtilities.SendEmailGeneric('jon-c@501commons.org',parent.Email,Label.C501_RegSite_ConfirmSMS+' '+schoolNameText.Name,emailMessage); + + String nextStartDate = Datetime.newInstance(schoolNameText.C501_Next_Program_Start_Date__c, Time.newInstance(0,0,0,0)).format('MMMMM d, yyyy'); + + String emailMessage = Label.C501_RegSite_ConfirmSMS+' '+schoolNameText.Name +Label.C501_RegSite_EmailConfirmP2+' '+nextStartDate+' '+Label.C501_RegSite_EmailConfirmP3+' '+teacherName+Label.C501_RegSite_EmailConfirmP4; + C501_UTIL_ClassRegUtilities.SendEmailGeneric('salesforce@techbridgegirls.org',parent.Email,Label.C501_RegSite_ConfirmSMS+' '+schoolNameText.Name,emailMessage); C501_UTIL_ClassRegUtilities.logActivityToContact(parent.Id,Label.C501_RegSite_ConfirmSMS+' '+schoolNameText.Name, emailMessage,'Email'); } diff --git a/src/classes/C501_CTRL_ClassReg_CreateAcct.cls-meta.xml b/src/classes/C501_CTRL_ClassReg_CreateAcct.cls-meta.xml index 6eb4331..0549075 100644 --- a/src/classes/C501_CTRL_ClassReg_CreateAcct.cls-meta.xml +++ b/src/classes/C501_CTRL_ClassReg_CreateAcct.cls-meta.xml @@ -6,5 +6,10 @@ 11 npe01 + + 3 + 7 + npe5 + Active diff --git a/src/classes/C501_CTRL_ClassReg_Login.cls b/src/classes/C501_CTRL_ClassReg_Login.cls index 2b75c0b..153f94a 100644 --- a/src/classes/C501_CTRL_ClassReg_Login.cls +++ b/src/classes/C501_CTRL_ClassReg_Login.cls @@ -17,7 +17,7 @@ public class C501_CTRL_ClassReg_Login { phoneNumber = ''; confirmation = ''; identityInput = null; - remember = true; + remember = false; } public PageReference confirmLoginBySendToAddress(){ diff --git a/src/classes/C501_UTIL_ClassRegUtilities.cls b/src/classes/C501_UTIL_ClassRegUtilities.cls index 3db802e..14e28e5 100644 --- a/src/classes/C501_UTIL_ClassRegUtilities.cls +++ b/src/classes/C501_UTIL_ClassRegUtilities.cls @@ -190,8 +190,8 @@ public class C501_UTIL_ClassRegUtilities { public static void sendEmailConfirmation(ID AcctID, String emailAddress){ Class_Site_Login_Attempt__c att = generateLoginCode(AcctID, emailAddress); - String message = Label.C501_ClassReg_CodeMessage + ' '+att.Secret_Code__c + ' ' +Label.C501_ClassReg_CodeMessageDisclaim; - SendEmailGeneric('jon-c@501commons.org',emailAddress,Label.C501_ClassReg_ConfirmCodeSubject,message); + String message = Label.C501_ClassReg_CodeMessage + ' '+att.Secret_Code__c + ' ' +Label.C501_ClassReg_CodeMessageDisclaim+' '+Label.C501_ClassReg_CodeMessageExpire; + SendEmailGeneric('salesforce@techbridgegirls.org',emailAddress,Label.C501_ClassReg_ConfirmCodeSubject,message); insert att; } @@ -278,7 +278,7 @@ public class C501_UTIL_ClassRegUtilities { public static void sendSMS(ID AcctID,String phoneNumber){ Class_Site_Login_Attempt__c att = generateLoginCode(AcctId, phoneNumber); - sendSMSGeneric(phoneNumber,Label.C501_ClassReg_CodeMessage + ' '+att.Secret_Code__c + ' ' + Label.C501_ClassReg_CodeMessageDisclaim); + sendSMSGeneric(phoneNumber,Label.C501_ClassReg_CodeMessage + ' '+att.Secret_Code__c + ' ' + Label.C501_ClassReg_CodeMessageDisclaim+' '+Label.C501_ClassReg_CodeMessageExpire); insert att; } diff --git a/src/labels/CustomLabels.labels b/src/labels/CustomLabels.labels index 72ec630..f510031 100644 --- a/src/labels/CustomLabels.labels +++ b/src/labels/CustomLabels.labels @@ -14,6 +14,13 @@ C501_ClassReg_AddtlStudentInfo Additional Student Information
+ + C501_ClassReg_AuthPickup + en_US + false + C501_ClassReg_AuthPickup + If you selected "Someone will pick up my child", What is the name of someone authorized to pick up your child? + C501_ClassReg_AuthToTreatMinor en_US @@ -77,6 +84,13 @@ C501_ClassReg_ChildSchoolRegion Techbridge serves girls in four different regions. Which region is your child's school in? + + C501_ClassReg_CodeMessage + en_US + false + C501_ClassReg_CodeMessage + Hello There! Your code for the Techbridge Girls registration system is: + C501_ClassReg_CodeMessageDisclaim en_US @@ -84,6 +98,13 @@ C501_ClassReg_CodeMessageDisclaim This is an unmonitored account so please don’t reply. + + C501_ClassReg_CodeMessageExpire + en_US + false + C501_ClassReg_CodeMessageExpire + Code expires in 30 min. + C501_ClassReg_ConfirmCodeSubject en_US @@ -91,6 +112,13 @@ C501_ClassReg_ConfirmCodeSubject Your Techbridge Girls Confirmation Code + + C501_ClassReg_EmergencySubtext + en_US + false + C501_ClassReg_EmergencySubtext + In case the parent/guardian cannot be reached, please provide an EMERGENCY CONTACT. + C501_ClassReg_EvalStudy en_US @@ -272,6 +300,13 @@ We may also look at your child’s school information, like attendance and cours C501_ClassReg_PhotoVideoP1 Occasionally, Techbridge Girls program activities may be photographed, videotaped, and/or audio taped for educational, publicity or fundraising purposes. Please indicate if you give permission for you and/or your child or ward to appear in videos, photos and/or audio recordings without compensation (e.g., as part of brochures, slide shows or program websites). Your authorization below also permits Techbridge Girls to share photos and other media depicting you and/or your child or ward with partner organizations for use in their promotions of Techbridge Girls events and programs. + + C501_ClassReg_PickUpChild + en_US + false + C501_ClassReg_PickUpChild + Persons allowed to pick up my child: + C501_ClassReg_PlzSelectOne en_US @@ -391,6 +426,13 @@ We may also look at your child’s school information, like attendance and cours C501_RegSite_Continue Continue + + C501_RegSite_DontKnowID + en_US + false + C501_RegSite_DontKnowID + Check here if you don't know and authorize Techbridge Girls to get this from your child's school. + C501_RegSite_EmailConfirmP2 en_US @@ -412,6 +454,13 @@ We may also look at your child’s school information, like attendance and cours C501_RegSite_EmailConfirmP4 . Please contact the Techbridge Teacher at your school or community site for any questions. + + C501_RegSite_EmergencyContacts + en_US + false + C501_RegSite_EmergencyContacts + Emergency Contacts + C501_RegSite_FamilyInformation en_US @@ -468,6 +517,20 @@ We may also look at your child’s school information, like attendance and cours C501_RegSite_Login Log in + + C501_RegSite_NoAllergies + en_US + false + C501_RegSite_NoAllergies + No Food Restrictions or Allergies + + + C501_RegSite_NoAllergiesError + en_US + false + C501_RegSite_NoAllergiesError + Please indicate if your child has any food allergies or restrictions. + C501_RegSite_NotProvided en_US @@ -503,6 +566,13 @@ We may also look at your child’s school information, like attendance and cours C501_RegSite_ParentLastName Parent/Guardian Last Name + + C501_RegSite_PickUpChildError + en_US + false + C501_RegSite_PickUpChildError + Please identify someone who can pick up your child from the program. + C501_RegSite_ProvidePhoneEmail en_US @@ -510,6 +580,13 @@ We may also look at your child’s school information, like attendance and cours C501_RegSite_ProvidePhoneEmail Please provide your phone number or email address to log in. + + C501_RegSite_ProvideStudentId + en_US + false + C501_RegSite_ProvideStudentId + Please provide a Student ID Number, or give us permission to get it from your child's school. + C501_RegSite_RememberMeDevice en_US @@ -566,6 +643,13 @@ We may also look at your child’s school information, like attendance and cours C501_RegSite_StudentInformation Student Information + + C501_RegSite_Transport + en_US + false + C501_RegSite_Transport + Transportation and Authorized Pickup + C501_RegSite_WeSentYouCode en_US diff --git a/src/objects/Account.object b/src/objects/Account.object index 360eb9a..042644e 100644 --- a/src/objects/Account.object +++ b/src/objects/Account.object @@ -28,6 +28,16 @@ SUBSTITUTE(C501_Class_Site_Mobile_Number__c, "(", ""), " false Phone + + C501_Next_program_start_date__c + false + This is the date that the next class begins at this school. + + false + false + false + Date + Primary_Teacher__c SetNull diff --git a/src/objects/Contact.object b/src/objects/Contact.object index 8d2439f..97cfd80 100644 --- a/src/objects/Contact.object +++ b/src/objects/Contact.object @@ -3,11 +3,6 @@ C501_Class_Registration_Site_Child Used by the class registration site to define the fields used on the child contact. - - Allergies__c - false - false - Medication__c false @@ -28,86 +23,6 @@ false false - - Student_Transportation__c - false - false - - - Authorized_Pickup_1_Name__c - false - false - - - Authorized_Pickup_1_Phone__c - false - false - - - Authorized_Pickup_1_Relationship__c - false - false - - - Authorized_Pickup_2_Name__c - false - false - - - Authorized_Pickup_2_Phone__c - false - false - - - Authorized_Pickup_2_Relationship__c - false - false - - - Authorized_Pickup_3_Name__c - false - false - - - Authorized_Pickup_3_Phone__c - false - false - - - Authorized_Pickup_3_Relationship__c - false - false - - - Alternate_Contact_Name__c - false - false - - - Alternate_Contact_Phone__c - false - false - - - Alternate_Contact_Relationship__c - false - false - - - Emergency_Contact_2_Name__c - false - false - - - Emergency_Contact_2_Phone__c - false - false - - - Emergency_Contact_2_Relationship__c - false - false - @@ -153,7 +68,7 @@ Allergies__c false - Does your child have any food restrictions or food allergies (vegetarian, vegan, dairy, gluten, nuts, kosher, Halal, seafood, no pork products, etc.)? (If Yes, please explain. If No, please write "None") + Does your child have any food restrictions or food allergies (vegetarian, vegan, dairy, gluten, nuts, kosher, Halal, seafood, no pork products, etc.)? (If Yes, please explain. If No, please check the box below.) 255 false @@ -165,7 +80,7 @@ Alternate_Contact_Name__c false - In case the parent/guardian cannot be reached, please provide an EMERGENCY CONTACT + Emergency Contact Name 100 false @@ -199,7 +114,7 @@ Authorized_Pickup_1_Name__c false - If you selected "Someone will pick up my child", What is the name of someone authorized to pick up your child? + Authorized Pickup 1 Name 100 false @@ -233,7 +148,7 @@ Authorized_Pickup_2_Name__c false - Name of a second person authorized to pick up your child: + Authorized Pickup 2 Name 100 false @@ -267,7 +182,7 @@ Authorized_Pickup_3_Name__c false - Name of a third person authorized to pick up your child: + Authorized Pickup 3 Name 100 false @@ -301,7 +216,7 @@ Emergency_Contact_2_Name__c false - Please provide the name of a Second Emergency Contact + Second Emergency Contact's Name 100 false @@ -810,6 +725,11 @@ true false + + Do not need translation + false + + Amharic false @@ -866,6 +786,11 @@ false + + Not able to volunteer + false + + Make calls false diff --git a/src/package.xml b/src/package.xml index ad421be..a88444a 100644 --- a/src/package.xml +++ b/src/package.xml @@ -21,6 +21,7 @@ Account.C501_Class_Site_Mobile_Number_Lookup__c Account.C501_Class_Site_Mobile_Number__c + Account.C501_Next_program_start_date__c Account.Primary_Teacher__c Account.Region__c Account.Secondary_Teacher__c @@ -103,6 +104,7 @@ C501_ClassReg_AND C501_ClassReg_AddtlStudentInfo + C501_ClassReg_AuthPickup C501_ClassReg_AuthToTreatMinor C501_ClassReg_AuthToTreatMinorLabel C501_ClassReg_AuthToTreatMinorP1 @@ -113,8 +115,11 @@ C501_ClassReg_ChildSchoolName C501_ClassReg_ChildSchoolName C501_ClassReg_ChildSchoolRegion + C501_ClassReg_CodeMessage C501_ClassReg_CodeMessageDisclaim + C501_ClassReg_CodeMessageExpire C501_ClassReg_ConfirmCodeSubject + C501_ClassReg_EmergencySubtext C501_ClassReg_EvalStudy C501_ClassReg_EvalStudyH1 C501_ClassReg_EvalStudyH1P1 @@ -140,6 +145,7 @@ C501_ClassReg_PhotoVideo C501_ClassReg_PhotoVideoLabel C501_ClassReg_PhotoVideoP1 + C501_ClassReg_PickUpChild C501_ClassReg_PlzSelectOne C501_ClassReg_StudentID C501_ClassReg_StudentID @@ -159,9 +165,11 @@ C501_RegSite_ConfirmMessageSite C501_RegSite_ConfirmSMS C501_RegSite_Continue + C501_RegSite_DontKnowID C501_RegSite_EmailConfirmP2 C501_RegSite_EmailConfirmP3 C501_RegSite_EmailConfirmP4 + C501_RegSite_EmergencyContacts C501_RegSite_FamilyInformation C501_RegSite_FinishedApp C501_RegSite_FirstName @@ -170,12 +178,16 @@ C501_RegSite_LeaveBlank C501_RegSite_LeaveBlankEmail C501_RegSite_Login + C501_RegSite_NoAllergies + C501_RegSite_NoAllergiesError C501_RegSite_NotProvided C501_RegSite_ParentContactRequired C501_RegSite_ParentEmail C501_RegSite_ParentFirstName C501_RegSite_ParentLastName + C501_RegSite_PickUpChildError C501_RegSite_ProvidePhoneEmail + C501_RegSite_ProvideStudentId C501_RegSite_RememberMeDevice C501_RegSite_SelectGrade C501_RegSite_SelectSchool @@ -184,6 +196,7 @@ C501_RegSite_State C501_RegSite_StreetAddress C501_RegSite_StudentInformation + C501_RegSite_Transport C501_RegSite_WeSentYouCode C501_RegSite_Youarenotauthenticated C501_RegSite_ZipCode diff --git a/src/pages/C501_ClassReg_CreateAcct.page b/src/pages/C501_ClassReg_CreateAcct.page index cbd7b66..e362503 100644 --- a/src/pages/C501_ClassReg_CreateAcct.page +++ b/src/pages/C501_ClassReg_CreateAcct.page @@ -215,6 +215,147 @@ + +
+
+

+ {! $Label.C501_RegSite_EmergencyContacts } +

+

+ {! $Label.C501_ClassReg_EmergencySubtext } +

+
+
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+

+ {! $Label.C501_RegSite_Transport } +

+
+
+
+
+
+ + +
+
+
+
+
+

+ {! $Label.C501_ClassReg_PickUpChild } +

+ +
+ Error: {! $Label.C501_RegSite_PickUpChildError } +
+
+ + +
+
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+

@@ -224,32 +365,63 @@

-
+
-
+
+
+
+
-
-
+
+
+
+ {! $Label.C501_RegSite_DontKnowID } + + +
+ Error: {! $Label.C501_ClassReg_PlzSelectOne } +
+
+
- +
+
+
+
+ + {! $Label.C501_RegSite_NoAllergies } + + +
+ Error: {! $Label.C501_ClassReg_PlzSelectOne } +
+
+
+
+
+
- + + - + + + + + +
@@ -326,8 +503,11 @@
- - + + +
@@ -337,8 +517,10 @@
- - + +
diff --git a/src/pages/C501_ClassReg_Login.page b/src/pages/C501_ClassReg_Login.page index 1ee1b00..cdbffdd 100644 --- a/src/pages/C501_ClassReg_Login.page +++ b/src/pages/C501_ClassReg_Login.page @@ -55,10 +55,10 @@

-

+

From 349ee083912f6c800bdfbafe2af4c1460dbb58fc Mon Sep 17 00:00:00 2001 From: Jon Sayer Date: Mon, 15 Jul 2019 19:43:25 -0700 Subject: [PATCH 03/13] added report and dashboard to package, but no luck; phone number validation --- src/classes/C501_CTRL_ClassReg_CreateAcct.cls | 93 +++++++++++++++++++ src/classes/C501_UTIL_ClassRegUtilities.cls | 15 +++ src/labels/CustomLabels.labels | 14 +++ src/objects/School_Term__c.object | 10 -- src/package.xml | 10 ++ 5 files changed, 132 insertions(+), 10 deletions(-) diff --git a/src/classes/C501_CTRL_ClassReg_CreateAcct.cls b/src/classes/C501_CTRL_ClassReg_CreateAcct.cls index f0c9afb..85facea 100644 --- a/src/classes/C501_CTRL_ClassReg_CreateAcct.cls +++ b/src/classes/C501_CTRL_ClassReg_CreateAcct.cls @@ -237,6 +237,7 @@ public class C501_CTRL_ClassReg_CreateAcct { ApexPages.addMessage(new ApexPages.message(ApexPages.severity.ERROR,Label.C501_RegSite_ParentContactRequired) ); passValidation = false; } + if(term.Waiver__c == false){ ApexPages.addMessage(new ApexPages.message(ApexPages.severity.ERROR,Label.C501_ClassReg_WaiverRequired) ); noWaiver = true; @@ -245,6 +246,96 @@ public class C501_CTRL_ClassReg_CreateAcct { noWaiver = false; } + Boolean phoneFail = false; + + // Phone number validation + if(parent.MobilePhone != null){ + String NAformat = C501_UTIL_ClassRegUtilities.NAformatPhone(parent.MobilePhone); + if(NAformat != null){ + parent.MobilePhone = NAformat; + } else { + phoneFail = true; + parent.MobilePhone.addError(Label.C501_ClassReg_PhoneFailSpecific); + } + } + if(parent.HomePhone != null){ + String NAformat = C501_UTIL_ClassRegUtilities.NAformatPhone(parent.HomePhone); + if(NAformat != null){ + parent.HomePhone = NAformat; + } else { + phoneFail = true; + parent.HomePhone.addError(Label.C501_ClassReg_PhoneFailSpecific); + } + } + if(parent.OtherPhone != null){ + String NAformat = C501_UTIL_ClassRegUtilities.NAformatPhone(parent.OtherPhone); + if(NAformat != null){ + parent.OtherPhone = NAformat; + } else { + phoneFail = true; + parent.OtherPhone.addError(Label.C501_ClassReg_PhoneFailSpecific); + } + } + if(child.MobilePhone != null){ + String NAformat = C501_UTIL_ClassRegUtilities.NAformatPhone(child.MobilePhone); + if(NAformat != null){ + child.MobilePhone = NAformat; + } else { + phoneFail = true; + child.MobilePhone.addError(Label.C501_ClassReg_PhoneFailSpecific); + } + } + if(child.Alternate_Contact_Phone__c != null){ + String NAformat = C501_UTIL_ClassRegUtilities.NAformatPhone(child.Alternate_Contact_Phone__c); + if(NAformat != null){ + child.Alternate_Contact_Phone__c = NAformat; + } else { + phoneFail = true; + child.Alternate_Contact_Phone__c.addError(Label.C501_ClassReg_PhoneFailSpecific); + } + } + if(child.Emergency_Contact_2_Phone__c != null){ + String NAformat = C501_UTIL_ClassRegUtilities.NAformatPhone(child.Emergency_Contact_2_Phone__c); + if(NAformat != null){ + child.Emergency_Contact_2_Phone__c = NAformat; + } else { + phoneFail = true; + child.Emergency_Contact_2_Phone__c.addError(Label.C501_ClassReg_PhoneFailSpecific); + } + } + if(child.Authorized_Pickup_1_Phone__c != null){ + String NAformat = C501_UTIL_ClassRegUtilities.NAformatPhone(child.Authorized_Pickup_1_Phone__c); + if(NAformat != null){ + child.Authorized_Pickup_1_Phone__c = NAformat; + } else { + phoneFail = true; + child.Authorized_Pickup_1_Phone__c.addError(Label.C501_ClassReg_PhoneFailSpecific); + } + } + if(child.Authorized_Pickup_2_Phone__c != null){ + String NAformat = C501_UTIL_ClassRegUtilities.NAformatPhone(child.Authorized_Pickup_2_Phone__c); + if(NAformat != null){ + child.Authorized_Pickup_2_Phone__c = NAformat; + } else { + phoneFail = true; + child.Authorized_Pickup_2_Phone__c.addError(Label.C501_ClassReg_PhoneFailSpecific); + } + } + if(child.Authorized_Pickup_3_Phone__c != null){ + String NAformat = C501_UTIL_ClassRegUtilities.NAformatPhone(child.Authorized_Pickup_3_Phone__c); + if(NAformat != null){ + child.Authorized_Pickup_3_Phone__c = NAformat; + } else { + phoneFail = true; + child.Authorized_Pickup_3_Phone__c.addError(Label.C501_ClassReg_PhoneFailSpecific); + } + } + + if(phoneFail){ + passValidation = false; + ApexPages.addMessage(new ApexPages.message(ApexPages.severity.ERROR,Label.C501_ClassReg_PhoneFail) ); + } + if(passValidation == false){ return null; } @@ -264,6 +355,7 @@ public class C501_CTRL_ClassReg_CreateAcct { term.Student__c = child.Id; term.Parent__c = parent.Id; term.School__c = schoolName; + term.C501_Sign_Up_Source__c = 'Online'; schoolNameText = [Select id, Name, @@ -275,6 +367,7 @@ public class C501_CTRL_ClassReg_CreateAcct { npe5__Contact__r.LastName FROM npe5__Affiliations__r WHERE npe5__Status__c = 'Current' + AND npe5__Role__c = 'Teacher' ) from Account where id = :schoolName]; diff --git a/src/classes/C501_UTIL_ClassRegUtilities.cls b/src/classes/C501_UTIL_ClassRegUtilities.cls index 14e28e5..908602e 100644 --- a/src/classes/C501_UTIL_ClassRegUtilities.cls +++ b/src/classes/C501_UTIL_ClassRegUtilities.cls @@ -305,9 +305,24 @@ public class C501_UTIL_ClassRegUtilities { public static string cleanInputPhone(String input){ // to do: clean the string to make sure first number is not '1' and that there are 10 digits. String output = input.replaceAll('[^0-9]', ''); + if(output.left(1) == '1'){ + output = output.right( output.length()-1 ); + } + if(output.length() != 10){ + return null; + } return output; } + public static string NAformatPhone(String input){ + String output = cleanInputPhone(input); + if(output == null){ + return null; + } else { + return '('+output.left(3)+') '+output.left(6).right(3)+'-'+output.right(4); + } + } + public static String generateRandomString(Integer len, Boolean includeNumbers,Boolean includeUppers,Boolean includeLowers) { String chars = ''; if(includeNumbers){ diff --git a/src/labels/CustomLabels.labels b/src/labels/CustomLabels.labels index f510031..3f7287d 100644 --- a/src/labels/CustomLabels.labels +++ b/src/labels/CustomLabels.labels @@ -279,6 +279,20 @@ We may also look at your child’s school information, like attendance and cours C501_ClassReg_ParentWorkPhone Parent/Guardian Work Phone + + C501_ClassReg_PhoneFail + en_US + false + C501_ClassReg_PhoneFail + Please check the phone numbers you provided. + + + C501_ClassReg_PhoneFailSpecific + en_US + false + C501_ClassReg_PhoneFailSpecific + This not a valid phone number. + C501_ClassReg_PhotoVideo en_US diff --git a/src/objects/School_Term__c.object b/src/objects/School_Term__c.object index c2407c4..374e3e5 100644 --- a/src/objects/School_Term__c.object +++ b/src/objects/School_Term__c.object @@ -41,16 +41,6 @@ true - - byText - false - - - - byEmail - false - - Online false diff --git a/src/package.xml b/src/package.xml index a88444a..cb52caf 100644 --- a/src/package.xml +++ b/src/package.xml @@ -142,6 +142,8 @@ C501_ClassReg_ParentMobilePhone C501_ClassReg_ParentWorkPhone C501_ClassReg_ParentWorkPhone + C501_ClassReg_PhoneFail + C501_ClassReg_PhoneFailSpecific C501_ClassReg_PhotoVideo C501_ClassReg_PhotoVideoLabel C501_ClassReg_PhotoVideoP1 @@ -207,6 +209,10 @@ TwilioConfig__c CustomObject + + Class_Registration_data + Dashboard + Account.C501_Class_Registration_Site_HH_Acct Contact.C501_Class_Registration_Site_Child @@ -223,6 +229,10 @@ School_Term__c.X2016_17_School_Terms ListView + + Class_Reg_s_by_Signup_Method_This_Year + Report + techbridgeLogo StaticResource From 6886b73f8afa2206f6fe3896ce6fc1d3dce53d8b Mon Sep 17 00:00:00 2001 From: Jon Sayer Date: Fri, 19 Jul 2019 13:41:30 -0700 Subject: [PATCH 04/13] fixing bug with schoolName field. Changing default list view for Login Attempt object --- src/classes/C501_CTRL_ClassReg_CreateAcct.cls | 30 +- .../Class_Site_Login_Attempt__c.object | 2 + src/package.xml | 5 +- src/pages/C501_ClassReg_CreateAcct.page | 34 +- .../C501_Registration_Site_User.permissionset | 434 ++++++++++++++++++ 5 files changed, 492 insertions(+), 13 deletions(-) create mode 100644 src/permissionsets/C501_Registration_Site_User.permissionset diff --git a/src/classes/C501_CTRL_ClassReg_CreateAcct.cls b/src/classes/C501_CTRL_ClassReg_CreateAcct.cls index 85facea..a4d6c9f 100644 --- a/src/classes/C501_CTRL_ClassReg_CreateAcct.cls +++ b/src/classes/C501_CTRL_ClassReg_CreateAcct.cls @@ -7,16 +7,30 @@ public class C501_CTRL_ClassReg_CreateAcct { public Account family {get; set;} public String pageStatus {get; set;} public ID loginID {get; set;} - public String schoolName {get; set;} public Account schoolNameText {get; set;} public Boolean dontKnowId {get; set;} public Boolean noAllergies {get; set;} + + public String schoolName { + get{ + if(schoolName == null){ + system.debug('rerunning schoolName get line 18'); + schoolName = ''; + } + system.debug('returning school name'); + return schoolName; + } + set; + } + public String schoolRegion { get{ if(schoolRegion == null){ + system.debug('rerunning schoolRegion get line 18'); schoolRegion = ''; } + system.debug('returning school region'); return schoolRegion; } set; @@ -36,9 +50,11 @@ public class C501_CTRL_ClassReg_CreateAcct { public List schoolList { get { if(schoolList == null ){ + system.debug('rerunning schoolList get line 41'); schoolList = getSelectOptionsActiveSchools(schoolRegion); } System.debug('List schoolList run: ' + schoolList); + system.debug('returning schoolList'); return schoolList; } set; } @@ -49,6 +65,7 @@ public class C501_CTRL_ClassReg_CreateAcct { public List childFieldSet {get; set;} public C501_CTRL_ClassReg_CreateAcct(){ + language = ApexPages.currentPage().getParameters().get('l'); if(language == null){ language = 'en_US'; @@ -113,6 +130,7 @@ public class C501_CTRL_ClassReg_CreateAcct { noStuID = false; noAllergyResp = false; needPickup = false; + schoolregion = ''; Map FsAcctMap = Schema.SObjectType.Account.fieldSets.getMap(); Map FsContMap = Schema.SObjectType.Contact.fieldSets.getMap(); @@ -335,7 +353,7 @@ public class C501_CTRL_ClassReg_CreateAcct { passValidation = false; ApexPages.addMessage(new ApexPages.message(ApexPages.severity.ERROR,Label.C501_ClassReg_PhoneFail) ); } - + system.debug( 'SchoolName after validation attempts: ' + schoolName ); if(passValidation == false){ return null; } @@ -392,8 +410,10 @@ public class C501_CTRL_ClassReg_CreateAcct { teacherName = teacherName + schoolNameText.npe5__Affiliations__r[i].npe5__Contact__r.FirstName + ' ' +schoolNameText.npe5__Affiliations__r[i].npe5__Contact__r.LastName; } - - String nextStartDate = Datetime.newInstance(schoolNameText.C501_Next_Program_Start_Date__c, Time.newInstance(0,0,0,0)).format('MMMMM d, yyyy'); + String nextStartDate = ''; + if(schoolNameText.C501_Next_Program_Start_Date__c != null){ + nextStartDate = Datetime.newInstance(schoolNameText.C501_Next_Program_Start_Date__c, Time.newInstance(0,0,0,0)).format('MMMMM d, yyyy'); + } String emailMessage = Label.C501_RegSite_ConfirmSMS+' '+schoolNameText.Name +Label.C501_RegSite_EmailConfirmP2+' '+nextStartDate+' '+Label.C501_RegSite_EmailConfirmP3+' '+teacherName+Label.C501_RegSite_EmailConfirmP4; C501_UTIL_ClassRegUtilities.SendEmailGeneric('salesforce@techbridgegirls.org',parent.Email,Label.C501_RegSite_ConfirmSMS+' '+schoolNameText.Name,emailMessage); @@ -416,6 +436,7 @@ public class C501_CTRL_ClassReg_CreateAcct { } public static List getListOfActiveSchools(String regionFilter){ + system.debug('rerunning getListOfActiveSchools line 424'); Id schoolRecordType = [select id from Recordtype where Name='School'].Id; List schoolList = new List(); schoolList = [ @@ -430,6 +451,7 @@ public class C501_CTRL_ClassReg_CreateAcct { ORDER BY School_District_Lookup__r.Name, Name ]; if(schoolList.size() == 0){ + system.debug('first query returned null, pulling whole list'); schoolList = [ SELECT id, Name, diff --git a/src/objects/Class_Site_Login_Attempt__c.object b/src/objects/Class_Site_Login_Attempt__c.object index e3e0c52..9276f3c 100644 --- a/src/objects/Class_Site_Login_Attempt__c.object +++ b/src/objects/Class_Site_Login_Attempt__c.object @@ -139,7 +139,9 @@ Tracks logins to the Class Registration Site. All NAME + Account__c Login_IP_Address__c + Code_Sent_To__c Secret_Code__c SMS_Timestamp__c Everything diff --git a/src/package.xml b/src/package.xml index cb52caf..3053aad 100644 --- a/src/package.xml +++ b/src/package.xml @@ -59,7 +59,6 @@ Contact.Parent_Education_second_parent__c Contact.Parent_Education_second_parent__c Contact.Preferred_Method_of_Contact__c - Contact.Preferred_Method_of_Contact__c Contact.Race__c Contact.Student_Special_Needs__c Contact.Student_Transportation__c @@ -229,6 +228,10 @@ School_Term__c.X2016_17_School_Terms ListView + + C501_Registration_Site_User + PermissionSet + Class_Reg_s_by_Signup_Method_This_Year Report diff --git a/src/pages/C501_ClassReg_CreateAcct.page b/src/pages/C501_ClassReg_CreateAcct.page index e362503..3b7d276 100644 --- a/src/pages/C501_ClassReg_CreateAcct.page +++ b/src/pages/C501_ClassReg_CreateAcct.page @@ -171,21 +171,22 @@
- +
- +
- + +
Error: {! $Label.C501_ClassReg_PlzSelectOne } @@ -195,7 +196,7 @@
- + @@ -660,8 +661,8 @@
- - + @@ -680,8 +681,8 @@ - - +
@@ -1109,9 +1110,26 @@
--> diff --git a/src/permissionsets/C501_Registration_Site_User.permissionset b/src/permissionsets/C501_Registration_Site_User.permissionset new file mode 100644 index 0000000..1127abb --- /dev/null +++ b/src/permissionsets/C501_Registration_Site_User.permissionset @@ -0,0 +1,434 @@ + + + + false + Account.C501_Class_Site_Mobile_Number_Lookup__c + true + + + false + Account.C501_Class_Site_Mobile_Number__c + true + + + false + Account.C501_Next_program_start_date__c + true + + + false + Account.Primary_Teacher__c + false + + + false + Account.Region__c + true + + + false + Account.Secondary_Teacher__c + false + + + false + Account.Teachers_at_Site__c + false + + + true + Class_Site_Login_Attempt__c.Account__c + true + + + true + Class_Site_Login_Attempt__c.Code_Sent_To__c + true + + + true + Class_Site_Login_Attempt__c.Login_Attempts__c + true + + + true + Class_Site_Login_Attempt__c.Login_IP_Address__c + true + + + true + Class_Site_Login_Attempt__c.SMS_Timestamp__c + true + + + true + Class_Site_Login_Attempt__c.Secret_Code__c + true + + + true + Class_Site_Login_Attempt__c.Verified__c + true + + + true + Contact.Allergies__c + true + + + true + Contact.Alternate_Contact_Name__c + true + + + true + Contact.Alternate_Contact_Phone__c + true + + + true + Contact.Alternate_Contact_Relationship__c + true + + + true + Contact.Authorized_Pickup_1_Name__c + true + + + true + Contact.Authorized_Pickup_1_Phone__c + true + + + true + Contact.Authorized_Pickup_1_Relationship__c + true + + + true + Contact.Authorized_Pickup_2_Name__c + true + + + true + Contact.Authorized_Pickup_2_Phone__c + true + + + true + Contact.Authorized_Pickup_2_Relationship__c + true + + + true + Contact.Authorized_Pickup_3_Name__c + true + + + true + Contact.Authorized_Pickup_3_Phone__c + true + + + true + Contact.Authorized_Pickup_3_Relationship__c + true + + + true + Contact.Emergency_Contact_2_Name__c + true + + + true + Contact.Emergency_Contact_2_Phone__c + true + + + true + Contact.Emergency_Contact_2_Relationship__c + true + + + true + Contact.Emergency_Preferred_Medical_Provider__c + true + + + true + Contact.Income__c + true + + + true + Contact.Medication__c + true + + + true + Contact.Number_in_Household_Picklist__c + true + + + false + Contact.Number_in_Household__c + false + + + true + Contact.Parent_Education__c + true + + + true + Contact.Parent_Education_second_parent__c + true + + + true + Contact.Preferred_Method_of_Contact__c + true + + + true + Contact.Race__c + true + + + true + Contact.Student_Special_Needs__c + true + + + true + Contact.Student_Transportation__c + true + + + true + Contact.T_shirt_Size__c + true + + + true + Contact.Translation_Needed__c + true + + + true + Contact.Volunteer_Roles_Interest__c + true + + + false + Contact.Volunteer__c + false + + + false + School_Term__c.Active_Year__c + true + + + true + School_Term__c.Authorization_to_treat_minor__c + true + + + true + School_Term__c.C501_Sign_Up_Source__c + true + + + true + School_Term__c.Contract__c + true + + + false + School_Term__c.Current_Term__c + true + + + false + School_Term__c.Emergency_Preferred_Medical_Provider__c + true + + + true + School_Term__c.Evaluation_Consent__c + true + + + false + School_Term__c.Family_Income_Level__c + true + + + true + School_Term__c.Free_reduced_lunch__c + true + + + true + School_Term__c.Left_Program_Early_Date__c + true + + + true + School_Term__c.Left_Program_Early__c + true + + + true + School_Term__c.Media_Release__c + true + + + true + School_Term__c.Notes__c + true + + + false + School_Term__c.Parent_Email__c + true + + + true + School_Term__c.Parent_Packet_URL_Unsigned__c + true + + + true + School_Term__c.Parent_Packet_URL__c + true + + + true + School_Term__c.Parent_Packet__c + true + + + true + School_Term__c.Parent_Survey__c + true + + + true + School_Term__c.Parent__c + true + + + true + School_Term__c.Post_Survey__c + true + + + true + School_Term__c.Pre_Survey__c + true + + + true + School_Term__c.Program_Day__c + true + + + false + School_Term__c.School_Region__c + true + + + true + School_Term__c.School_Year__c + true + + + true + School_Term__c.Start_Date__c + true + + + true + School_Term__c.Student_School_ID__c + true + + + true + School_Term__c.Waiver__c + true + + false + + Salesforce + + false + false + false + true + false + Account + false + + + true + false + true + true + false + Class_Site_Login_Attempt__c + true + + + false + false + false + true + false + Contact + false + + + true + false + false + true + false + School_Term__c + false + + + C501_ClassRegSiteTemplate + true + + + C501_ClassReg_CreateAcct + true + + + C501_ClassReg_Login + true + + + C501_ClassReg_SelectLang + true + + + Account.HH_Account + true + + + Account.School + true + + + Contact.Parent + true + + + Contact.Student + true + + From 4e2e598253501933dfb1d4a0cfa52014b4e99249 Mon Sep 17 00:00:00 2001 From: Jon Sayer Date: Mon, 22 Jul 2019 15:49:58 -0700 Subject: [PATCH 05/13] Adding documentation, correction to package.xml --- ...istration System - Admin documentation.docx | Bin 0 -> 146560 bytes src/package.xml | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 Class registration System - Admin documentation.docx diff --git a/Class registration System - Admin documentation.docx b/Class registration System - Admin documentation.docx new file mode 100644 index 0000000000000000000000000000000000000000..9f2ef06335c10a88eb17f44ef62b97a98dd05bfd GIT binary patch literal 146560 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 zZ(CustomObject - Class_Registration_data + * Dashboard @@ -233,7 +233,7 @@ PermissionSet - Class_Reg_s_by_Signup_Method_This_Year + * Report From 6edf5729f1efe4dea8245a8673cd10f142d4635d Mon Sep 17 00:00:00 2001 From: Jon Sayer Date: Sat, 27 Jul 2019 10:48:12 -0700 Subject: [PATCH 06/13] changes to allow OWA email sending, changes to page layout --- src/package.xml | 2 ++ src/permissionsets/C501_Registration_Site_User.permissionset | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/src/package.xml b/src/package.xml index 52b76f6..ed82867 100644 --- a/src/package.xml +++ b/src/package.xml @@ -50,6 +50,7 @@ Contact.Emergency_Contact_2_Phone__c Contact.Emergency_Contact_2_Relationship__c Contact.Emergency_Preferred_Medical_Provider__c + School_Term__c.C501_Free_Reduced_Lunch_Picklist__c Contact.Income__c Contact.Medication__c Contact.Number_in_Household_Picklist__c @@ -64,6 +65,7 @@ Contact.Student_Transportation__c Contact.T_shirt_Size__c Contact.Translation_Needed__c + Contact.Translation_Needed_Other Contact.Volunteer__c School_Term__c.Active_Year__c School_Term__c.Authorization_to_treat_minor__c diff --git a/src/permissionsets/C501_Registration_Site_User.permissionset b/src/permissionsets/C501_Registration_Site_User.permissionset index 1127abb..3f338fd 100644 --- a/src/permissionsets/C501_Registration_Site_User.permissionset +++ b/src/permissionsets/C501_Registration_Site_User.permissionset @@ -225,6 +225,11 @@ Contact.Volunteer__c false + + true + School_Term__c.C501_Free_Reduced_Lunch_Picklist__c + true + false School_Term__c.Active_Year__c From 577ba56a366be7135f3444ca17cd2e5d497ac4fe Mon Sep 17 00:00:00 2001 From: Jon Sayer Date: Thu, 1 Aug 2019 18:42:28 -0700 Subject: [PATCH 07/13] adding email templates, reports, and dashboards --- src/classes/C501_CTRL_ClassReg_CreateAcct.cls | 13 +- src/classes/C501_UTIL_ClassRegUtilities.cls | 69 +- .../Class_registration_datax.dashboard | 40 + ...1_Class_Registration_Confirmation_VF.email | 6 + ...egistration_Confirmation_VF.email-meta.xml | 11 + ...ss_Registration_Confirmation_Message.email | 20 + ...ration_Confirmation_Message.email-meta.xml | 10 + src/labels/CustomLabels.labels | 37 +- .../School_Term__c-School Term Layout.layout | 4 + .../Class_Site_Login_Attempt__c.object | 100 ++ src/objects/Contact.object | 19 +- src/objects/School_Term__c.object | 31 + src/package.xml | 18 +- src/pages/C501_ClassRegSiteTemplate.page | 8 + src/pages/C501_ClassReg_CreateAcct.page | 952 +++++++++++------- .../C501_Registration_Site_User.permissionset | 15 +- ...ss_Reg_s_by_Signup_Method_This_Year.report | 54 + ...ass_Regs_by_Signup_Method_This_Year.report | 54 + 18 files changed, 1021 insertions(+), 440 deletions(-) create mode 100644 src/dashboards/Public_Dashboards/Class_registration_datax.dashboard create mode 100644 src/email/unfiled$public/C501_Class_Registration_Confirmation_VF.email create mode 100644 src/email/unfiled$public/C501_Class_Registration_Confirmation_VF.email-meta.xml create mode 100644 src/email/unfiled$public/C501_RegSite_Class_Registration_Confirmation_Message.email create mode 100644 src/email/unfiled$public/C501_RegSite_Class_Registration_Confirmation_Message.email-meta.xml create mode 100644 src/reports/unfiled$public/Class_Reg_s_by_Signup_Method_This_Year.report create mode 100644 src/reports/unfiled$public/Class_Regs_by_Signup_Method_This_Year.report diff --git a/src/classes/C501_CTRL_ClassReg_CreateAcct.cls b/src/classes/C501_CTRL_ClassReg_CreateAcct.cls index a4d6c9f..5f638e7 100644 --- a/src/classes/C501_CTRL_ClassReg_CreateAcct.cls +++ b/src/classes/C501_CTRL_ClassReg_CreateAcct.cls @@ -396,9 +396,13 @@ public class C501_CTRL_ClassReg_CreateAcct { insert term; if(parent.MobilePhone != null && parent.MobilePhone != '' ){ String SMSmessage = Label.C501_RegSite_ConfirmSMS+' '+schoolNameText.Name; + if(parent.Email != null && parent.Email != ''){ + SMSmessage = SMSmessage + Label.C501_RegSite_SMSweSentAnEmail + ' ' + parent.Email; + } C501_UTIL_ClassRegUtilities.logActivityToContact(parent.Id,SMSmessage, SMSmessage,'Call'); C501_UTIL_ClassRegUtilities.sendSMSGenericFuture(parent.MobilePhone,Label.C501_RegSite_ConfirmSMS+' '+schoolNameText.Name ); } + if(parent.Email != null && parent.Email != '' ){ String teacherName = ''; for(Integer i = 0; i < schoolNameText.npe5__Affiliations__r.size(); i++){ @@ -415,10 +419,13 @@ public class C501_CTRL_ClassReg_CreateAcct { nextStartDate = Datetime.newInstance(schoolNameText.C501_Next_Program_Start_Date__c, Time.newInstance(0,0,0,0)).format('MMMMM d, yyyy'); } - String emailMessage = Label.C501_RegSite_ConfirmSMS+' '+schoolNameText.Name +Label.C501_RegSite_EmailConfirmP2+' '+nextStartDate+' '+Label.C501_RegSite_EmailConfirmP3+' '+teacherName+Label.C501_RegSite_EmailConfirmP4; - C501_UTIL_ClassRegUtilities.SendEmailGeneric('salesforce@techbridgegirls.org',parent.Email,Label.C501_RegSite_ConfirmSMS+' '+schoolNameText.Name,emailMessage); + Id templateId = [Select id from EmailTemplate where DeveloperName = 'C501_RegSite_Class_Registration_Confirmation_Message'].Id; + + //String emailMessage = Label.C501_RegSite_ConfirmSMS+' '+schoolNameText.Name +Label.C501_RegSite_EmailConfirmP2+' '+nextStartDate+' '+Label.C501_RegSite_EmailConfirmP3+' '+teacherName+Label.C501_RegSite_EmailConfirmP4; + //C501_UTIL_ClassRegUtilities.SendEmailGeneric('salesforce@techbridgegirls.org',parent.Email,Label.C501_RegSite_ConfirmSMS+' '+schoolNameText.Name,emailMessage); + C501_UTIL_ClassRegUtilities.SendEmailGeneric('salesforce@techbridgegirls.org',null,null,null,term.Id,templateId,parent.Id); - C501_UTIL_ClassRegUtilities.logActivityToContact(parent.Id,Label.C501_RegSite_ConfirmSMS+' '+schoolNameText.Name, emailMessage,'Email'); + //C501_UTIL_ClassRegUtilities.logActivityToContact(parent.Id,Label.C501_RegSite_ConfirmSMS+' '+schoolNameText.Name, emailMessage,'Email'); } pageStatus = 'finished'; return null; diff --git a/src/classes/C501_UTIL_ClassRegUtilities.cls b/src/classes/C501_UTIL_ClassRegUtilities.cls index 908602e..068ea7c 100644 --- a/src/classes/C501_UTIL_ClassRegUtilities.cls +++ b/src/classes/C501_UTIL_ClassRegUtilities.cls @@ -191,12 +191,12 @@ public class C501_UTIL_ClassRegUtilities { public static void sendEmailConfirmation(ID AcctID, String emailAddress){ Class_Site_Login_Attempt__c att = generateLoginCode(AcctID, emailAddress); String message = Label.C501_ClassReg_CodeMessage + ' '+att.Secret_Code__c + ' ' +Label.C501_ClassReg_CodeMessageDisclaim+' '+Label.C501_ClassReg_CodeMessageExpire; - SendEmailGeneric('salesforce@techbridgegirls.org',emailAddress,Label.C501_ClassReg_ConfirmCodeSubject,message); + SendEmailGeneric('salesforce@techbridgegirls.org',emailAddress,Label.C501_ClassReg_ConfirmCodeSubject,message,null,null,null); insert att; } - public static void SendEmailGeneric(String fromAddress,String toAddress,String subject,String message){ - // Blatantly stolen from here: https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_forcecom_email_outbound.htm + public static void SendEmailGeneric(String fromAddress,String toAddress,String subject,String message,ID associatedRecord,ID templateId,ID targetRecord){ + // Blatantly stolen from here and modified: https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_forcecom_email_outbound.htm // First, reserve email capacity for the current Apex transaction to ensure // that we won't exceed our daily email limits when sending email after @@ -210,33 +210,50 @@ public class C501_UTIL_ClassRegUtilities { // that will send out a single email to the addresses in the To, CC & BCC list. Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage(); + OrgWideEmailAddress[] owea = [select Id from OrgWideEmailAddress where Address = :fromAddress and IsAllowAllProfiles = true]; + if(owea.size() > 0){ + mail.setOrgWideEmailAddressId(owea.get(0).Id); + } + + // Strings to hold the email addresses to which you are sending the email. List toAddresses = new List(); toAddresses.add(toAddress); + + if(owea.size() == 0){ + // Specify the address used when the recipients reply to the email. + mail.setReplyTo(fromAddress); + + // Specify the name used as the display name. + mail.setSenderDisplayName('Techbridge Girls'); + } - // Assign the addresses for the To and CC lists to the mail object. - mail.setToAddresses(toAddresses); - - // Specify the address used when the recipients reply to the email. - mail.setReplyTo(fromAddress); - - // Specify the name used as the display name. - mail.setSenderDisplayName('Techbridge Girls'); - - // Specify the subject line for your email address. - mail.setSubject(subject); - - // Set to True if you want to BCC yourself on the email. - mail.setBccSender(false); - - // Optionally append the salesforce.com email signature to the email. - // The email address of the user executing the Apex Code will be used. - mail.setUseSignature(false); - - // Specify the text content of the email. - mail.setPlainTextBody(message); - - mail.setHtmlBody('

'+message+'

'); + // if we are using a template, set that. If not, send with supplied variables. + if(templateId != null && associatedRecord != null){ + mail.setTemplateID(templateId); + mail.setTargetObjectId(targetRecord); + mail.setWhatId(associatedRecord); + // save a copy of this as an activity to the supplied contact ie target record + mail.setSaveAsActivity(true); + } else { + // Specify the subject line for your email address. + mail.setSubject(subject); + + // Assign the addresses for the To and CC lists to the mail object. + mail.setToAddresses(toAddresses); + + // Set to True if you want to BCC yourself on the email. + mail.setBccSender(false); + + // Optionally append the salesforce.com email signature to the email. + // The email address of the user executing the Apex Code will be used. + mail.setUseSignature(false); + + // Specify the text content of the email. + mail.setPlainTextBody(message); + + mail.setHtmlBody('

'+message+'

'); + } // Send the email you have created. Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail }); diff --git a/src/dashboards/Public_Dashboards/Class_registration_datax.dashboard b/src/dashboards/Public_Dashboards/Class_registration_datax.dashboard new file mode 100644 index 0000000..9706fbc --- /dev/null +++ b/src/dashboards/Public_Dashboards/Class_registration_datax.dashboard @@ -0,0 +1,40 @@ + + + #FFFFFF + Diagonal + #FFFFFF + SpecifiedUser + false + + Medium + + true + Auto + Pie + Auto + false + false + false + true + +
Class Reg's This Year by Method
+ Bottom + unfiled$public/Class_Reg_s_by_Signup_Method_This_Year + true + true + RowLabelAscending + false +
+
+ + Medium + + + Medium + + 501commons@techbridgegirls.org + #000000 + Class registration data + #000000 + 12 +
diff --git a/src/email/unfiled$public/C501_Class_Registration_Confirmation_VF.email b/src/email/unfiled$public/C501_Class_Registration_Confirmation_VF.email new file mode 100644 index 0000000..b78902b --- /dev/null +++ b/src/email/unfiled$public/C501_Class_Registration_Confirmation_VF.email @@ -0,0 +1,6 @@ + + +Congratulations! +This is your new Visualforce Email Template. + + \ No newline at end of file diff --git a/src/email/unfiled$public/C501_Class_Registration_Confirmation_VF.email-meta.xml b/src/email/unfiled$public/C501_Class_Registration_Confirmation_VF.email-meta.xml new file mode 100644 index 0000000..5d0c7e1 --- /dev/null +++ b/src/email/unfiled$public/C501_Class_Registration_Confirmation_VF.email-meta.xml @@ -0,0 +1,11 @@ + + + 46.0 + true + ISO-8859-1 + Class Registration: Confirmation Message + + Confirmation for your class registration + visualforce + Aloha + diff --git a/src/email/unfiled$public/C501_RegSite_Class_Registration_Confirmation_Message.email b/src/email/unfiled$public/C501_RegSite_Class_Registration_Confirmation_Message.email new file mode 100644 index 0000000..e833eda --- /dev/null +++ b/src/email/unfiled$public/C501_RegSite_Class_Registration_Confirmation_Message.email @@ -0,0 +1,20 @@ +Student Name + +Student Email + +Student Phone + +Address + +School + +Grade + +Transportation home after Techbridge Girls program ends: + + +Individuals Authorized to Pickup Your Child + +Emergency Contact(s) + +Student Birthdate \ No newline at end of file diff --git a/src/email/unfiled$public/C501_RegSite_Class_Registration_Confirmation_Message.email-meta.xml b/src/email/unfiled$public/C501_RegSite_Class_Registration_Confirmation_Message.email-meta.xml new file mode 100644 index 0000000..2f98862 --- /dev/null +++ b/src/email/unfiled$public/C501_RegSite_Class_Registration_Confirmation_Message.email-meta.xml @@ -0,0 +1,10 @@ + + + true + ISO-8859-1 + Class Registration: Confirmation Message + + Confirmation for your class registration + text + Aloha + diff --git a/src/labels/CustomLabels.labels b/src/labels/CustomLabels.labels index 3f7287d..896f148 100644 --- a/src/labels/CustomLabels.labels +++ b/src/labels/CustomLabels.labels @@ -89,14 +89,14 @@ en_US false C501_ClassReg_CodeMessage - Hello There! Your code for the Techbridge Girls registration system is: + Your Techbridge Girls verification code is C501_ClassReg_CodeMessageDisclaim en_US false C501_ClassReg_CodeMessageDisclaim - This is an unmonitored account so please don’t reply. + . This phone number is unmonitored. C501_ClassReg_CodeMessageExpire @@ -117,7 +117,7 @@ en_US false C501_ClassReg_EmergencySubtext - In case the parent/guardian cannot be reached, please provide an EMERGENCY CONTACT. + In case the parent/guardian cannot be reached, please provide an EMERGENCY CONTACT (other than yourself). C501_ClassReg_EvalStudy @@ -419,6 +419,17 @@ We may also look at your child’s school information, like attendance and cours C501_RegSite_CodeMismatch That doesn't seem to match the code we sent you. Try again? + + C501_RegSite_ConfirmContact + en_US + false + C501_RegSite_ConfirmContact + <p>If you have any questions or notice a mistake in your responses below, please contact the following regional coordinators based on where your student attends school:</p> + +<p>California or Pacific Northwest (WA, ID, OR, MT, AK) - <a href="mailto:lkraushaar@techbridgegirls.org">lkraushaar@techbridgegirls.org</a></p> + +<p>Washington DC Metro - <a href="mailto:cjames@techbridgegirls.org">cjames@techbridgegirls.org</a></p> + C501_RegSite_ConfirmMessageSite en_US @@ -501,7 +512,7 @@ We may also look at your child’s school information, like attendance and cours en_US false C501_RegSite_Grade - Grade + Grade (for 2018-19 school year) C501_RegSite_InvalidEmailPhone @@ -587,12 +598,19 @@ We may also look at your child’s school information, like attendance and cours C501_RegSite_PickUpChildError Please identify someone who can pick up your child from the program. + + C501_RegSite_PlzAreaCode + en_US + false + C501_RegSite_PlzAreaCode + Please include area code: (###) ###-#### + C501_RegSite_ProvidePhoneEmail en_US false C501_RegSite_ProvidePhoneEmail - Please provide your phone number or email address to log in. + Please provide your phone number or email address to access the student registration system. C501_RegSite_ProvideStudentId @@ -608,6 +626,13 @@ We may also look at your child’s school information, like attendance and cours C501_RegSite_RememberMeDevice Remember me on this device. + + C501_RegSite_SMSweSentAnEmail + en_US + false + C501_RegSite_SMSweSentAnEmail + An email with registration info has been sent to + C501_RegSite_SelectGrade en_US @@ -634,7 +659,7 @@ We may also look at your child’s school information, like attendance and cours en_US false C501_RegSite_SiteRegFormTitle - Techbridge Girls Class Registration Form + Techbridge Girls Student Registration Form C501_RegSite_State diff --git a/src/layouts/School_Term__c-School Term Layout.layout b/src/layouts/School_Term__c-School Term Layout.layout index db1f511..7e14956 100644 --- a/src/layouts/School_Term__c-School Term Layout.layout +++ b/src/layouts/School_Term__c-School Term Layout.layout @@ -31,6 +31,10 @@ Edit C501_Sign_Up_Source__c + + Edit + C501_Free_Reduced_Lunch_Picklist__c + diff --git a/src/objects/Class_Site_Login_Attempt__c.object b/src/objects/Class_Site_Login_Attempt__c.object index 9276f3c..eb2686d 100644 --- a/src/objects/Class_Site_Login_Attempt__c.object +++ b/src/objects/Class_Site_Login_Attempt__c.object @@ -4,40 +4,140 @@ Accept Default + + Accept + Large + Default + + + Accept + Small + Default + + + CancelEdit + Default + + + CancelEdit + Large + Default + CancelEdit + Small + Default + + + Clone Default Clone + Large + Default + + + Clone + Small + Default + + + Delete + Default + + + Delete + Large Default Delete + Small + Default + + + Edit + Default + + + Edit + Large Default Edit + Small Default List Default + + List + Large + Default + + + List + Small + Default + + + New + Default + + + New + Large + Default + New + Small + Default + + + SaveEdit Default SaveEdit + Large + Default + + + SaveEdit + Small + Default + + + Tab + Default + + + Tab + Large Default Tab + Small + Default + + + View + Default + + + View + Large Default View + Small Default false diff --git a/src/objects/Contact.object b/src/objects/Contact.object index 97cfd80..ab90ba0 100644 --- a/src/objects/Contact.object +++ b/src/objects/Contact.object @@ -33,11 +33,6 @@ false false - - Translation_Needed__c - false - false - Parent_Education__c false @@ -68,7 +63,7 @@ Allergies__c false - Does your child have any food restrictions or food allergies (vegetarian, vegan, dairy, gluten, nuts, kosher, Halal, seafood, no pork products, etc.)? (If Yes, please explain. If No, please check the box below.) + Does your child have any dietary restrictions or food allergies (vegetarian, vegan, dairy, gluten, nuts, kosher, Halal, seafood, no pork products, etc.)? If Yes, please explain. If No, please check the box below. 255 false @@ -712,6 +707,18 @@ + + Translation_Needed_Other__c + false + Other Language: + + 55 + false + false + false + Text + false + Translation_Needed__c false diff --git a/src/objects/School_Term__c.object b/src/objects/School_Term__c.object index 374e3e5..e0c2506 100644 --- a/src/objects/School_Term__c.object +++ b/src/objects/School_Term__c.object @@ -24,6 +24,37 @@ false Checkbox + + C501_Free_Reduced_Lunch_Picklist__c + false + Does your child qualify for free/reduced lunch? + + false + false + false + Picklist + + true + + false + + Yes + false + + + + No + false + + + + Unsure + false + + + + + C501_Sign_Up_Source__c false diff --git a/src/package.xml b/src/package.xml index ed82867..b12009f 100644 --- a/src/package.xml +++ b/src/package.xml @@ -50,7 +50,6 @@ Contact.Emergency_Contact_2_Phone__c Contact.Emergency_Contact_2_Relationship__c Contact.Emergency_Preferred_Medical_Provider__c - School_Term__c.C501_Free_Reduced_Lunch_Picklist__c Contact.Income__c Contact.Medication__c Contact.Number_in_Household_Picklist__c @@ -64,11 +63,12 @@ Contact.Student_Special_Needs__c Contact.Student_Transportation__c Contact.T_shirt_Size__c + Contact.Translation_Needed_Other__c Contact.Translation_Needed__c - Contact.Translation_Needed_Other Contact.Volunteer__c School_Term__c.Active_Year__c School_Term__c.Authorization_to_treat_minor__c + School_Term__c.C501_Free_Reduced_Lunch_Picklist__c School_Term__c.C501_Sign_Up_Source__c School_Term__c.Contract__c School_Term__c.Current_Term__c @@ -165,6 +165,7 @@ C501_RegSite_ChildLastName C501_RegSite_City C501_RegSite_CodeMismatch + C501_RegSite_ConfirmContact C501_RegSite_ConfirmMessageSite C501_RegSite_ConfirmSMS C501_RegSite_Continue @@ -189,9 +190,11 @@ C501_RegSite_ParentFirstName C501_RegSite_ParentLastName C501_RegSite_PickUpChildError + C501_RegSite_PlzAreaCode C501_RegSite_ProvidePhoneEmail C501_RegSite_ProvideStudentId C501_RegSite_RememberMeDevice + C501_RegSite_SMSweSentAnEmail C501_RegSite_SelectGrade C501_RegSite_SelectSchool C501_RegSite_SelectState @@ -211,9 +214,14 @@ CustomObject
- * + unfiled$public/Class_registration_datax Dashboard + + unfiled$public/C501_Class_Registration_Confirmation_VF + unfiled$public/C501_RegSite_Class_Registration_Confirmation_Message + EmailTemplate + Account.C501_Class_Registration_Site_HH_Acct Contact.C501_Class_Registration_Site_Child @@ -235,12 +243,12 @@ PermissionSet - * + unfiled$public/Class_Regs_by_Signup_Method_This_Year Report techbridgeLogo StaticResource - 45.0 + 46.0 diff --git a/src/pages/C501_ClassRegSiteTemplate.page b/src/pages/C501_ClassRegSiteTemplate.page index 623a9f6..dd552e0 100644 --- a/src/pages/C501_ClassRegSiteTemplate.page +++ b/src/pages/C501_ClassRegSiteTemplate.page @@ -158,6 +158,14 @@ color:red; } + .errorMsg { + font-size:125% + } + + input.error,select.error, textarea.error { + background-color:#fdd; + } + #oldBrowserAlert { display: none; width:100%; diff --git a/src/pages/C501_ClassReg_CreateAcct.page b/src/pages/C501_ClassReg_CreateAcct.page index 3b7d276..547707f 100644 --- a/src/pages/C501_ClassReg_CreateAcct.page +++ b/src/pages/C501_ClassReg_CreateAcct.page @@ -1,4 +1,4 @@ - +
@@ -63,8 +63,9 @@
- - {! $Label.C501_RegSite_LeaveBlank } + + {! $Label.C501_RegSite_LeaveBlank }
+ {! $Label.C501_RegSite_PlzAreaCode }
@@ -87,7 +88,7 @@
- @@ -183,7 +184,7 @@
- + @@ -204,7 +205,7 @@
- + @@ -217,56 +218,7 @@
-
-
-

- {! $Label.C501_RegSite_EmergencyContacts } -

-

- {! $Label.C501_ClassReg_EmergencySubtext } -

-
-
-
-
-
- - -
-
-
-
- - -
-
-
-
- - -
-
-
-
-
-
- - -
-
-
-
- - -
-
-
-
- - -
-
-
+

@@ -300,19 +252,20 @@
- +
- + + {! $Label.C501_RegSite_PlzAreaCode }
- +

@@ -327,6 +280,7 @@
+ {! $Label.C501_RegSite_PlzAreaCode }
@@ -347,6 +301,7 @@
+ {! $Label.C501_RegSite_PlzAreaCode }
@@ -357,6 +312,59 @@
+
+
+

+ {! $Label.C501_RegSite_EmergencyContacts } +

+

+ {! $Label.C501_ClassReg_EmergencySubtext } +

+
+
+
+
+
+ + +
+
+
+
+ + + {! $Label.C501_RegSite_PlzAreaCode } +
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+
+
+ + + {! $Label.C501_RegSite_PlzAreaCode } +
+
+
+
+ + +
+
+
+

@@ -376,16 +384,16 @@
-
- +
+
- - + + {! $Label.C501_RegSite_DontKnowID } @@ -400,8 +408,8 @@
-
- +
+ {! $Label.C501_RegSite_NoAllergies } @@ -480,25 +488,44 @@
- {! $Label.C501_RegSite_LeaveBlank } + {! $Label.C501_RegSite_LeaveBlank }
+ {! $Label.C501_RegSite_PlzAreaCode }
- {! $Label.C501_RegSite_LeaveBlank } + {! $Label.C501_RegSite_LeaveBlank }
+ {! $Label.C501_RegSite_PlzAreaCode }
+ {! $Label.C501_RegSite_LeaveBlank }
+ {! $Label.C501_RegSite_PlzAreaCode } +
+
+
+
+
+
+ + {! $Label.C501_RegSite_LeaveBlank }
- +
+
+
+ + +
+
+
@@ -542,7 +569,7 @@ {! $Label.C501_ClassReg_PARTICIPANT_WAIVERp3 }

- +

@@ -691,393 +718,540 @@
-
-

- {! $Label.C501_RegSite_FinishedApp } -

+
+

+ {! $Label.C501_RegSite_FinishedApp } +

+

+ {! $Label.C501_RegSite_ConfirmMessageSite } +

+ +
+
+
+
+

+ {! $Label.C501_RegSite_StudentInformation } +

+
+
+
+
+
+

- {! $Label.C501_RegSite_ConfirmMessageSite } +

-
-
-

- {! $Label.C501_RegSite_StudentInformation } -

+
+
+ +

+ +

-
-
-
- -

- -

-
+
+ +
+
+
+ + +

+ +

+
-
-
- -

- -

-
+
+
+
+ + +

+ +

- -
-
-
- - -

- -

- -
+
+ +
+
+
+ +

+ +

-
-
- - -

- -

-
+
+
+
+
+
+ +

+ +

+
+
+
+
+ +

+ + +

-
-
-
- -

- -

-
+
+
+ +

+ +

-
-
-
- -

- -

-
+
+ +
+
+
+ +

+ +

-
-
- -

- - -

-
+
+
+
+ +

+ +

- -
-
- -

- -

-
+
+
+
+
+

+ {! $Label.C501_RegSite_Transport } +

+
+
+
+
+
+ +
- -
-
-
- -

- -

-
+
+
+
+

+ {! $Label.C501_ClassReg_PickUpChild } +

+
+
+ + +
+
+
+
-
-
- -

- -

-
+
+
+
+
- -
-
-
- -

- - - -

-
+
+
+
-
-
- -

- -

-
+
+
+
+
+
+
-
-
- - -

- -

-
+
+
+
+
- - - -
-
-
- -

- -

-
-
+
+
+
- - -
-
-

- {! $Label.C501_RegSite_FamilyInformation } -

+
+
+
+
+
+
-
-
-
- -

- -

- -
+
+
+
-
-
- - -

- -

-
+
+
+
+
-
-
-
- - -

- -

-
+
+ + +
+
+

+ {! $Label.C501_RegSite_EmergencyContacts } +

+

+ {! $Label.C501_ClassReg_EmergencySubtext } +

+
+
+
+
+
+
-
-
-
- - -

- -

-
+
+
+
-
-
- - -

- -

-
+
+
+
+
-
-
- - -

- -

-
+
+
+
+
+
+
- - - -
-
-
- - -

- -

-
-
+
+
+
- - - -
-
-
- - -

- -

-
-
+
+
+
+
- - -
-
-

- {! $Label.C501_ClassReg_PARTICIPANT_WAIVER } -

-

- {! $Label.C501_ClassReg_PARTICIPANT_WAIVERp1 } -

-

- {! $Label.C501_ClassReg_PARTICIPANT_WAIVERp2 } -

-

- {! $Label.C501_ClassReg_PARTICIPANT_WAIVERp3 } -

-

- - - -

-

- -

+
+
+ +
+
+

+ {! $Label.C501_ClassReg_AddtlStudentInfo } +

+
+
+ +
+
+
+ +
-
-
-

- {! $Label.C501_ClassReg_AuthToTreatMinor } -

-

- {! $Label.C501_ClassReg_AuthToTreatMinorP1 } -

-

- {! $Label.C501_ClassReg_AuthToTreatMinorP2 } -

+
+
+
+
+
+
-
-
- -

- -

+
+
+
+
+ + + {! $Label.C501_RegSite_DontKnowID } + + + +
+
-
-
-

- -

-

- -

+
+
+
+
+ + + {! $Label.C501_RegSite_NoAllergies } + + + + +
+
+ + +
-
-

- {! $Label.C501_ClassReg_PhotoVideo } -

-

- {! $Label.C501_ClassReg_PhotoVideoP1 } -

-

- -

+
+
+ +

+ +

+
+
+
+ + +
+
+

+ {! $Label.C501_RegSite_FamilyInformation } +

+
+
+
+
+
+

- +

+
-
-
-
-

- {! $Label.C501_ClassReg_parentFamilyConsent } - -

-

- {! $Label.C501_ClassReg_EvalStudy } -

-

- {! $Label.C501_ClassReg_EvalStudyH1 } -

-

- {! $Label.C501_ClassReg_EvalStudyH1P1 } -

-

- {! $Label.C501_ClassReg_EvalStudyH1P2 } -

-

- {! $Label.C501_ClassReg_EvalStudyH1P3 } -

-

- {! $Label.C501_ClassReg_EvalStudyH2 } -

-
    - -
-

- {! $Label.C501_ClassReg_EvalStudyH3 } -

+
+
+
+ +

- {! $Label.C501_ClassReg_EvalStudyH3P1 } +

-
    - -
+
+
+
+
+
+
+ +

- +

+
+
+
+
+
+
+ +

- +

+
+
+
+
+ +

- +

+
+
+
+
+ +

- +

+
+ +
+
+
+ +
+ +
+
+
+ + +
+
+
+ + +

+ +

+
+
+
+
- - - - - - - + +
+
+
+ + +

+ +

+
+
+
+
+ +
+
+

+ {! $Label.C501_ClassReg_PARTICIPANT_WAIVER } +

+

+ {! $Label.C501_ClassReg_PARTICIPANT_WAIVERp1 } +

+

+ {! $Label.C501_ClassReg_PARTICIPANT_WAIVERp2 } +

+

+ {! $Label.C501_ClassReg_PARTICIPANT_WAIVERp3 } +

+

+ + + +

+

+ +

+
+
+
+
+

+ {! $Label.C501_ClassReg_AuthToTreatMinor } +

+

+ {! $Label.C501_ClassReg_AuthToTreatMinorP1 } +

+

+ {! $Label.C501_ClassReg_AuthToTreatMinorP2 } +

+
+
+
+
+ +

+ +

+ +
+
+
+
+

+ +

+

+ +

+
+
+
+
+

+ {! $Label.C501_ClassReg_PhotoVideo } +

+

+ {! $Label.C501_ClassReg_PhotoVideoP1 } +

+

+ +

+

+ +

+
+
+
+
+

+ {! $Label.C501_ClassReg_parentFamilyConsent } + +

+

+ {! $Label.C501_ClassReg_EvalStudy } +

+

+ {! $Label.C501_ClassReg_EvalStudyH1 } +

+

+ {! $Label.C501_ClassReg_EvalStudyH1P1 } +

+

+ {! $Label.C501_ClassReg_EvalStudyH1P2 } +

+

+ {! $Label.C501_ClassReg_EvalStudyH1P3 } +

+

+ {! $Label.C501_ClassReg_EvalStudyH2 } +

+
    + +
+

+ {! $Label.C501_ClassReg_EvalStudyH3 } +

+

+ {! $Label.C501_ClassReg_EvalStudyH3P1 } +

+
    + +
+

+ +

+

+ +

+

+ +

+

+ +

+
+
+ - - - - - + + + + + +
+ Error: {! $Label.C501_ClassReg_OneOrMore } +
+
+ + + + +
-
@@ -526,24 +541,42 @@
-
+
- + + + + + + + +
+ Error: {! $Label.C501_ClassReg_OneOrMore } +
+
+ + + +
+
@@ -554,9 +587,24 @@
- + + + + + + + +
+ Error: {! $Label.C501_ClassReg_OneOrMore } +
+
+ + + + +
@@ -604,7 +652,7 @@
-
+
@@ -682,8 +730,15 @@

- - +
+
+
+
+

+
+ + +
@@ -768,7 +823,7 @@

- +

@@ -778,7 +833,7 @@

- +

@@ -878,7 +933,7 @@
- +
@@ -895,7 +950,7 @@
- +
@@ -912,7 +967,7 @@
- +
@@ -941,7 +996,7 @@
- +
@@ -958,7 +1013,7 @@
- +
@@ -976,7 +1031,7 @@

- +
@@ -1026,7 +1081,7 @@

- +

@@ -1066,7 +1121,7 @@

- +

@@ -1077,7 +1132,7 @@

- +

@@ -1086,7 +1141,7 @@

- +

@@ -1095,7 +1150,7 @@

- +

@@ -1126,7 +1181,7 @@

- +

@@ -1140,7 +1195,7 @@

- +

@@ -1269,6 +1324,15 @@

+
+
+

+
+ + +
+
+