Uploaded image for project: 'CiviCRM'
  1. CiviCRM
  2. CRM-1113

College Match - Counselor Recommendation and Teacher Recommendation


    • Type: New Feature
    • Status: Done/Fixed
    • Priority: Major
    • Resolution: Fixed/Completed
    • Affects Version/s: None
    • Fix Version/s: Quest-CM
    • Component/s: None
    • Labels:


      Background Info
      For the College Match rollout, there will be 3 different types of people completing 3 different "applications". Students, Counselors and Teachers. Each person will be instantiated as a Drupal User and a CiviCRM contact. Students are assigned to the "Student" contact sub-type, while Teachers and Counselors are assigned to the "Recommender" sub-type.

      Students are the applicants who fill in the main 16 section CM Application (Matchapp directories). Each student has to submit the name and email of 2 Teachers and 1 Guidance Counselor. This happens in section 12 - Recommendations. We create a new user and contact for each - and create Teacher and Counselor relationships between the Student and the Recommenders.

      The Recommenders will get an email prompting them to login and complete a Recommendation form for the student. There are two separate recommender forms - one for Counselors (Quest/Form/Counselor) and one for Teachers (Quest/Form/Teacher).

      Task Scope
      This task is to complete the Counselor recommendation "application". The schema and forms have been implemented following the mockup forms here:


      The coding tasks for this issue are to complete the setDefaultValues() and postProcess() functions for each of the four forms (sections).

      This application deals with 3 objects:

      • Counselor_Academic
      • Counselor_Ranking
      • Counselor_Evalution
        ... plus Essays

      Each object is associated with a source_contact_id (the "recommender" - i.e. counselor in this case) and the target_contact_id (the student). The logged in user's contact will always be the "source contact" (this should also be settable using the id= query string in the URL). The target contact is defined by an scid= query string at the start of the app session. Both contacts will exist at the time the application is initiated.

      In order to insure that a valid recommender is completing a recommendation for the "correct" student, the following rules have been implemented in the parent class - Recommender.php:

      • A civicrm_relationship record - relationship_type_id = 10 must exist between the two contacts (contact_a is the student, b is the counselor).
      • The source contact must have sub_type = "Recommender" and the target contact must have sub_type = "Student".

      To access the Counselor recommendation forms:

      • Set your logged in user's contact_sub_type = "Recommender" (for this example, you are contact.id=1)
      • Set the contact_sub_type for another contact = "Student" (let's say this is contact.id = 2)
      • Insert relationship record with contact_a=2, contact_b=1 and type=10
      • Go to: civicrm/quest/counselor?reset=1&scid=2

      This should load section 1 of the Counselor "application" with contact 1 as source and contact 2 as target.

      Additional Notes:

      • setDefaultValues() for Personal will need to load the source contact name, email and telephone info (if it exists) and postProcess() will need to update these source contact values on Save

      The code should function in both create and update modes for the 3 objects and "Essays".

      – Implementation of same thing for Teacher Recommendation




            • Assignee:
              anil Anil Kokitkar
              dgg David Greenberg
            • Votes:
              0 Vote for this issue
              0 Start watching this issue


              • Created: