Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixes #65: Submit online application to Prof M School #78

Merged
merged 4 commits into from
Jul 10, 2018
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 66 additions & 14 deletions data/ProfessorM_PostmanCollection.json

Large diffs are not rendered by default.

14 changes: 14 additions & 0 deletions docs/AcceptanceTests.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
## Acceptance Test Plan ##

This test plan represents high-level acceptance tests for features implemented in the Professor M's School for Gifted
Coders package. These tests are not automated and should be executed manually.

Before executing these tests, ensure you have done the following:
1. Installed Sugar.
1. Created an Admin user.
1. Installed the Professor M Module Loadable Package.
1. [Installed the Professor M sample data using the Professor M Postman Collection](https://github.com/sugarcrm/school#use-the-sugar-rest-api-to-create-the-professor-m-sample-data).

| Use case | Test steps | Expected Results |
| --- | --- | ---|
| [Online Applications](OnlineApplications.md) | <ol><li>Navigate to http://{site_url}/<br>custom/online_application_form/ApplyOnline.html.</li><li>Input the following information:<br>**First Name:** Joe<br>**Last Name:** Morwasky<br>**Email Address:** joetheweatherman@example.com<br>**Street Address:** 222 Lightning Lane<br>**City:** Monroe<br>**State:** CT<br>**Zip:** 06468<br>**Country:** USA<br>**High School:** Monroe High<br>**Grade Point Average (GPA):** 3.85<br>**Programming Languages:** PHP, Java<br>**Transcript:** Meteorology A+<br>Math: A-<br>English: B+<br>Agility: A+<br></li><li>Click **Submit**.</li>|<ol><li>A "Thank you!" page is displayed.</li><li>A new Applicant (Lead) record has been created with the following data:<br>**Name:** Joe Morwasky<br>**High School:** Monroe High<br>**Grade Point Average (GPA):** 3.85000000<br>**Programming Languages:** PHP, Java<br>**Transcript:** <br>Meteorology A+<br>Math: A-<br>English: B+<br>Agility: A+<br>**Email Address:** joetheweatherman@example.com<br>**Primary Address:** <br>222 Lightning Lane<br>Monroe, CT 06468<br>USA<br></li><li>The new Applicant (Lead) has a link to the **Online Applications** campaign in the Campaign Log.</li>
38 changes: 38 additions & 0 deletions docs/OnlineApplications.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
## Online Applications ##

Professor M wants to ensure he has a quality pipeline of students for his school. He has decided to allow prospective
students to apply online.

### Implementation Technique ###

A [Web to Lead Form](http://support.sugarcrm.com/Knowledge_Base/Campaigns_Target_Lists/Creating_a_Web-to-Lead_Form/) was
created in Sugar and then customized to become the online application for the school.

### Implementation Details ###

[ApplyOnline.html](../package/src/custom/online_application_form/ApplyOnline.html) is a
customized Web to Lead Form. This form is the online application that students can complete. When students submit
the form, they are redirected to
[ApplyOnlineSuccess.html](../package/src/custom/online_application_form/ApplyOnlineSuccess.html), a static html file.

Note that these two files are stored in the
[custom/online_application_form](../package/src/custom/online_application_form) directory for simplicity of deploying
this example. You could host these two files on any server.

When the form is submitted, a new Applicant (Lead) record is automatically created in the system.

### Extensions ###

| Module | Extension | Name | Description |
| --- | --- | ---| ---|
| Leads | Vardefs | `highschool_c` | Varchar that displays the applicant's high school. |
| Leads | Vardefs | `transcript_c` | Text field that displays the applicant's transcript. |
| Leads | Vardefs | `gpa_c` | Decimal field that displays the applicant's grade point average (GPA). |
| Leads | Vardefs | `programminglanguages_c` | Multienum field that displays the applicant's programming languages based on the options stored in the `languages` drop down list.|


### View Customizations ###
| Module | View | Description |
| --- | --- | ---|
| Leads | Record | A new panel (Application) has been added to the record view below the Business Card. The panel displays the new custom fields for the application. |

4 changes: 4 additions & 0 deletions docs/UseCases.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,7 @@ The Professor M School uses Sugar for the following high level use cases:

- [Student Health Tracking](StudentHealthTracking.md)
- [Gradebook Integration](Gradebook.md)

## Acceptance Tests ##

Acceptance tests for the use cases can be found in [AcceptanceTests.md](AcceptanceTests.md).
97 changes: 97 additions & 0 deletions package/pack.php
Original file line number Diff line number Diff line change
Expand Up @@ -290,6 +290,103 @@
'ext3' => NULL,
'ext4' => NULL,
),
'Leadshighschool_c' =>
array (
'id' => 'Leadshighschool_c',
'name' => 'highschool_c',
'label' => 'LBL_HIGHSCHOOL',
'comments' => NULL,
'help' => NULL,
'module' => 'Leads',
'type' => 'varchar',
'max_size' => '255',
'require_option' => '0',
'default_value' => NULL,
'date_modified' => '2018-05-10 22:50:43',
'deleted' => '0',
'audited' => '1',
'mass_update' => '0',
'duplicate_merge' => '1',
'reportable' => '1',
'importable' => 'true',
'ext1' => NULL,
'ext2' => NULL,
'ext3' => NULL,
'ext4' => NULL,
),
'Leadstranscript_c' =>
array (
'id' => 'Leadstranscript_c',
'name' => 'transcript_c',
'label' => 'LBL_TRANSCRIPT',
'comments' => NULL,
'help' => NULL,
'module' => 'Leads',
'type' => 'text',
'max_size' => NULL,
'require_option' => '0',
'default_value' => NULL,
'date_modified' => '2018-05-10 22:50:43',
'deleted' => '0',
'audited' => '1',
'mass_update' => '0',
'duplicate_merge' => '1',
'reportable' => '1',
'importable' => 'true',
'ext1' => NULL,
'ext2' => 6,
'ext3' => 80,
'ext4' => NULL,
),
'Leadsgpa_c' =>
array (
'id' => 'Leadsgpa_c',
'name' => 'gpa_c',
'label' => 'LBL_GPA',
'comments' => NULL,
'help' => NULL,
'module' => 'Leads',
'type' => 'decimal',
'max_size' => '18',
'precision' => '3',
'require_option' => '0',
'default_value' => NULL,
'date_modified' => '2018-05-10 22:50:43',
'deleted' => '0',
'audited' => '1',
'mass_update' => '0',
'duplicate_merge' => '1',
'reportable' => '1',
'importable' => 'true',
'ext1' => NULL,
'ext2' => NULL,
'ext3' => NULL,
'ext4' => NULL,
),
'Leadsprogramminglanguages_c' =>
array (
'id' => 'Leadsprogramminglanguages_c',
'name' => 'programminglanguages_c',
'label' => 'LBL_PROGRAMMINGLANGUAGES',
'comments' => NULL,
'help' => NULL,
'module' => 'Leads',
'type' => 'multienum',
'max_size' => '100',
'require_option' => '0',
'default_value' => NULL,
'date_modified' => '2018-05-10 14:05:09',
'deleted' => '0',
'audited' => '0',
'mass_update' => '1',
'duplicate_merge' => '1',
'reportable' => '1',
'importable' => 'true',
'ext1' => 'languages',
'ext2' => NULL,
'ext3' => NULL,
'ext4' => NULL,
),
),
);

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?php
// Copyright 2018 SugarCRM Inc. Licensed by SugarCRM under the Apache 2.0 license.
$entry_point_registry['getOnlineApplicationsCampaign'] = array(
'file' => 'custom/src/application_campaign/GetCampaignEntrypoint.php',
'auth' => false
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
$app_list_strings['languages'] = array (
'php' => 'PHP',
'javascript' => 'JavaScript',
'net' => '.NET',
'java' => 'Java',
'c' => 'C/C++',
'go' => 'Go',
'python' => 'Python',
'ruby' => 'Ruby',
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
$app_list_strings['languages'] = array (
'php' => 'PHP',
'javascript' => 'JavaScript',
'net' => '.NET',
'java' => 'Java',
'c' => 'C/C++',
'go' => 'Go',
'python' => 'Python',
'ruby' => 'Ruby',
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
$app_list_strings['languages'] = array (
'php' => 'PHP',
'javascript' => 'JavaScript',
'net' => '.NET',
'java' => 'Java',
'c' => 'C/C++',
'go' => 'Go',
'python' => 'Python',
'ruby' => 'Ruby',
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
$app_list_strings['languages'] = array (
'php' => 'PHP',
'javascript' => 'JavaScript',
'net' => '.NET',
'java' => 'Java',
'c' => 'C/C++',
'go' => 'Go',
'python' => 'Python',
'ruby' => 'Ruby',
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
$app_list_strings['languages'] = array (
'php' => 'PHP',
'javascript' => 'JavaScript',
'net' => '.NET',
'java' => 'Java',
'c' => 'C/C++',
'go' => 'Go',
'python' => 'Python',
'ruby' => 'Ruby',
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
$app_list_strings['languages'] = array (
'php' => 'PHP',
'javascript' => 'JavaScript',
'net' => '.NET',
'java' => 'Java',
'c' => 'C/C++',
'go' => 'Go',
'python' => 'Python',
'ruby' => 'Ruby',
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
$app_list_strings['languages'] = array (
'php' => 'PHP',
'javascript' => 'JavaScript',
'net' => '.NET',
'java' => 'Java',
'c' => 'C/C++',
'go' => 'Go',
'python' => 'Python',
'ruby' => 'Ruby',
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
$app_list_strings['languages'] = array (
'php' => 'PHP',
'javascript' => 'JavaScript',
'net' => '.NET',
'java' => 'Java',
'c' => 'C/C++',
'go' => 'Go',
'python' => 'Python',
'ruby' => 'Ruby',
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
$app_list_strings['languages'] = array (
'php' => 'PHP',
'javascript' => 'JavaScript',
'net' => '.NET',
'java' => 'Java',
'c' => 'C/C++',
'go' => 'Go',
'python' => 'Python',
'ruby' => 'Ruby',
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
$app_list_strings['languages'] = array (
'php' => 'PHP',
'javascript' => 'JavaScript',
'net' => '.NET',
'java' => 'Java',
'c' => 'C/C++',
'go' => 'Go',
'python' => 'Python',
'ruby' => 'Ruby',
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
$app_list_strings['languages'] = array (
'php' => 'PHP',
'javascript' => 'JavaScript',
'net' => '.NET',
'java' => 'Java',
'c' => 'C/C++',
'go' => 'Go',
'python' => 'Python',
'ruby' => 'Ruby',
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
$app_list_strings['languages'] = array (
'php' => 'PHP',
'javascript' => 'JavaScript',
'net' => '.NET',
'java' => 'Java',
'c' => 'C/C++',
'go' => 'Go',
'python' => 'Python',
'ruby' => 'Ruby',
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
$app_list_strings['languages'] = array (
'php' => 'PHP',
'javascript' => 'JavaScript',
'net' => '.NET',
'java' => 'Java',
'c' => 'C/C++',
'go' => 'Go',
'python' => 'Python',
'ruby' => 'Ruby',
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
$app_list_strings['languages'] = array (
'php' => 'PHP',
'javascript' => 'JavaScript',
'net' => '.NET',
'java' => 'Java',
'c' => 'C/C++',
'go' => 'Go',
'python' => 'Python',
'ruby' => 'Ruby',
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
$app_list_strings['languages'] = array (
'php' => 'PHP',
'javascript' => 'JavaScript',
'net' => '.NET',
'java' => 'Java',
'c' => 'C/C++',
'go' => 'Go',
'python' => 'Python',
'ruby' => 'Ruby',
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
$app_list_strings['languages'] = array (
'php' => 'PHP',
'javascript' => 'JavaScript',
'net' => '.NET',
'java' => 'Java',
'c' => 'C/C++',
'go' => 'Go',
'python' => 'Python',
'ruby' => 'Ruby',
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
$app_list_strings['languages'] = array (
'php' => 'PHP',
'javascript' => 'JavaScript',
'net' => '.NET',
'java' => 'Java',
'c' => 'C/C++',
'go' => 'Go',
'python' => 'Python',
'ruby' => 'Ruby',
);
Loading