Have a question about CiviCRM? Get it answered quickly at the new CiviCRM Stack Exchange Q+A siteThis forum was archived on 25 November 2017. Learn more.How to get involved.What to do if you think you've found a bug.
I have been working on a script that does the following: * Get a list of all individuals in DB * For each, search for a household with a matching address * If found, link individual to household * If individual address matches to household address, but last name is different, make the link but also tag the individual with "Household name mismatch" for later review. * If not found, create a new household with the individual's address and link to it * The households created have a name like "<last_name> Household"It is a bit buggy right now so it is not ready to be shared but otherwise works on 99% of contacts. It depends heavily on the street addresses being in similar format so that they match on a simple string search, so it helps a lot if they have been run through the USPS address verification feature.If there is interest I will share the script when finished.
DROP TABLE IF EXISTS `civicrm_uf_match`;CREATE TABLE `civicrm_uf_match` ( `id` int(10) unsigned NOT NULL auto_increment COMMENT 'System generated ID.', `uf_id` int(10) unsigned NOT NULL default '0' COMMENT 'UF ID', `uf_name` varchar(128) collate utf8_unicode_ci default NULL COMMENT 'UF Name', `contact_id` int(10) unsigned default NULL COMMENT 'FK to Contact ID', `domain_id` int(10) unsigned NOT NULL default '0' COMMENT 'Which Domain owns this contact (cached here for ease of use reasons)', PRIMARY KEY (`id`), UNIQUE KEY `UI_uf_domain_id` (`uf_id`,`domain_id`), UNIQUE KEY `UI_contact` (`contact_id`), UNIQUE KEY `UI_uf_name_domain_id` (`uf_name`,`domain_id`), KEY `FK_civicrm_uf_match_domain_id` (`domain_id`), CONSTRAINT `FK_civicrm_uf_match_contact_id` FOREIGN KEY (`contact_id`) REFERENCES `civicrm_contact` (`id`) ON DELETE SET NULL, CONSTRAINT `FK_civicrm_uf_match_domain_id` FOREIGN KEY (`domain_id`) REFERENCES `civicrm_domain` (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
4.) User Administration -- configuring who can do what is too confusing, takes too many steps and is too abstract for your typical user. A more intuitive and hold-your-hand approach to coaching people through configuring user roles and permissions is essential.
5.) Configuration generally -- there is no checklist, go guided tour, no end-to-end path for configuring CiviCRM the first time.
6.) Ongoing configuration -- Once in a lifetime configuration options are side-by-side with need-to-regularly-change configurations and settings, resulting in a dizzying array on the configuration/administration screen that completely turns me off. I don't know where to go to do what I need and things aren't organized in a way that helps me get to the most often used tasks quickly. The set-once-and-forget-it options need to be buried down deep and the I'll-change-this-a-lot options need to be on the surface.
7.) I stare at a blank screen -- When I click on the CiviCRM link, I am presented with a mostly blank screen (with a "helpful" little message at the top saying "There are no Activities to display.") and a menu on the right. And the menu isn't that helpful. It doesn't tell me what I can do, it tells me what other page I can access. When I go to CiviCRM I'm going there to *do* something, not hunt through sub-pages. I intend to [ad and contact] or [create an event] or [record a donation] or [send a message]. Why not have these verbs at the top of the menu? Why not put the most likely tasks up at the top? Why do you have "Find Contacts" as the second menu option when there's a quick search field with link to advanced search, like, half an inch above it? Is creating a New Group something I'm going to need to do nearly as much as I need to add a New Individual, or a New Household? No? Then why does it have the same kind of prominence? The menu on the home page makes no sense whatsoever.
8.) Navigation throughout -- Why, when I go to the CiviContribute page, do I have to read all of "CiviContribute allows you to create customized page(s) for collecting online contributions. Administrators can create or modify your Online Contribution Pages from here." to find the link on [here] to figure out where to click to create or modify an Online Contribution? Why is there not an button or plain menu of links where I see "Create Contribution Page"? To get around I have to to do all this reading and sifting through sentences to find the links I need to get the work done. Why?
Lastly, my problem today is syncing up Drupal user roles with CiviCRM groups. It shouldn't be hard, but it is, or I haven't yet found the easy way to do it.
On the usability & features side of it. I think that profiles have a lot more functionality than is readily apparent,
I didn't check out batch update via profile at first because I assumed it would just allow me to change all selected users to the same values (ie. change all 10 participants to 'attended') but was recently pleasantly surprised to discover an excel style update functionality (although it easily overloads the server RAM - I think all the tests I did on the demo site did that).
What struck me seeing the results though was that I really wanted to be able to return the batch update screen from a search but didn't think I could. I now believe that that can be done through custom profiles (although I haven't yet managed to - I put that in another forum).
Being able to choose the group of fields to search by and especially what fields to return in search results is the functionality that civiCRM has seemed to me to be missing but now I realise it is there but just hard to find- with the only clue in the front end being in the help text when you are setting up profiles. (The frustrating thing is you can't copy & paste the relevant URL from this help text as it disappears when you click on it).
Selecting fields for results screens is something you would do often and end users would probably do often too so this is the sort of functionality that I would think should be very prominent. Links to existing searchable profiles from somewhere would be great too.
1 -- Import/Export to/from ExcelI'd like the option to export/import multi-valued fields into/outof separate columns...
2 -- Checkbox booleanI'd like the boolean custom field value in custom fields to be able to be represented by a checkbox
3 -- Field value/group membership listenerI'd like for groups to be able to listen for particular custom field values and add members to X group when Y field value is applied to those members.
4 -- Field labelsI'd like field labels to be not required or maybe just not displayed on the form. Sometimes you just want a checkbox.
5 -- CiviCRM compose The Dojo HTML editor is bad, bad, bad. Try TinyMCE or Nicedit instead.
6 -- BlocksFor some reason the CiviCRM blocks will not appear on Drupal pages outside of the Administer and CiviCRM pages.
Elliott - thanks for taking the time to give feedback on this :-).Quote from: elliottm346 on April 03, 2008, 05:36:07 am1 -- Import/Export to/from ExcelI'd like the option to export/import multi-valued fields into/outof separate columns...Dealing with 1 : many data relationships in import and export (i.e. tags, groups, relationships) - which use flat record structures - has been tough for us. We expect to spend some time re-factoring import and search over the next few releases, so we'll keep this idea in mind. Would be helpful to get some more details on the workflows where you need this (from / to where are you exchanging data, why, how often, etc.)
Quote from: elliottm346 on April 03, 2008, 05:36:07 am2 -- Checkbox booleanI'd like the boolean custom field value in custom fields to be able to be represented by a checkboxSeems like a good idea to have a choice (Radio or Checkbox) when creating the field. Any interest in submitting a patch for this for 2.1?
Quote from: elliottm346 on April 03, 2008, 05:36:07 am3 -- Field value/group membership listenerI'd like for groups to be able to listen for particular custom field values and add members to X group when Y field value is applied to those members.Seems like you can do this by creating Smart Group(s) from Advanced Search - find contacts where "this custom field value = Y". (Perhaps I'm not understanding your requirement completely??)
Quote from: elliottm346 on April 03, 2008, 05:36:07 am4 -- Field labelsI'd like field labels to be not required or maybe just not displayed on the form. Sometimes you just want a checkbox.You can do this today by using the HTML entity for non-breaking space as the field label (" "). Bit of a hack but it works.
Quote from: elliottm346 on April 03, 2008, 05:36:07 am6 -- BlocksFor some reason the CiviCRM blocks will not appear on Drupal pages outside of the Administer and CiviCRM pages.What blocks do you want to show, when and why? :-)UPDATE on item 6: You can change this behavior by modifying the civicrm_block() function in civicrm/drupal/civicrm.module. Changing line 164 should do it. If we get other folks chiming in that they want to be able to this, we'll consider changing this / making it configurable via the Drupal Admin >> Block interface. But so far, it don't think it's come up as an issue - and this approach keeps stuff simple for the common case.