示例#1
0
文件: module.py 项目: laurentb/weboob
    def _make_issue(self, d, project):
        _id = self._build_issue_id(project.id, d['number'])
        issue = Issue(_id)
        issue.url = d['url']
        issue.project = project
        issue.title = d['title']
        issue.body = d['body']
        issue.creation = d['creation']
        issue.updated = d['updated']
        issue.author = project.find_user(d['author'], None)
        if not issue.author:
            # may duplicate users
            issue.author = User(d['author'], d['author'])
        issue.status = STATUSES[d['status']]

        if d['assignee']:
            issue.assignee = project.find_user(d['assignee'], None)
        else:
            issue.assignee = None

        if d['version']:
            issue.version = project.find_version(d['version'], None)
        else:
            issue.version = None

        issue.category = None

        issue.attachments = [self._make_attachment(dattach) for dattach in d['attachments']]

        issue.tags = [t['name'] for t in d['labels']]

        return issue
示例#2
0
文件: module.py 项目: guix77/weboob
    def _make_issue(self, d, project):
        _id = self._build_issue_id(project.id, d['number'])
        issue = Issue(_id)
        issue.url = d['url']
        issue.project = project
        issue.title = d['title']
        issue.body = d['body']
        issue.creation = d['creation']
        issue.updated = d['updated']
        issue.author = project.find_user(d['author'], None)
        if not issue.author:
            # may duplicate users
            issue.author = User(d['author'], d['author'])
        issue.status = STATUSES[d['status']]

        if d['assignee']:
            issue.assignee = project.find_user(d['assignee'], None)
        else:
            issue.assignee = None

        if d['version']:
            issue.version = project.find_version(d['version'], None)
        else:
            issue.version = None

        issue.category = None

        issue.attachments = [
            self._make_attachment(dattach) for dattach in d['attachments']
        ]

        issue.tags = [t['name'] for t in d['labels']]

        return issue
示例#3
0
    def _make_issue(self, data):
        if data['name'].endswith(':'):
            # section, not task
            return None

        i = Issue(str(data['gid']))
        i.url = 'https://app.asana.com/0/0/%s/f' % i.id
        i.title = data['name']
        if 'notes' in data:
            i.body = data['notes']
        if data.get('assignee'):
            i.assignee = self._make_user(data['assignee'])
        if data.get('created_by'):
            # created_by is not documented
            i.author = self._make_user(data['created_by'])
        if 'created_at' in data:
            i.creation = parse_date(data['created_at'])
        if 'modified_at' in data:
            i.updated = parse_date(data['modified_at'])
        if 'due_at' in data:
            if data['due_at']:
                i.due = parse_date(data['due_at'])
            else:
                i.due = NotAvailable
        if 'due_on' in data:
            if data['due_on']:
                i.due = parse_date(data['due_on'])
            else:
                i.due = NotAvailable
        if data.get('projects'):
            i.project = self._make_project(data['projects'][0])
        if 'completed' in data:
            i.status = self.STATUS_CLOSED if data[
                'completed'] else self.STATUS_OPEN
        if 'custom_fields' in data:

            def get(d):
                for k in ('string_value', 'number_value', 'enum_value',
                          'text_value'):
                    if k in d:
                        return d[k]
                assert False, 'custom type not handled'

            i.fields = {d['name']: get(d) for d in data['custom_fields']}
        if 'tags' in data:
            i.tags = [d['name'] for d in data['tags']]
        if data.get('memberships') and data['memberships'][0]['section']:
            i.category = data['memberships'][0]['section']['name']

        i.version = NotAvailable
        i.priority = NotAvailable
        return i
示例#4
0
    def _make_issue(self, data):
        if data['name'].endswith(':'):
            # section, not task
            return None

        i = Issue(str(data['id']))
        i.url = 'https://app.asana.com/0/0/%s/f' % i.id
        i.title = data['name']
        if 'notes' in data:
            i.body = data['notes']
        if data.get('assignee'):
            i.assignee = self._make_user(data['assignee'])
        if data.get('created_by'):
            # created_by is not documented
            i.author = self._make_user(data['created_by'])
        if 'created_at' in data:
            i.creation = parse_date(data['created_at'])
        if 'modified_at' in data:
            i.updated = parse_date(data['modified_at'])
        if 'due_at' in data:
            if data['due_at']:
                i.due = parse_date(data['due_at'])
            else:
                i.due = NotAvailable
        if 'due_on' in data:
            if data['due_on']:
                i.due = parse_date(data['due_on'])
            else:
                i.due = NotAvailable
        if data.get('projects'):
            i.project = self._make_project(data['projects'][0])
        if 'completed' in data:
            i.status = self.STATUS_CLOSED if data['completed'] else self.STATUS_OPEN
        if 'custom_fields' in data:
            def get(d):
                for k in ('string_value', 'number_value', 'enum_value', 'text_value'):
                    if k in d:
                        return d[k]
                assert False, 'custom type not handled'
            i.fields = {d['name']: get(d) for d in data['custom_fields']}
        if 'tags' in data:
            i.tags = [d['name'] for d in data['tags']]
        if data.get('memberships') and data['memberships'][0]['section']:
            i.category = data['memberships'][0]['section']['name']

        i.version = NotAvailable
        i.priority = NotAvailable
        return i