We require a custom module for Drupal 7
Our website features a territory allocation system that associates suburb/postcode combinations with territories.
Node Type: Suburb Postcode
Fields: Suburb (text), Postcode (4 digit number)
Node Type: Territory
An entity reference links Territory with Suburb Postcode -- one Territory can have anywhere from 0 to 1,000 Suburb Postcode nodes associated with it.
Our website will feature approximately 300+ territories and 15,000+ suburb/postcodes and as such as require a tool for the effective management of these relationships as they change or grow over time. The data for these territories is available to us in a 15,000+ line, 400KB spreadsheet (.csv format) with columns for Suburb Name, Postcode, Territory Name.
We require a module that allows us to upload this file (or portions of it) periodically to update all Territory/Suburb Postcode relationships. Given the size of the file and the sheer number of entity references it will need to update each time, the module should have appropriate load balancing settings such that it is not putting undue stress on an already busy site, and is capable of handling all 15,000+ rows of the spreadsheet. The module should disable the ability to upload a new spreadsheet while the update is in progress.
This spreadsheet does not contain node IDs for the suburb/postcodes or territories, so this system will need to parse the information in the three columns to find a matching Suburb Postcode node based on the suburb and postcode fields, and matching Territory node based on the title field and build the appropriate entity reference for each.
The module will not create the Territory or Suburb Postcode nodes themselves -- these will already be created -- it simply needs to build the entity references for each territory and update them each time the spreadsheet is uploaded.
Sometimes it will be necessary to upload a partial spreadsheet containing only individual or several territories. As such, the module should only adjust data for territories that are included in the spreadsheet. Some updates will remove suburb/postcodes from territories and/or allocate them to another territory, so for each
It will need to offer status/debugging upon completion, specifically a list of any territories or suburb/postcodes from the spreadsheet that do not match with nodes on the website, as well as the following stats:
Total territories modified: # (suburb/postcodes added/subtracted)
Total territories unmodified: # (no changes made)
Each territory has a unique name and the node title of the territory will match exactly with the Territory.
Each suburb/postcode combination is unique, however most postcodes have multiple suburbs, and there are instances of suburbs having multiple postcodes, for instance:
POSTCODE | SUBURB | TERRITORY
4500 | BRAY PARK | STRATHPINE
4500 | BRENDALE | ALBANY CREEK
4500 | CASHMERE | ALBANY CREEK
4500 | CLEAR MOUNTAIN | SAMFORD
4500 | JOYNER | STRATHPINE
2753 | RICHMOND | CRANEBROOK
2755 | RICHMOND | CRANEBROOK
3121 | RICHMOND | HAWTHORN
4740 | RICHMOND | MACKAY
The Module should be built within the overall framework of hooks etc. that Drupal provides, and should use the permissions system in Drupal to only enable use by certain roles (admin etc.). The Module should be able to be installed and operated through the standard Drupal Modules system with no core modifications.
We require a developer who can work efficiently with well-written code and provide full documentation/support. Prior examples of custom Drupal module development required.
The winning developer should be able to clearly sum up our requirements in their own words to demonstrate a clear understanding, and be willing to work to a very specific checklist to ensure that the Module meets our exact requirements.
36 freelancere byder i gennemsnit $2211 på dette job
Thanks for your consideration, please see our message and if you would like to discuss the project further do get in touch and I’ll give you a call.
This is my job. I can do it. I ready begin now. ======================================================================================================================================================