Hello, this is my first posting here. I've played around with Drupal a little but now need to use it in earnest for a voluntary sector website. I'd appreciate advice on the overall approach and data structure for this site, and particularly how to meet the requirements for access control and multiple contacts & functions per organisation.
Outline of requirements
- The site centres around Organisations. Each Organisation has basic details (address, etc) plus further details depending on its Functions (Training, Consultancy etc). There will be a set of extra fields for Trainers, a different set of extra fields for Consultants, etc; these will be quite complex, including both free text and structured categorisation of e.g. specialisations and communities served.
- An Organisation may have multiple Functions (e.g. be both a Trainer and a Consultant).
- An Organisation may have multiple Contacts.
- Organisations will be able to log in and edit their own, and only their own, details, including: address etc, their Contacts, plus full details of each of their Functions (e.g. their specialisations as Trainers).
- Some Organisations will be Members. There will be extra fields for Members.
- Site content will be assigned to one of 3 levels of read access: public, Members-only, intranet.
Data structure - I'm not sure how to achieve the required structure of Organisations, Functions and Contacts with Drupal. I'm guessing that I would use something like Flexinode or CCK to create custom node types for Organisation, Trainer, Consultant, Contact, Member etc. How would I then achieve such relationships as a particular Organisation being both a Trainer and a Consultant, as well as a Member, and with multiple Contacts? The following modules look as though they might be relevant: Category, CiviCRM, Clipper, Node Relativity, Relationship. Advice appreciated!
Access Control - I'm hoping that something like the Edit Own Pages permission will serve the requirement for Organisations being able to edit only their own details. For the public/Members-only/intranet control, am I right in thinking that any of TAC, TAC_lite or Simple Access would do the job? I think it might be useful to have a taxonomy for this classification, so that e.g. intranet users could have a separate menu for intranet content.
Sorry for the long posting, thanks in advance for any advice.
Dave
Comments
The quite powerful solution
The quite powerful solution to this use case is to store your data in CiviCRM. It will allow you to classify your folks according to your use case.
Then you can expose the contacts on the web either:
(1) Through CiviCRM's built in profile/ listings functionality.
http://wiki.civicrm.org/confluence/display/CRM/Configure+CiviCRM+Profile
(2) Expose contacts as CCK nodes via CiviNode.
http://drupal.org/node/56661
CiviCRM profiles can be assigned to any drupal login so that orgs with a login can edit the information you choose to allow them to edit.
Member handling might be a little tricky... the data side is easy, every org contact has individual contacts with a relationship "member" between them in CiviCRM. Harder to figure out how to easily display this on the website. Good question for the CRM-dev email list (www.civicrm.org).
David Geilhufe
Managing Partner, CivicSpace
Clarification of Members
Thanks for your reply, David. I shall certainly take a look at CiviCRM.
Re: Members, I'm not sure from your comments whether I explained this clearly. Members in this case are not individuals belonging to Organisations. The site is for an umbrella group that provides information about voluntary organisations. Some of these organisations elect to become Members of the umbrella group. So think of Members as "Member Organisations": they are a subset of Organisations, with extra privileges (access to Members-only content) and extra data (e.g. membership expiry).
Dave
good luck with your site
Looking at the specs, there is considerable overlap with Civicspace - their .asp service is worth considering as they'll get you up and running quickly, and will be able to provide good advice on what you'll be able to do for your organsiations.
--> see: http://www.civicspacelabs.com/node/11
Flexinode or (better) cck is certainly the way to go for custom structured data of any kind.
access control --> TAC will enable you to control access and authorisation on node types (read, write, view, list, etc.) according to user roles
I'm not sure if you are working on windows, but using drupal-on-a-stick is a great way to build low-footprint testing/staging sites
--> see: http://www.ratatosk.net/software/onastick
If you are spending some time as moderator in the community, the shoutbox module is useful for ad-hoc 'helpdesk' comms with users. An appropriately-styled sidecontent module is good to provide 'Post-its' to draw attention to specific items on a page.
Advice for charity site:
You should look at Drupal modules to enhance CRM. In particular CiviNode and Organic groups promises to be a good combination to extend access control to CRM data with local management.
Neil