See policy decision
I don't have time to work on this. However, I take this to mean that the following changes should be made to the completion system:
1. If any changes are made to completion settings (module form), then completion data should only change in a positive direction. (This probably also means we can remove the current 'locking' functionality that makes it harder to change settings.) Some help text will also need to be altered.
Example 1.1: Forum A set to mark complete when a user makes 3 posts. User X has made 4 posts and is marked complete. Change setting to require 5 posts. User X remains marked complete.
Example 1.2: Forum B set to mark complete when a user makes 3 posts. User X has made 2 posts and is not marked complete. Change setting to require only 1 post. User X is now marked complete.
2. If, due to the affected user's or another user's action in a module, the completion status of a user would change, then this is only applied from incomplete to complete and not the other way.
Example 2.1: Forum C set to mark complete when user makes 3 posts. User X has 2 posts. User X makes another post. User X is now marked complete.
Example 2.2: User X has made 3 posts in forum C and is marked complete. User Y then deletes one of User X's posts. User X is still marked complete even though they now have only 2 posts.
Example 2.3: User X makes 2 posts in forum C, but user Y deletes one of the posts (so that they now only have 1). User X makes another post, so that they now have 2 again. User Y then undeletes the first post. User X is now marked complete. (Note: This example may not actually be possible as I'm not sure standard forum lets you undelete posts - ForumNG does though, and it may apply to other modules.)
3. When using grade-based completion, the same rules apply, and additionally the system will not change somebody from 'pass' to 'fail' state.
Example 3.1: Quiz D is set to mark complete on graded, with a 'pass grade' of 50% set. User X completes the quiz and achieves a grade of 40%. User X is marked 'complete-fail' state. User X then re-attempts the quiz and achieves 60%. They are now marked 'complete-pass' state.
Example 3.2: User X has achieved a grade in quiz D and is marked complete. A member of staff deletes the grade. User X is still marked completed.
Example 3.3: User X achieves 60% and is marked as complete-pass. They then re-attempt the quiz and only attain 40%. They remain marked as complete-pass even though the grade is now a fail grade.
4. When using manual completion, users can still uncomplete something if they like.
Example 4.1: Page E is set to manual completion. User X ticks the icon. User X is now marked complete. User X then clicks it again. They are now marked incomplete.
5. The activity completion report needs controls to reset completion status. These need to have an option to send emails to students whose status changes. (Note: Martin's decision doesn't actually state this should be optional, but based on my experience of use in practice, I'm pretty certain that it should be - there will be cases where completion status doesn't really matter and is only being corrected because of an error in settings...)
5.1 On the completion report, a user interface appears against all activities with automatic completion. This allows a teacher to select one student or all students (possibly some students) and recalculate their completion status.
5.2 On selecting this option, the teacher can choose whether to inform students. Moodle will automatically construct appropriate emails, but the teacher can add an explanatory paragraph which appears before the default text.
5.3 Completion status will be reset according to the current value of the rule (i.e. for the forum examples, if you currently have more forum posts than required, it will be marked complete) for all selected users.
5.4 Emails will be sent only to students whose completion status changed as a result of the reset.