1111from typing_extensions import Protocol
1212
1313from ywh2bt .core .api .models .report import (
14+ REPORT_ASK_FOR_FIX_VERIFICATION_STATUS_TRANSLATIONS ,
1415 REPORT_PROPERTY_LABELS ,
1516 REPORT_STATUS_TRANSLATIONS ,
17+ AskForFixverificationStatusLog ,
1618 CloseLog ,
1719 CommentLog ,
1820 CvssUpdateLog ,
2325 Report ,
2426 RewardLog ,
2527 StatusUpdateLog ,
28+ TransferLog ,
2629)
2730
2831
@@ -54,6 +57,8 @@ class ReportMessageFormatter(ABC):
5457 _details_update_log_template : Template
5558 _details_update_log_line_template : Template
5659 _priority_update_log_template : Template
60+ _transfer_log_template : Template
61+ _ask_for_fix_verification_status_log_template : Template
5762 _reward_log_template : Template
5863 _value_transformer : _ValueTransformer
5964
@@ -71,6 +76,8 @@ def __init__(
7176 details_update_log_line_template : Template ,
7277 priority_update_log_template : Template ,
7378 reward_log_template : Template ,
79+ transfer_log_template : Template ,
80+ ask_for_fix_verification_status_log_template : Template ,
7481 value_transformer : Optional [_ValueTransformer ] = None ,
7582 ):
7683 """
@@ -89,6 +96,8 @@ def __init__(
8996 details_update_log_line_template: a template for entries of a DetailsUpdateLog
9097 priority_update_log_template: a template for a PriorityUpdateLog
9198 reward_log_template: a template for a RewardLog
99+ transfer_log_template: a template for a TransferLog
100+ ask_for_fix_verification_status_log_template: a template for a AskForFixVerificationStatusLog
92101 value_transformer: a transformer for values
93102 """
94103 self ._report_title_template = report_title_template
@@ -104,6 +113,8 @@ def __init__(
104113 self ._priority_update_log_template = priority_update_log_template
105114 self ._reward_log_template = reward_log_template
106115 self ._value_transformer = value_transformer or _identity_transformer
116+ self ._transfer_log_template = transfer_log_template
117+ self ._ask_for_fix_verification_status_log_template = ask_for_fix_verification_status_log_template
107118
108119 def _transform_value (
109120 self ,
@@ -300,6 +311,36 @@ def _transform_fix_verified_log(
300311 ),
301312 )
302313
314+ @_transform_log .register
315+ def _transform_transfer_log (
316+ self ,
317+ log : TransferLog ,
318+ ) -> str :
319+ return self ._transfer_log_template .substitute (
320+ old_program = (log .old_program or {}).get ("title" ) or "" ,
321+ program = (log .program or {}).get ("title" ) or "" ,
322+ comment = self .transform_html (
323+ html = log .message_html ,
324+ ),
325+ )
326+
327+ @_transform_log .register
328+ def _transform_ask_for_fix_verification_log (
329+ self ,
330+ log : AskForFixverificationStatusLog ,
331+ ) -> str :
332+ return self ._ask_for_fix_verification_status_log_template .substitute (
333+ old_ask_for_fix_verification_status = self ._translate_ask_for_fix_verification_status (
334+ status = log .old_ask_for_fix_verification_status or "" ,
335+ ),
336+ new_ask_for_fix_verification_status = self ._translate_ask_for_fix_verification_status (
337+ status = log .new_ask_for_fix_verification_status or "" ,
338+ ),
339+ comment = self .transform_html (
340+ html = log .message_html ,
341+ ),
342+ )
343+
303344 @_transform_log .register
304345 def _transform_close_log (
305346 self ,
@@ -323,6 +364,12 @@ def _translate_status(
323364 ) -> str :
324365 return REPORT_STATUS_TRANSLATIONS .get (status , "" )
325366
367+ def _translate_ask_for_fix_verification_status (
368+ self ,
369+ status : str ,
370+ ) -> str :
371+ return REPORT_ASK_FOR_FIX_VERIFICATION_STATUS_TRANSLATIONS .get (status .lower (), "" )
372+
326373 @_transform_log .register
327374 def _transform_details_update_log (
328375 self ,
0 commit comments