예제 #1
0
파일: toyaml.py 프로젝트: tttallis/ajellito
def dump_task(t, issues, time_entries):
    task = {}
    issues[task_key(t.id)] = task

    task['name'] = t.name
    task['type'] = 'Task'

    if t.owner is None:
        task['author'] = DEFAULT_USER
    else:
        task['author'] = t.owner.username
        task['assigned'] = t.owner.username

    task['description'] = totextile(t.description)
    task['status'] = Task.STATES.label(t.state)
    task['estimate'] = t.estimate
    task['remaining'] = t.remaining
    task['category'] = Task.CATEGORIES.label(t.category)
    task['parent'] = story_key(t.user_story.id)
    if not t.tags is None: task['tags'] = t.taglist
    if t.user_story.iteration: task['sprint'] = sprint_key(t.user_story.iteration.id)
    task['history'] = []

    value = t.remaining
    for tl in t.tasklog_set.all():
        if tl.old_remaining is None: tl.old_remaining = t.estimate
        if tl.old_remaining != value:
            j = journal(tl.date, tl.owner, 'remaining_hours', tl.old_remaining, value)
            value = tl.old_remaining
            task['history'].append(j)

        if not tl.owner is None and not tl.time_on_task is None and tl.time_on_task != 0:
            time_entries.append(time_entry_object(t, tl))
예제 #2
0
파일: toyaml.py 프로젝트: tttallis/ajellito
def time_entry_object(task, tasklog):
    te = {}
    te['timestamp'] = tasklog.date
    te['username'] = tasklog.owner.username
    te['issue'] = task_key(task.id)
    te['hours'] = tasklog.time_on_task
    te['comments'] = totextile(tasklog.summary)
    te['activity'] = Task.CATEGORIES.label(task.category)
    return te
예제 #3
0
파일: toyaml.py 프로젝트: tttallis/ajellito
def dump_impediment(i, issues):
    imp = {}
    issues[impediment_key(i.id)] = imp

    imp['name'] = impediment.name
    imp['author'] = DEFAULT_USER
    imp['type'] = 'Impediment'
    imp['description'] = totextile(impediment.description)
    imp['created'] = impediment.opened

    if impediment.resolved is None:
        imp['status'] = 'open'
    else:
        imp['status'] = 'closed'
        imp['history'] = [journal(impediment.resolved, None, 'status', 'open', 'closed')]

    imp['blocks'] = []
    for t in Task.objects.filter(impediment=i).distinct():
        imp['blocks'].append(task_key(t.id))
        if t.user_story.iteration: imp['sprint'] = sprint_key(t.user_story.iteration.id)
예제 #4
0
파일: toyaml.py 프로젝트: tttallis/ajellito
def dump_story(s,issues):
    dump = {}
    issues[story_key(s.id)] = dump

    dump['name'] = '%s (#%d)' % (s.name, s.id)
    dump['type'] = 'Story'
    dump['author'] = DEFAULT_USER
    dump['description'] = totextile(s.description)
    dump['status'] = UserStory.STATES.label(s.state)
    dump['points'] = s.size
    dump['position'] = s.rank
    dump['created'] = s.created
    if s.iteration: dump['sprint'] = sprint_key(s.iteration.id)
    if not s.closed is None:
        dump['history'] = [journal(s.closed, None, 'status', UserStory.STATES.label(UserStory.STATES.SPECIFIED), dump['status'])]
    if not s.tags is None: dump['tags'] = s.taglist

    if s.state in UserStory.ENDSTATES:
        dump['done'] = 100
    else:
        dump['done'] = 0
예제 #5
0
파일: toyaml.py 프로젝트: tttallis/ajellito
        imp['status'] = 'open'
    else:
        imp['status'] = 'closed'
        imp['history'] = [journal(impediment.resolved, None, 'status', 'open', 'closed')]

    imp['blocks'] = []
    for t in Task.objects.filter(impediment=i).distinct():
        imp['blocks'].append(task_key(t.id))
        if t.user_story.iteration: imp['sprint'] = sprint_key(t.user_story.iteration.id)


for project in Project.objects.all():
    print 'Generating %s...' % project.name
    pname = project.name
    if SAMPLE: pname = 'Sample'
    pdump = {'name': pname, 'sprints': {}, 'members': {}, 'description': totextile(project.description)}

    DEFAULT_USER = None
    if KEY_USERS.has_key(project.name): DEFAULT_USER = KEY_USERS[project.name]

    for user in project.project_members.all():
        pdump['members'][tostr(user.username)] = {
            'email': user.email,
            'lastname': user.last_name,
            'firstname': user.first_name,
            'active': user.is_active,
            'admin': user.is_superuser or user.is_staff,
            'role': 'member'
        }

    if not DEFAULT_USER in pdump['members'].keys():