Allow restrictions to status change based on custom field, but different based on role
- Sales is allowed to create a ticket for a prospective support request as "New" (but not switch status from there)
- The Support team can OK the request on principle, and can switch it to "Reviewed"
- From there, sales get permission from accounting, along with an "Approval Number" (which we implement as a custom field)
- Then, either Support would like to switch the request to "In progress".
- The "Approval Number" can not be set as a required item, otherwise creating a ticket even for prospective requests becomes impossible. (We keep track of even received-but-not-approved requests that way)
- Support should not have business modifying the "Approval Number", which means setting it as "Read-only". Except, it should also be "Required" when wanting to switch from "Accepted" to "In progress", but setting it as such in the Workflow means allowing them to modify it.
- For now we are giving Sales the permission to change status from "Reviewed" to "In progress", for which we can set the "Approval Number" as a required field, but :
- They tend to forget to switch status after inputting the Approval Number, because it is not intuitive to them (Basically, the "Approval Number" being filled in would be the "condition" for allowing the switch to "In progress")
- Support should be able to pick on its own when to switch status, and start work once it has been approved (but again, not modify the "Approval Number").
So here, I suppose I'm wondering how to do value validation ("Is it empty?", "Does it match a format?") as a restriction to status change, or more simply, how to do a "Required + Read-only" setting.
I am under the impression it is not possible in vanilla Redmine, so this would be a nice feature to have.