- I've modified the Activity Types in xml/templates/civicrm_add_domain.tpl so that they are a bit more general - and added an activity type for Membership Renewal. You'll need to modify code which inserts activity records for offline and online Contributions, Event Registration and Memberships to use the new option labels. civicrm_generated.mysql also needs to be rebuilt.
- Modify the membership create and renew code to use the two different activity types.
- Make sure activity statuses are coming from option_value table, and add "Canceled" status option. (Scheduled, Completed, Cancelled should all be is_reserved = 1 in the data).
- I agree with MIchal that Activity DURATION SHOULD stay as INT (minutes). Right now, postProcess is NOT saving the Duration at all as far as I can tell. (NOTE: I think we need a function that will take API inserted values that don't match the selector values and "round them" to selector values if the activity is edited via form. For example, if API inserts 78 minutes, we need to round to 75 so we can show as 1 hr 15 minutes in the form.)
- Change Other Activities link to a <select> field which lists the custom activity types with an onchange submit to load the Activity form with that activity type selected. Field label is still Other Activities, and null option label for the <select> is "- other activities -". (This is related to the item below under form changes. Basically, once the add/update activity form is loaded we should KNOW what activity type we're dealing with and can load any custom fields for it etc. Activity type is NOT editable within the form.)
- Do we need the "history=" GET param that is being passed around?
Activity Selector (contact/view and dashboard)
- First time displaying civicrm/dashboard after running setup.sh, I get this error... warning: CRM_Core_DAO::require_once(CRM/Core/DAO/ActivityHistory.php) [function.CRM-Core-DAO-require-once]: failed to open stream: No such file or directory in /Users/dgg/svn/trunk/CRM/Core/DAO.php on line 392
- Only show "Case" column if CiviCase is enabled.
- Activity selector in Home Dashboard is missing all row values except Subject
- Test activities are included. Query should exclude is_test = 1.
- Need a "View" row action for all activity types. For Contribution, Event Reg and Membership - it should we a view of the related entity (i.e. view the contribution) - same as we did for Activity History >> Details row action in the old model. For Email Sent, should be a page to view the Email (from, to, subject, message - also nice to include date sent in the "view").
- Email Sent should NOT have an Edit action - since it doesn't make sense to edit an email you've already sent.
- Implement the red color (hIghlighting) of "overdue activities". Criteria for "overdue" is: scheduled date < NOW and status != Completed or Cancelled.
Activity Create / Edit Form Changes
- Activity type will be "set" by the GET param passed in. Remove the editable Activity Type field from the form (not sure if we still need it as a hidden field for the postProcess). Put "label" in the the Fieldset legend (via the template). Assign the activity type Description to the .tpl and display it above the fields in a div (id=help). This means we can ditch the Jscript for displaying the activity descriptions (which is broken anyway).
- If user is does NOT have "administer CiviCRM" permission, then change Added by (source_contact) to display only. Admin users can "add for someone else".
- With (target_contact) field is display only - not editable - when accessing this form from the context of viewing a particular contact.
- Make assignee_contact field OPTIONAL (and test submit with it empty - I think I was getting fatal errors somehow).
- Date and Time - TIME field is missing.
- Fix invalid html (dt/dd not enclosed in <dl></dl> or with div in between etc.) in templates/CRM/Activity/Form/Activity.tpl. Might be easier to use table layout for this form ??
- Also, in that template, are the conditionals on $history valid anymore? If not, remove.
Issues to Discuss
- I think we need some kind of simple filtering on the activity selector, now that we don't distinguish completed activities (history) from "open" ones. Maybe just a simple set of status checkboxes which defaults to "Scheduled" checked ?
- Sort name in auto-complete fields is a problem - as you cannot distinguish contacts with the same first/last name. Ideally figure out a way to add a second display layer with shows additional contact info next to the combobox for the selected contact (Display Name? Email Address?). Another idea (less useful, but an improvement) would be to include middle name in our sort name generation logic ("Greenberg, David Gene").