feat: optimize and enhance IssueActivity class - Issue #126

Enhanced IssueActivity dataclass with convenient methods and properties:
- Added activity_type_value, activity_type_display properties
- Added formatted_date, formatted_datetime properties
- Added truncated_details property for display
- Added contains_keyword() and has_implementation_activity() methods
- Added to_dict() method for clean serialization

Simplified code across the codebase:
- Reduced JSON serialization from 18 lines to 1 line (94% reduction)
- Reduced implementation detection from 13 lines to 3 lines (77% reduction)
- Improved table formatting using property access
- Fixed test inconsistencies using proper IssueActivity objects
- Removed complex helper code for dict/dataclass handling

Benefits:
- Single source of truth for all IssueActivity operations
- Consistent interface across all usage patterns
- Better encapsulation and maintainability
- Enhanced code readability and reliability
- All tests passing (1329/1329)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-10-05 13:59:33 +02:00
parent bce680e6cb
commit 4121745651
5 changed files with 242 additions and 33 deletions

View File

@@ -132,8 +132,7 @@ class IssueWrapUpService:
)
has_implementation = any(
'implement' in (activity.activity_type.value if activity.activity_type else '').lower() or
'code' in (activity.activity_details or '').lower()
activity.has_implementation_activity()
for activity in activities
)