Remove published on change. To make this possible, we need to start generating events in Translate.
These are the event conditions that we have identified so far.
Scenario: A message group in a language has an undefined state. When a change is made to any message of a message group in a language, based on the variables (UNTRANSLATED) untranslated message and (OUTDATED) Outdated message, (MESSAGECOUNT) Number of messages in group, (REVIEWED) Number of reviewed messages and (STATE) current message group state index, it must be possible to configure the following:
1.1. When UNTRANSLATED >= 1, OUTDATED = 0 set STATE to SomeState ("progress" on Meta Wiki).
1.2. When OUTDATED >= 1 set STATE to SomeState ("needs-updating" on Meta Wiki).
1.3. When UNTRANSLATED = 0, OUTDATED = 0 set STATE to SomeState ("proofreading" on Meta Wiki).
1.4 When REVIEWED = MESSAGECOUNT set STATE to SomeState ("ready" on Meta Wiki).
1.5 When STATE = SomeState set STATE to WhateverTheWorkflowRequires (most probably "proofreading" in this example (This is used to remove state "published" after an update is made).
Additional acceptance criteria:
2.1: When no message group state is found, the state is "(unset)". This means that there are no translations for a message group at all (UNTRANSLATED = MESSAGECOUNT, STATE not present)
2.2: Any user should be able to override a state manually (the ones they are allowed to set (bug 37142)) until another change is made to a message in a group after which the state is set based on workflow state rules. This is needed to allow a language for which only one translator is available to reach a "ready" state.
For the initial integration of CentralNotice with Translate, only requirements 1.5, 2.1 and 2.2 MUST be met.