Advice needed for niche workflow that doesn't use TODOs

I need your advice guys because I’ve hit a blocking point atm.

Background info: I don’t use Logseq TODOs because I need some specific workflows and I am using status:: properties instead and specific #status1, #status2, etc (in my language) for the values. I also wanted to have a visual cue in the block title so I am using icons for blank and checked checkboxes like so:

🔳 Task: 
status:: #defacut

I am adding the above block template via a custom command (“<task”) and it would leave the cursor right after the colon in the title so I can start typing right away. When I finish the task I usually double click the unicode icon and use another custom command (“<.”) to replace it with the “checked” one (“:ballot_box_with_check:”). I find this quite intuitive and fast and I got it into a reflex so that I do it without thinking much. But I never change the property status:: to “#finalizat” and I would so much need an automatic way that would replace the status when the checkmark is “found” in the block title…

I know this isn’t some general thing people do but it serves me well and I can query for the “:ballot_box_with_check:” instead of the property but it would be much nicer if I can also update the property and do the query-ing by property value rather than after a symbol. Any ideas how to achieve this?

BTW: i tried from powershell but it doesn’t read unicode characters well …

Sounds like in first place you need a macro to render a checkbox with all the custom functionality.

I imagine there should be a “Listener”-type macro that would “sync” the Status property based on another “customizale” “clue” in the Block Title.

I would imagine having a map/dictionary of corresponding pairs defined in the config.edn, for example:

status: {{ "🔳", "#defacut"} {"☑️", "#finalizat"} {etc}}

I believe this would work for a TODO block as well so that a property Status:: would mirror the status of the TODO string (“TODO”). So when the user starts a block, hits Ctrl+Enter to create a TODO item and goes on with writing the task, the listener would look for a property in the block that is named status:: and would replace it’s value with the corresponding value in the dictionary definition or would add the property .

status { {"TODO","#todo"} {"DOING","#doing"} {"DONE","#done"} }

This workflow of mine is both about “custom todo workflows” as well as about “creating block properties as you type”, both of which I and some others have written on different posts in this forum. Just that now it’s much more obvious to me that I need some sort of a solution to it.

I have a solution which involves post-processing the markdown files and replacing, with REGEX, the status property with the `#finalizat" text whenever the block title has as the first character in the Title the symbol:

☑️

I just find it not ideal to have to do it from VSCodium or even from a script that I run from time to time or even as a scheduled job.