A couple of clients would like to use CiviCase and both of them have very unstructured cases, so a timeline or a sequence is not appropriate. So I have created a case without a timeline or sequence but... when an activity is added to such a case it defaults to a status of 'Scheduled'. Both of my clients want to normally record activities after the fact, so for them the status should default to 'Completed'. I don't see how this can be done in the UI. Can anyone either tell me how this can be done with the UI or in the code? If it can't be done in the UI then adding a default status for new case activities seems like a desirable feature.
Might be easiest to update the database is_default field. Works for me on a 4.6 site:
update civicrm_option_value set is_default=0 where option_group_id=26 and name='Scheduled'; update civicrm_option_value set is_default=1 where option_group_id=26 and name='Completed';
You may need to change the 26 but it's a stock option group. To confirm first can do:
select id from civicrm_option_group where name='activity_status';
or go to admin - system settings - option groups and see what the id in the link is. Ideally you'd be able to set default value on that screen but it doesn't seem to offer it.
You can use the buildForm hook on an activity to check if the activity belongs to a case (in which case
case_id will not be empty I think) and then set the default status to Completed.
There is an example here, although it sets different statuses for different types it basically does the same thing. Copy and change I would say :-): https://github.com/PUMNL/nl.pum.casestatus And it is developed for CiviCRM 4.4...
You can also use CiviRules: https://civicrm.org/extensions/civirules
You can set a trigger when a case activity is saved, that the status always changed to "Completed."