feat/task-type-hierarchy #5
@@ -294,11 +294,11 @@ def export_issues_csv(project_id: int = None, db: Session = Depends(get_db)):
|
||||
issues = query.all()
|
||||
output = io.StringIO()
|
||||
writer = csv.writer(output)
|
||||
writer.writerow(["id", "title", "type", "status", "priority", "project_id",
|
||||
writer.writerow(["id", "title", "type", "subtype", "status", "priority", "project_id",
|
||||
"reporter_id", "assignee_id", "milestone_id", "due_date",
|
||||
"tags", "created_at", "updated_at"])
|
||||
for i in issues:
|
||||
writer.writerow([i.id, i.title, i.issue_type, i.issue_subtype or , i.status, i.priority, i.project_id,
|
||||
writer.writerow([i.id, i.title, i.issue_type, i.issue_subtype or "", i.status, i.priority, i.project_id,
|
||||
i.reporter_id, i.assignee_id, i.milestone_id, i.due_date,
|
||||
i.tags, i.created_at, i.updated_at])
|
||||
output.seek(0)
|
||||
|
||||
@@ -6,16 +6,16 @@ import enum
|
||||
|
||||
|
||||
class IssueType(str, enum.Enum):
|
||||
MEETING = meeting
|
||||
SUPPORT = support
|
||||
ISSUE = issue
|
||||
MAINTENANCE = maintenance
|
||||
RESEARCH = research
|
||||
REVIEW = review
|
||||
STORY = story
|
||||
TEST = test
|
||||
RESOLUTION = resolution # 决议案 - 用于 Agent 僵局提交
|
||||
TASK = task # legacy generic type
|
||||
MEETING = "meeting"
|
||||
SUPPORT = "support"
|
||||
ISSUE = "issue"
|
||||
MAINTENANCE = "maintenance"
|
||||
RESEARCH = "research"
|
||||
REVIEW = "review"
|
||||
STORY = "story"
|
||||
TEST = "test"
|
||||
RESOLUTION = "resolution" # 决议案 - 用于 Agent 僵局提交
|
||||
TASK = "task" # legacy generic type
|
||||
|
||||
|
||||
class IssueStatus(str, enum.Enum):
|
||||
@@ -135,7 +135,7 @@ class ProjectMember(Base):
|
||||
|
||||
|
||||
class ProjectCodeCounter(Base):
|
||||
__tablename__ = project_code_counters
|
||||
__tablename__ = "project_code_counters"
|
||||
|
||||
id = Column(Integer, primary_key=True, index=True)
|
||||
prefix = Column(String(16), unique=True, index=True, nullable=False)
|
||||
|
||||
Reference in New Issue
Block a user