From 405ec022bcd7c0d52999e06364e184814af4552d Mon Sep 17 00:00:00 2001 From: Steve Sutton Date: Tue, 19 Jul 2016 17:02:41 -0400 Subject: [PATCH] Updating member leads with new field for group_interests Adding members boolean field. When checked for a group interests it will output on the member contact (member only) lead search form. Jodie said that the member contact will only be able to search for interest not how did you hear about us stuff like what is setup for saultstemarie. I called the field members because interest is already used for a table. --- classes/data/dataInterestGroups.php | 6 ++++ index.php | 2 +- models/admin/leads/index.php | 27 ++++++++++++---- ..._V0.0.2.sql => create_database_V0.0.3.sql} | 5 +-- setup/databaseScripts/dbVersions.php | 1 + .../update_database_V0.0.2.sql | 4 +-- .../update_database_V0.0.3.sql | 11 +++++++ views/admin/leads/index.html | 12 +++---- views/admin/settings/leads.html | 32 +++++++++++++++++-- 9 files changed, 79 insertions(+), 21 deletions(-) rename setup/databaseScripts/{create_database_V0.0.2.sql => create_database_V0.0.3.sql} (98%) create mode 100644 setup/databaseScripts/update_database_V0.0.3.sql diff --git a/classes/data/dataInterestGroups.php b/classes/data/dataInterestGroups.php index fe26b6c..6838f9c 100644 --- a/classes/data/dataInterestGroups.php +++ b/classes/data/dataInterestGroups.php @@ -123,6 +123,12 @@ class GlmDataInterestGroups extends GlmDataAbstract 'use' => 'a', ), + 'members' => array( + 'field' => 'members', + 'type' => 'checkbox', + 'use' => 'a', + ), + ); diff --git a/index.php b/index.php index cd769a3..f163f86 100644 --- a/index.php +++ b/index.php @@ -38,7 +38,7 @@ * version from this plugin. */ define('GLM_MEMBERS_LEADS_PLUGIN_VERSION', '0.0.1'); -define('GLM_MEMBERS_LEADS_PLUGIN_DB_VERSION', '0.0.2'); +define('GLM_MEMBERS_LEADS_PLUGIN_DB_VERSION', '0.0.3'); // This is the minimum version of the GLM Members DB plugin require for this plugin. define('GLM_MEMBERS_LEADS_PLUGIN_MIN_MEMBERS_REQUIRED_VERSION', '2.0.5'); diff --git a/models/admin/leads/index.php b/models/admin/leads/index.php index c3247d7..9be36b5 100644 --- a/models/admin/leads/index.php +++ b/models/admin/leads/index.php @@ -382,7 +382,11 @@ class GlmMembersAdmin_leads_index extends GlmDataLeadEntry // Fetch the groupData. $groupData = new GlmDataInterestGroups( $this->wpdb, $this->config ); - $groups = $groupData->getList(); + if ( $user_can_edit_leads ) { + $groups = $groupData->getList(); + } else { + $groups = $groupData->getList( "T.members = 1" ); + } // Initialize the grouped_interests array $grouped_interests = array(); @@ -401,7 +405,6 @@ class GlmMembersAdmin_leads_index extends GlmDataLeadEntry 'fname' => $lead['fname'], 'lname' => $lead['lname'], 'email' => $lead['lead_id']['name'], - 'org' => $lead['org'], 'addr1' => $lead['addr1'], 'addr2' => $lead['addr2'], 'city' => $lead['city'], @@ -414,18 +417,30 @@ class GlmMembersAdmin_leads_index extends GlmDataLeadEntry 'date_submitted' => $lead['date_submitted'], 'source' => $lead['source_id']['name'], ); + if ( !$user_can_edit_leads ) { + unset( + $out['source'] + ); + } $interest_by_groups = array(); /* * Setup the interests so they are comma separated into a * grouped field. Group name will be the field name header. */ + $lead_interests_where + = ( !$user_can_edit_leads ) + ? " AND g.members = true" + : ''; $lead_interests = $this->wpdb->get_results( $this->wpdb->prepare( "SELECT li.interest_id, g.title as 'group', i.title - FROM " . GLM_MEMBERS_LEADS_PLUGIN_DB_PREFIX . "lead_interests li - LEFT OUTER JOIN " . GLM_MEMBERS_LEADS_PLUGIN_DB_PREFIX . "interests i ON (i.id = li.interest_id) - LEFT OUTER JOIN " . GLM_MEMBERS_LEADS_PLUGIN_DB_PREFIX . "interest_groups g ON (i.group_id = g.id) - WHERE lead_entry_id = %d", + FROM " . GLM_MEMBERS_LEADS_PLUGIN_DB_PREFIX . "lead_interests li, + " . GLM_MEMBERS_LEADS_PLUGIN_DB_PREFIX . "interests i, + " . GLM_MEMBERS_LEADS_PLUGIN_DB_PREFIX . "interest_groups g + WHERE i.id = li.interest_id + AND i.group_id = g.id + $lead_interests_where + AND lead_entry_id = %d", $lead['id'] ), ARRAY_A diff --git a/setup/databaseScripts/create_database_V0.0.2.sql b/setup/databaseScripts/create_database_V0.0.3.sql similarity index 98% rename from setup/databaseScripts/create_database_V0.0.2.sql rename to setup/databaseScripts/create_database_V0.0.3.sql index 475943c..cf8e22c 100644 --- a/setup/databaseScripts/create_database_V0.0.2.sql +++ b/setup/databaseScripts/create_database_V0.0.3.sql @@ -1,6 +1,6 @@ -- Gaslight Media Members Database - Leads --- File Created: 12/02/15 15:27:15 --- Database Version: 0.0.1 +-- File Created: 16/07/19 16:16:16 +-- Database Version: 0.0.3 -- Database Creation Script -- -- This file is called to create a new set of tables for this @@ -74,6 +74,7 @@ CREATE TABLE {prefix}lead_entry ( CREATE TABLE {prefix}interest_groups ( id INT NOT NULL AUTO_INCREMENT, title TINYTEXT NULL, -- Group name + members BOOLEAN false, PRIMARY KEY (id) ); diff --git a/setup/databaseScripts/dbVersions.php b/setup/databaseScripts/dbVersions.php index f3dc944..59de33e 100644 --- a/setup/databaseScripts/dbVersions.php +++ b/setup/databaseScripts/dbVersions.php @@ -16,5 +16,6 @@ $glmMembersLeadsDbVersions = array( '0.0.1' => array('version' => '0.0.1', 'tables' => 10, 'date' => '6/8/2016'), '0.0.2' => array('version' => '0.0.2', 'tables' => 10, 'date' => '7/12/2016'), + '0.0.3' => array('version' => '0.0.3', 'tables' => 10, 'date' => '7/19/2016'), ); diff --git a/setup/databaseScripts/update_database_V0.0.2.sql b/setup/databaseScripts/update_database_V0.0.2.sql index 6d02d1c..efad45a 100644 --- a/setup/databaseScripts/update_database_V0.0.2.sql +++ b/setup/databaseScripts/update_database_V0.0.2.sql @@ -1,6 +1,6 @@ -- Gaslight Media Members Database - Events Add-On --- File Created: 12/09/14 15:27:15 --- Database Version: 0.0.9 +-- File Created: 16/07/12 15:27:15 +-- Database Version: 0.0.2 -- Database Update From Previous Version Script -- -- To permit each query below to be executed separately, diff --git a/setup/databaseScripts/update_database_V0.0.3.sql b/setup/databaseScripts/update_database_V0.0.3.sql new file mode 100644 index 0000000..2bed376 --- /dev/null +++ b/setup/databaseScripts/update_database_V0.0.3.sql @@ -0,0 +1,11 @@ +-- Gaslight Media Members Database - Events Add-On +-- File Created: 16/07/19 16:16:16 +-- Database Version: 0.0.3 +-- Database Update From Previous Version Script +-- +-- To permit each query below to be executed separately, +-- all queries must be separated by a line with four dashses + + +-- Add form_id +ALTER TABLE {prefix}interest_groups ADD COLUMN members BOOLEAN DEFAULT false; diff --git a/views/admin/leads/index.html b/views/admin/leads/index.html index e4b6791..ea1c837 100644 --- a/views/admin/leads/index.html +++ b/views/admin/leads/index.html @@ -12,7 +12,7 @@ Add New Lead {/if} {if $searching} - + {/if}
@@ -20,6 +20,7 @@ + {if $user_can_edit_leads} - - - - - + + {/if} @@ -52,6 +50,7 @@ + {if $user_can_edit_leads} - {if $user_can_edit_leads} + + + +
@@ -34,13 +35,10 @@
Date Range
@@ -62,7 +61,6 @@
diff --git a/views/admin/settings/leads.html b/views/admin/settings/leads.html index ba5c2a7..8994e99 100644 --- a/views/admin/settings/leads.html +++ b/views/admin/settings/leads.html @@ -262,6 +262,16 @@
For members? + + +

* Required

Cancel @@ -296,6 +306,16 @@ + + For members? + + + + +

* Required

@@ -323,7 +343,7 @@ {/if} - {$t.title} + {$t.title}
Delete
@@ -361,10 +381,16 @@ $("#newGroupDialog").dialog("open"); }); $('.editGroup').click( function() { - var groupID = $(this).attr('data-groupID'); - var groupName = $(this).text(); + var groupID = $(this).attr('data-groupID'); + var groupName = $(this).text(); + var groupMembers = $(this).attr('data-members'); $('#editGroupID').val(groupID); $('#editGroupName').val(groupName.trim()); + if ( groupMembers === '1' ) { + $('#editGroupMembers').prop( 'checked', 'checked' ); + } else { + $('#editGroupMembers').prop( 'checked', null ); + } $("#editGroupDialog").dialog("open"); }); $('#editGroupCancel').click( function() { -- 2.17.1