In the code below, everything is working fine except the last option.
In the last option the in spite of the value I choose from dropdown, it defaults to 'None' on the Edit Issue screen.
Please help to figure out why
import groovy.transform.BaseScript
import com.onresolve.jira.groovy.user.FieldBehaviours
import com.onresolve.jira.groovy.user.FormField
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.customfields.option.Option
import java.text.SimpleDateFormat
import java.util.Date
import java.util.Calendar
// @BaseScript FieldBehaviours fieldBehaviours
class E2ETFieldBehaviors extends FieldBehaviours {
FormField getTestStageCf() {
getFieldById("customfield_18904")
}
FormField getReleaseDateCf() {
getFieldById("customfield_21901")
}
void checkReleaseDate() {
if (!isBug()) {
return
}
def releaseDateCf = getReleaseDateCf()
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd")
Date releaseDate = formatter.parse(releaseDateCf.getValue() as String)
def currentDate = new Date()
def cal = Calendar.getInstance()
cal.setTime(releaseDate)
cal.add(Calendar.DATE, -2)
def releaseDateMinus2 = cal.getTime()
def cal1 = Calendar.getInstance()
cal1.setTime(releaseDate)
cal1.add(Calendar.DATE, 30)
def releaseDatePlus30 = cal1.getTime()
// ***** Setting up control on service field dropodown control ******
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def optionsManager = ComponentAccessor.getOptionsManager()
def testStageCf = getTestStageCf()
def customField = customFieldManager.getCustomFieldObject(testStageCf.getFieldId())
def config = customField.getRelevantConfig(getIssueContext())
def options = optionsManager.getOptions(config)
final normal = options.collectEntries { [(it.optionId.toString()): it.value] }
final before2 = options.findAll { it.value in ['0-ReqReview', '1-UNIT', '10-PRE-INT',
'2-SYST','3-INT','4-UAT','6-LUT','8-TRN',
'9-CAT']
} .collectEntries { [(it.optionId.toString()): it.value] }
final after30 = options.findAll { it.value in ['5-Warranty','7-PROD'] }
.collectEntries { [(it.optionId.toString()): it.value] }
if (currentDate.after(releaseDatePlus30)) {
testStageCf.setFieldOptions(["-1": "None"] +after30)
//testStageCf.setFormValue(null)
} else if (currentDate.before(releaseDateMinus2)) {
testStageCf.setFieldOptions(["-1": "None"] + before2)
//testStageCf.setFormValue(null)
} else {
testStageCf.setFieldOptions(["-1": "None"] + normal)
//testStageCf.setFormValue(null)
}
}
}