The following code and variations has been circulating around on how to calculate a time in the template "duration" format for an issue. I have the code working but I believe it is setup to calculate a cumulative total of any time the issue has been in a status during it's lifecycle.
I'm attempting to create a version of this code that will only show the current instance of being this status (any status). So for instance:
Here is the code being utilized:
import com.atlassian.jira.component.ComponentAccessor
def changeHistoryManager = ComponentAccessor.changeHistoryManager
def currentStatusName = issue?.status?.name
def rt = [0L]
changeHistoryManager.getChangeItemsForField (issue, "status").reverse().each {item ->
def timeDiff = System.currentTimeMillis() - item.created.getTime()
if (item.fromString == currentStatusName) {
rt << -timeDiff
}
if (item.toString == currentStatusName){
rt << timeDiff
}
}
def total = rt.sum() as Long
return (total / 1000) as long ?: 0L
I would like this data to retain the duration template if at all possible.
My thought is I need to get the last status change time here somehow, and eliminate the second if statement?
Thank you in advance!
Answer can be found here: https://community.atlassian.com/t5/Jira-Core-questions/Groovy-show-time-this-issue-In-Progress-status-Not-Total/qaq-p/184151
Thank you @JamieA
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.