Details
-
Type: Bug
-
Status: Done/Fixed
-
Priority: Blocker
-
Resolution: Fixed/Completed
-
Affects Version/s: 2.0
-
Fix Version/s: 2.0
-
Labels:None
-
Documentation Required?:None
-
Sprint:Week 46
Description
CiviVolunteer 2.x has a dependency on org.civicrm.angularprofiles. CiviCRM doesn't do so great with dependency management, so we'll have to enforce this ourselves.
The first question is what to do if org.civicrm.angularprofiles isn't installed. We considered disabling volunteer to really drive home the point that the dependency isn't optional, but we realized that the interfaces that were public in 1.x wouldn't be negatively affected by the absence since they depend on neither Angular nor Backbone, so we decided against that. Instead we'll just throw up an error notice. Administrative users would quickly notice something is wrong, anyway – almost all the backend interfaces will break without the utility extension.
The next question is when to check whether or not org.civicrm.angularprofiles is present. Initially we thought it would suffice to do so when the extension is installed or upgraded, but we feared that users upgrading/installing from the CLI wouldn't see these notices. In addition to install/upgrade, we should check when either the base Angular page (CRM_Volunteer_Page_Angular) or the Manage Extensions page is loaded.
We have some experience trying to manage dependencies in CiviVolunteer. The code in question was removed before it was ever released, but it might be a useful guide.