Skip to content

Instantly share code, notes, and snippets.

@jweisman
Last active January 19, 2023 07:20
Show Gist options
  • Save jweisman/f15cdbf2f3ead577b69a to your computer and use it in GitHub Desktop.
Save jweisman/f15cdbf2f3ead577b69a to your computer and use it in GitHub Desktop.

Revisions

  1. jweisman revised this gist Jul 28, 2015. No changes.
  2. jweisman created this gist Jul 28, 2015.
    30 changes: 30 additions & 0 deletions AlmaValidateFields.groovy
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,30 @@
    import com.opensymphony.workflow.InvalidInputException
    import com.atlassian.jira.ComponentManager
    import com.atlassian.jira.issue.Issue
    import com.atlassian.jira.issue.CustomFieldManager
    import com.atlassian.jira.issue.fields.CustomField

    def customFieldManager = ComponentManager.getInstance().getCustomFieldManager()
    def fields = []

    // For Alma issues, if issue is fixed, make all sorts of validations
    if (issue.resolution?.name == 'Fixed' && issue.project?.name == 'Alma') {
    switch ( issue.issueType?.name ) {
    case 'Bug':
    fields.addAll(['Resolution Description','Fix in Environment'])
    case ['Story', 'Bug', 'Task', 'inList']:
    fields.addAll(['Documentation Required','Migration Impact','Configuration Impact','Automation Impact','Leganto Documentation Required'])
    }
    fields.each {
    CustomField cf = customFieldManager.getCustomFieldObjectByName(it)
    if (cf && !issue.getCustomFieldValue(cf)) {
    if (invalidInputException)
    invalidInputException.addError(cf.id, "You must specify a value for ${cf.name}.")
    else
    invalidInputException = new InvalidInputException(cf.id, "You must specify a value for ${cf.name}.")
    }
    }
    if (invalidInputException)
    invalidInputException.addError("The fields marked below must be filled before the issue can be resolved.")
    } else
    return true