def create_yt_issue_from_jira_issue(target, issue, project_id):
    yt_issue = Issue()
    yt_issue['comments'] = []
    yt_issue.numberInProject = issue['key'][(issue['key'].find('-') + 1):]
    for field in issue['fields'].values():
        field_type = get_yt_field_type(field[u'type'])
        field_name = get_yt_field_name(field[u'name'])
        if field_name == 'comment':
            for comment in field['value']:
                yt_comment = Comment()
                yt_comment.text = comment['body']
                comment_author_name = "guest"
                if 'author' in comment:
                    comment_author = comment['author']
                    create_user(target, comment_author)
                    comment_author_name = comment_author['name']
                yt_comment.author = comment_author_name.replace(' ', '_')
                yt_comment.created = to_unix_date(comment['created'])
                yt_comment.updated = to_unix_date(comment['updated'])
                yt_issue['comments'].append(yt_comment)

        elif (field_name is not None) and (field_type is not None):
            if 'value' in field:
                value = field['value']
                if len(value):
                    if isinstance(value, list):
                        yt_issue[field_name] = []
                        for v in value:
                            create_value(target, v, field_name, field_type, project_id)
                            yt_issue[field_name].append(get_value_presentation(field_type, v))
                    else:
                        create_value(target, value, field_name, field_type, project_id)
                        yt_issue[field_name] = get_value_presentation(field_type, value)
    return yt_issue
def to_yt_issue(target, issue, project_id,
                fields_mapping=None, value_mappings=None):
    yt_issue = Issue()
    yt_issue['comments'] = []
    yt_issue.numberInProject = issue['key'][(issue['key'].find('-') + 1):]
    for field, value in issue['fields'].items():
        if value is None:
            continue
        if fields_mapping and field.lower() in fields_mapping:
            field_name, field_type = fields_mapping[field.lower()]
        else:
            field_name = get_yt_field_name(field)
            field_type = get_yt_field_type(field_name)
        if field_name == 'comment':
            for comment in value['comments']:
                yt_comment = Comment()
                yt_comment.text = comment['body']
                comment_author_name = "guest"
                if 'author' in comment:
                    comment_author = comment['author']
                    create_user(target, comment_author)
                    comment_author_name = comment_author['name']
                yt_comment.author = comment_author_name.replace(' ', '_')
                yt_comment.created = to_unix_date(comment['created'])
                yt_comment.updated = to_unix_date(comment['updated'])
                yt_issue['comments'].append(yt_comment)
        elif (field_name is not None) and (field_type is not None):
            if isinstance(value, list) and len(value):
                yt_issue[field_name] = []
                for v in value:
                    if isinstance(v, dict):
                        v['name'] = get_yt_field_value(field_name, v['name'], value_mappings)
                    else:
                        v = get_yt_field_value(field_name, v, value_mappings)
                    create_value(target, v, field_name, field_type, project_id)
                    yt_issue[field_name].append(get_value_presentation(field_type, v))
            else:
                if field_name.lower() == 'estimation':
                    if field_type == 'period':
                        value = int(int(value) / 60)
                    elif field_type == 'integer':
                        value = int(int(value) / 3600)
                if isinstance(value, int):
                    value = str(value)
                if len(value):
                    if isinstance(value, dict):
                        value['name'] = get_yt_field_value(field_name, value['name'], value_mappings)
                    else:
                        value = get_yt_field_value(field_name, value, value_mappings)
                    create_value(target, value, field_name, field_type, project_id)
                    yt_issue[field_name] = get_value_presentation(field_type, value)
        elif _debug:
            print 'DEBUG: unclassified field', field_name
    return yt_issue
Exemple #3
0
def to_yt_issue(target, issue, project_id,
                fields_mapping=None, value_mappings=None):
    yt_issue = Issue()
    yt_issue['comments'] = []
    yt_issue.numberInProject = issue['key'][(issue['key'].find('-') + 1):]
    for field, value in issue['fields'].items():
        if value is None:
            continue
        if fields_mapping and field.lower() in fields_mapping:
            field_name, field_type = fields_mapping[field.lower()]
        else:
            field_name = get_yt_field_name(field)
            field_type = get_yt_field_type(field_name)
        if field_name == 'comment':
            for comment in value['comments']:
                yt_comment = Comment()
                yt_comment.text = comment['body']
                comment_author_name = "guest"
                if 'author' in comment:
                    comment_author = comment['author']
                    create_user(target, comment_author)
                    comment_author_name = comment_author['name']
                yt_comment.author = comment_author_name.replace(' ', '_')
                yt_comment.created = to_unix_date(comment['created'])
                yt_comment.updated = to_unix_date(comment['updated'])
                yt_issue['comments'].append(yt_comment)
        elif (field_name is not None) and (field_type is not None):
            if isinstance(value, list) and len(value):
                yt_issue[field_name] = []
                for v in value:
                    if isinstance(v, dict):
                        v['name'] = get_yt_field_value(field_name, v['name'], value_mappings)
                    else:
                        v = get_yt_field_value(field_name, v, value_mappings)
                    create_value(target, v, field_name, field_type, project_id)
                    yt_issue[field_name].append(get_value_presentation(field_type, v))
            else:
                if field_name.lower() == 'estimation':
                    if field_type == 'period':
                        value = int(int(value) / 60)
                    elif field_type == 'integer':
                        value = int(int(value) / 3600)
                if isinstance(value, int):
                    value = str(value)
                if len(value):
                    if isinstance(value, dict):
                        value['name'] = get_yt_field_value(field_name, value['name'], value_mappings)
                    else:
                        value = get_yt_field_value(field_name, value, value_mappings)
                    create_value(target, value, field_name, field_type, project_id)
                    yt_issue[field_name] = get_value_presentation(field_type, value)
        elif _debug:
            print 'DEBUG: unclassified field', field_name
    return yt_issue
Exemple #4
0
def create_yt_issue_from_jira_issue(target, issue, project_id):
    yt_issue = Issue()
    yt_issue['comments'] = []
    yt_issue.numberInProject = issue['key'][(issue['key'].find('-') + 1):]
    for field, value in issue['fields'].items():
        if value is None:
            continue
        field_name = get_yt_field_name(field)
        field_type = get_yt_field_type(field_name)
        if field_name == 'comment':
            for comment in value['comments']:
                yt_comment = Comment()
                yt_comment.text = comment['body']
                comment_author_name = "guest"
                if 'author' in comment:
                    comment_author = comment['author']
                    create_user(target, comment_author)
                    comment_author_name = comment_author['name']
                yt_comment.author = comment_author_name.replace(' ', '_')
                yt_comment.created = to_unix_date(comment['created'])
                yt_comment.updated = to_unix_date(comment['updated'])
                yt_issue['comments'].append(yt_comment)

        elif (field_name is not None) and (field_type is not None):
            if isinstance(value, list) and len(value):
                yt_issue[field_name] = []
                for v in value:
                    create_value(target, v, field_name, field_type, project_id)
                    yt_issue[field_name].append(
                        get_value_presentation(field_type, v))
            else:
                if isinstance(value, int):
                    value = str(value)
                if len(value):
                    create_value(target, value, field_name, field_type,
                                 project_id)
                    yt_issue[field_name] = get_value_presentation(
                        field_type, value)
        else:
            print field_name
    return yt_issue