Skip to main content

Boards

Manage boards, types, and groups.

Getting Boards

All Boards

response = client.get_boards()

for board in response.boards:
print(f"📋 {board.name}")

Single Board

response = client.get_board("board_id")
board = response.board

print(f"Board: {board.name}")
print(f"Groups: {len(board.groups or [])}")
print(f"Types: {len(board.types_list or [])}")

Board Types

Types categorize tasks (e.g., Bug, Feature, Task).

Create Type

from vaiz.models import CreateBoardTypeRequest
from vaiz.models.enums import Icon, Color

request = CreateBoardTypeRequest(
board_id="board_id",
label="Bug",
icon=Icon.Bug,
color=Color.Red,
description="Bug reports and issues"
)

response = client.create_board_type(request)
print(f"✅ Created type: {response.board_type.label}")

Edit Type

from vaiz.models import EditBoardTypeRequest

request = EditBoardTypeRequest(
board_type_id="type_id",
board_id="board_id",
label="Critical Bug",
color=Color.Magenta,
description="High priority bugs",
hidden=False
)

response = client.edit_board_type(request)

Common Type Examples

from vaiz.models.enums import Icon, Color

# Bug type
bug_type = CreateBoardTypeRequest(
board_id="board_id",
label="🐛 Bug",
icon=Icon.Bug,
color=Color.Red
)

# Feature type
feature_type = CreateBoardTypeRequest(
board_id="board_id",
label="✨ Feature",
icon=Icon.Star,
color=Color.Blue
)

# Task type
task_type = CreateBoardTypeRequest(
board_id="board_id",
label="📋 Task",
icon=Icon.Checkbox,
color=Color.Green
)

Board Groups

Groups organize tasks in columns (e.g., To Do, In Progress, Done).

Create Group

from vaiz.models import CreateBoardGroupRequest

request = CreateBoardGroupRequest(
name="In Review",
board_id="board_id",
description="Tasks pending code review"
)

response = client.create_board_group(request)
print(f"✅ Created group: {request.name}")

Edit Group

from vaiz.models import EditBoardGroupRequest

request = EditBoardGroupRequest(
board_group_id="group_id",
board_id="board_id",
name="Code Review",
description="Pending review by team",
limit=10, # Max tasks in group
hidden=False # Visible in board
)

response = client.edit_board_group(request)

Common Group Structure

# Typical Kanban board groups
groups = [
"📝 Backlog",
"🎯 To Do",
"⏳ In Progress",
"👀 In Review",
"✅ Done"
]

for group_name in groups:
request = CreateBoardGroupRequest(
name=group_name,
board_id="board_id"
)
client.create_board_group(request)

Complete Board Setup

from vaiz import VaizClient
from vaiz.models import (
CreateBoardTypeRequest,
CreateBoardGroupRequest
)
from vaiz.models.enums import Icon, Color

client = VaizClient(api_key="...", space_id="...")

board_id = "board_id"

# Create types
types = [
("Bug", Icon.Bug, Color.Red),
("Feature", Icon.Star, Color.Blue),
("Task", Icon.Checkbox, Color.Green),
("Documentation", Icon.Document, Color.Gold),
]

for label, icon, color in types:
request = CreateBoardTypeRequest(
board_id=board_id,
label=label,
icon=icon,
color=color
)
response = client.create_board_type(request)
print(f"✅ Created type: {label}")

# Create groups
groups = [
("Backlog", "Tasks to be prioritized"),
("To Do", "Ready to start"),
("In Progress", "Currently being worked on"),
("Review", "Pending review"),
("Done", "Completed tasks"),
]

for name, description in groups:
request = CreateBoardGroupRequest(
name=name,
board_id=board_id,
description=description
)
response = client.create_board_group(request)
print(f"✅ Created group: {name}")

Working with Board Structure

Get Board Details

response = client.get_board("board_id")
board = response.board

print(f"Board: {board.name}")
print("\nGroups:")
for group in board.groups or []:
print(f" - {group.name}")

print("\nTypes:")
for type_item in board.types_list or []:
print(f" - {type_item.label} ({type_item.color})")

Create Tasks with Types

from vaiz.models import CreateTaskRequest

# Get board to find type IDs
board_response = client.get_board("board_id")
board = board_response.board

# Find bug type
bug_type = next(t for t in board.types_list if t.label == "Bug")

# Create bug task
task = CreateTaskRequest(
name="Fix login issue",
board="board_id",
group="group_id",
types=[bug_type.id] # Use .id attribute, not dictionary access
)

response = client.create_task(task)

See Also