From 6ad0a10173d56fd3d9d1e0b56267a4c6d075ff20 Mon Sep 17 00:00:00 2001 From: Olivia Perugini Date: Tue, 11 Jul 2017 12:20:44 -0400 Subject: [PATCH 1/7] Added new Workflow State. Work in progress. refs #175 --- class/WorkflowState/CancelledState.php | 2 +- class/WorkflowState/DeanApprovedGradPendingState.php | 8 ++++++++ class/WorkflowState/GradSchoolApprovedState.php | 2 +- class/WorkflowState/NewState.php | 1 - class/WorkflowState/RegisteredState.php | 2 +- class/WorkflowState/RegistrationIssueState.php | 2 +- class/WorkflowState/SigAuthReadyState.php | 1 - 7 files changed, 12 insertions(+), 6 deletions(-) create mode 100644 class/WorkflowState/DeanApprovedGradPendingState.php diff --git a/class/WorkflowState/CancelledState.php b/class/WorkflowState/CancelledState.php index 4877554f..7720ad64 100644 --- a/class/WorkflowState/CancelledState.php +++ b/class/WorkflowState/CancelledState.php @@ -4,5 +4,5 @@ class CancelledState extends WorkflowState { const friendlyName = 'Cancelled'; - const sortIndex = 8; + const sortIndex = 9; } diff --git a/class/WorkflowState/DeanApprovedGradPendingState.php b/class/WorkflowState/DeanApprovedGradPendingState.php new file mode 100644 index 00000000..52b2d2e6 --- /dev/null +++ b/class/WorkflowState/DeanApprovedGradPendingState.php @@ -0,0 +1,8 @@ + Date: Tue, 11 Jul 2017 13:43:40 -0400 Subject: [PATCH 2/7] Working on transition. refs #175 --- class/WorkflowState/DeanApprovedGradPendingState.php | 2 +- class/WorkflowStateFactory.php | 1 + class/WorkflowTransitionFactory.php | 6 ++++++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/class/WorkflowState/DeanApprovedGradPendingState.php b/class/WorkflowState/DeanApprovedGradPendingState.php index 52b2d2e6..d4f6a217 100644 --- a/class/WorkflowState/DeanApprovedGradPendingState.php +++ b/class/WorkflowState/DeanApprovedGradPendingState.php @@ -2,7 +2,7 @@ namespace Intern\WorkflowState; use Intern\WorkflowState; -class DeanApprovedGradPending extends WorkflowState { +class DeanApprovedGradPendingState extends WorkflowState { const friendlyName = 'Dean Approved / Pending Graduate School Approval'; const sortIndex = 5; } diff --git a/class/WorkflowStateFactory.php b/class/WorkflowStateFactory.php index 1934d340..ed50c3fd 100644 --- a/class/WorkflowStateFactory.php +++ b/class/WorkflowStateFactory.php @@ -35,6 +35,7 @@ public static function getAllStates() // Instantiate each one $states[] = new $className; + } } diff --git a/class/WorkflowTransitionFactory.php b/class/WorkflowTransitionFactory.php index 994bb688..4b1cd6f7 100644 --- a/class/WorkflowTransitionFactory.php +++ b/class/WorkflowTransitionFactory.php @@ -90,4 +90,10 @@ private static function sortTransitions(WorkflowTransition $a, WorkflowTransitio } return ($a->getSortIndex() < $b->getSortIndex()) ? -1 : 1; } + + //getAllowedPermissionList(? + public static getAllowedPermissionList() + { + + } } From a2c1d711f34af31c563fc2f0b08f736fe4572139 Mon Sep 17 00:00:00 2001 From: Olivia Perugini Date: Wed, 12 Jul 2017 12:56:50 -0400 Subject: [PATCH 3/7] Added transition classes, haven't tested yet. refs #175 --- class/TestTermProvider.php | 2 +- class/WorkflowTransition/DeanApprove.php | 28 ++++++++------- .../DeanApproveGradPending.php | 35 +++++++++++++++++++ .../WorkflowTransition/GradSchoolApprove.php | 3 +- .../UndoDeanApprovalGradPending.php | 26 ++++++++++++++ class/WorkflowTransition/UndoDeanApprove.php | 12 ++++++- .../UndoDepartmentApprove.php | 1 + .../UndoGradSchoolApproval.php | 12 +++---- class/WorkflowTransitionFactory.php | 6 ---- 9 files changed, 98 insertions(+), 27 deletions(-) create mode 100644 class/WorkflowTransition/DeanApproveGradPending.php create mode 100644 class/WorkflowTransition/UndoDeanApprovalGradPending.php diff --git a/class/TestTermProvider.php b/class/TestTermProvider.php index 6c43d2fb..af51df67 100644 --- a/class/TestTermProvider.php +++ b/class/TestTermProvider.php @@ -173,7 +173,7 @@ private function getFakeResponse() // This is a backup to make sure we have at least one part of term, if we haven't set one in the switch statement above // The dates will always be in 2016, but at least we'll have a part of term object to use - if(sizeof($reponseObj->part_term) === 0){ + if(sizeof($responseObj->part_term) === 0){ $partTerm = new \stdClass(); diff --git a/class/WorkflowTransition/DeanApprove.php b/class/WorkflowTransition/DeanApprove.php index 74c157c3..2760bd6d 100644 --- a/class/WorkflowTransition/DeanApprove.php +++ b/class/WorkflowTransition/DeanApprove.php @@ -13,21 +13,25 @@ public function getAllowedPermissionList(){ return array('dean_approve'); } + public function isApplicable(Internship $i){ + if ($i->isUndergraduate()){ + return true; + }else{ + return false; + } + } + public function doNotification(Internship $i, $note = null) { $settings = \Intern\InternSettings::getInstance(); - - // If this is an undergrad internship, then send the Registrar an email - // Graduate level internships have another workflow state to go through before we alert the Registrar - if($i->isUndergraduate()){ - $email = new \Intern\Email\ReadyToRegisterEmail($settings, $i); - $email->send(); - } - // If this is a graduate email, send the notification email to the grad school office - if($i->isGraduate()){ - $email = new \Intern\Email\GradSchoolNotificationEmail($settings, $i); - $email->send(); - } + /** + * Send the Registrar an email. + * Graduate level internships have another workflow state to go through + * before we alert the Registrar. + */ + $email = new \Intern\Email\ReadyToRegisterEmail($settings, $i); + $email->send(); + } } diff --git a/class/WorkflowTransition/DeanApproveGradPending.php b/class/WorkflowTransition/DeanApproveGradPending.php new file mode 100644 index 00000000..7c5c11d4 --- /dev/null +++ b/class/WorkflowTransition/DeanApproveGradPending.php @@ -0,0 +1,35 @@ +isGraduate()) { + return true; + } else { + return false; + } + } + + public function doNotification(Internship $i, $note = null) + { + $settings = \Intern\InternSettings::getInstance(); + + //Send the notification email to the grad school office. + $email = new \Intern\Email\GradSchoolNotificationEmail($settings, $i); + $email->send(); + } +} diff --git a/class/WorkflowTransition/GradSchoolApprove.php b/class/WorkflowTransition/GradSchoolApprove.php index 779bd0d4..95ed8dc6 100644 --- a/class/WorkflowTransition/GradSchoolApprove.php +++ b/class/WorkflowTransition/GradSchoolApprove.php @@ -6,7 +6,7 @@ class GradSchoolApprove extends WorkflowTransition { - const sourceState = 'DeanApprovedState'; + const sourceState = 'DeanApprovedGradPendingState'; const destState = 'GradSchoolApprovedState'; const actionName = 'Mark as Grad School Approved'; @@ -24,6 +24,7 @@ public function isApplicable(Internship $i){ public function doNotification(Internship $i, $note = null) { + //Send notification that it is Dean Approved and Grad School Approved. $email = new \Intern\Email\ReadyToRegisterEmail(\Intern\InternSettings::getInstance(), $i); $email->send(); } diff --git a/class/WorkflowTransition/UndoDeanApprovalGradPending.php b/class/WorkflowTransition/UndoDeanApprovalGradPending.php new file mode 100644 index 00000000..885d112b --- /dev/null +++ b/class/WorkflowTransition/UndoDeanApprovalGradPending.php @@ -0,0 +1,26 @@ +isGraduate()) { + return true; + } else { + return false; + } + } +} diff --git a/class/WorkflowTransition/UndoDeanApprove.php b/class/WorkflowTransition/UndoDeanApprove.php index 50452f94..169c26d6 100644 --- a/class/WorkflowTransition/UndoDeanApprove.php +++ b/class/WorkflowTransition/UndoDeanApprove.php @@ -5,13 +5,23 @@ use Intern\Internship; class UndoDeanApprove extends WorkflowTransition { + const sourceState = 'DeanApprovedState'; const destState = 'SigAuthApprovedState'; const actionName = 'Return for Dean Approval'; const sortIndex = 6; - public function getAllowedPermissionList(){ + public function getAllowedPermissionList() { return array('dean_approve','register'); } + + public function isApplicable(Internship $i) { + if ($i->isUndergraduate()) { + return true; + } else { + return false; + } + } + } diff --git a/class/WorkflowTransition/UndoDepartmentApprove.php b/class/WorkflowTransition/UndoDepartmentApprove.php index 5489bd30..7c3b7121 100644 --- a/class/WorkflowTransition/UndoDepartmentApprove.php +++ b/class/WorkflowTransition/UndoDepartmentApprove.php @@ -5,6 +5,7 @@ use Intern\Internship; class UndoDepartmentApprove extends WorkflowTransition { + const sourceState = 'SigAuthReadyState'; const destState = 'NewState'; const actionName = 'Send back to advisor'; diff --git a/class/WorkflowTransition/UndoGradSchoolApproval.php b/class/WorkflowTransition/UndoGradSchoolApproval.php index 700c50ad..569eb2c7 100644 --- a/class/WorkflowTransition/UndoGradSchoolApproval.php +++ b/class/WorkflowTransition/UndoGradSchoolApproval.php @@ -5,17 +5,17 @@ use Intern\Internship; class UndoGradSchoolApproval extends WorkflowTransition { - + const sourceState = 'GradSchoolApprovedState'; - const destState = 'DeanApprovedState'; + const destState = 'DeanApprovedGradPendingState'; const actionName = 'Return for Graduate School Approval'; - + const sortIndex = 6; - + public function getAllowedPermissionList(){ return array('register', 'grad_school_approve'); } - + public function isApplicable(Internship $i) { if($i->isGraduate()){ @@ -24,4 +24,4 @@ public function isApplicable(Internship $i) return false; } } -} \ No newline at end of file +} diff --git a/class/WorkflowTransitionFactory.php b/class/WorkflowTransitionFactory.php index 4b1cd6f7..994bb688 100644 --- a/class/WorkflowTransitionFactory.php +++ b/class/WorkflowTransitionFactory.php @@ -90,10 +90,4 @@ private static function sortTransitions(WorkflowTransition $a, WorkflowTransitio } return ($a->getSortIndex() < $b->getSortIndex()) ? -1 : 1; } - - //getAllowedPermissionList(? - public static getAllowedPermissionList() - { - - } } From e2367f4b0a89648053f056a4abe2c6410e463abd Mon Sep 17 00:00:00 2001 From: Olivia Perugini Date: Wed, 12 Jul 2017 13:39:26 -0400 Subject: [PATCH 4/7] Fixed wording. Tested for grad, works. refs #175 --- class/WorkflowTransition/GradSchoolApprove.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/class/WorkflowTransition/GradSchoolApprove.php b/class/WorkflowTransition/GradSchoolApprove.php index 95ed8dc6..efd84b3d 100644 --- a/class/WorkflowTransition/GradSchoolApprove.php +++ b/class/WorkflowTransition/GradSchoolApprove.php @@ -8,7 +8,7 @@ class GradSchoolApprove extends WorkflowTransition { const sourceState = 'DeanApprovedGradPendingState'; const destState = 'GradSchoolApprovedState'; - const actionName = 'Mark as Grad School Approved'; + const actionName = 'Mark as Graduate School Approved'; public function getAllowedPermissionList(){ return array('grad_school_approve'); From 9da22ee622e87ae92e972e7a52498ca093f1f9e6 Mon Sep 17 00:00:00 2001 From: Olivia Perugini Date: Thu, 13 Jul 2017 11:56:51 -0400 Subject: [PATCH 5/7] Changed one word. refs #175 --- class/WorkflowTransition/UndergradRegistration.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/class/WorkflowTransition/UndergradRegistration.php b/class/WorkflowTransition/UndergradRegistration.php index 16e5a737..ed4c90d3 100644 --- a/class/WorkflowTransition/UndergradRegistration.php +++ b/class/WorkflowTransition/UndergradRegistration.php @@ -8,7 +8,7 @@ class UndergradRegistration extends WorkflowTransition { const sourceState = 'DeanApprovedState'; const destState = 'RegisteredState'; - const actionName = 'Mark as Registered / Enrollment Complete'; + const actionName = 'Mark as Registered / Enrollment Complete (undergrad)'; public function getAllowedPermissionList(){ return array('register'); From 4b16040c51d7911644da09df02b9422f68d1d919 Mon Sep 17 00:00:00 2001 From: Olivia Perugini Date: Fri, 14 Jul 2017 14:53:03 -0400 Subject: [PATCH 6/7] Added to array in CancelTransition class. Small change, fixed words to be capitalized. refs #175 --- class/WorkflowTransition/CancelTransition.php | 2 +- class/WorkflowTransition/UndoGraduateRegistration.php | 2 +- class/WorkflowTransition/UndoUndergradRegistration.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/class/WorkflowTransition/CancelTransition.php b/class/WorkflowTransition/CancelTransition.php index 00a763f2..485ea19b 100644 --- a/class/WorkflowTransition/CancelTransition.php +++ b/class/WorkflowTransition/CancelTransition.php @@ -16,7 +16,7 @@ public function getAllowedPermissionList(){ } public function getSourceState(){ - return array('NewState', 'SigAuthReadyState', 'SigAuthApprovedState', 'DeanApprovedState', 'GradSchoolApprovedState', 'RegistrationIssueState'); + return array('NewState', 'SigAuthReadyState', 'SigAuthApprovedState', 'DeanApprovedState', 'DeanApprovedGradPendingState', 'GradSchoolApprovedState', 'RegistrationIssueState'); } public function doNotification(Internship $i, $note = null) diff --git a/class/WorkflowTransition/UndoGraduateRegistration.php b/class/WorkflowTransition/UndoGraduateRegistration.php index 59627772..8f0d4d78 100644 --- a/class/WorkflowTransition/UndoGraduateRegistration.php +++ b/class/WorkflowTransition/UndoGraduateRegistration.php @@ -8,7 +8,7 @@ class UndoGraduateRegistration extends WorkflowTransition { const sourceState = 'RegisteredState'; const destState = 'GradSchoolApprovedState'; - const actionName = 'Mark as not registered'; + const actionName = 'Mark as Not Registered'; const sortIndex = 6; diff --git a/class/WorkflowTransition/UndoUndergradRegistration.php b/class/WorkflowTransition/UndoUndergradRegistration.php index fdb62e09..c286f7fd 100644 --- a/class/WorkflowTransition/UndoUndergradRegistration.php +++ b/class/WorkflowTransition/UndoUndergradRegistration.php @@ -7,7 +7,7 @@ class UndoUndergradRegistration extends WorkflowTransition { const sourceState = 'RegisteredState'; const destState = 'DeanApprovedState'; - const actionName = 'Mark as not registered'; + const actionName = 'Mark as Not Registered'; const sortIndex = 6; From afd86944281ab00852dc13c047b528cfb11a5f20 Mon Sep 17 00:00:00 2001 From: Olivia Perugini Date: Mon, 17 Jul 2017 12:26:03 -0400 Subject: [PATCH 7/7] Conflict between master and branch. Fixed DeanApprove.php, added exception part. --- class/WorkflowTransition/DeanApprove.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/class/WorkflowTransition/DeanApprove.php b/class/WorkflowTransition/DeanApprove.php index 2760bd6d..54c8d72d 100644 --- a/class/WorkflowTransition/DeanApprove.php +++ b/class/WorkflowTransition/DeanApprove.php @@ -33,5 +33,10 @@ public function doNotification(Internship $i, $note = null) $email = new \Intern\Email\ReadyToRegisterEmail($settings, $i); $email->send(); + if (!ExpectedCourseFactory::isExpectedCourse($i->getSubject(), $i->getCourseNumber())) { + $email = new UnusualCourseEmail(InternSettings::getInstance(), $i); + $email->send(); + } + } }