From 814c6b2d26eec3d07b19b41a649d19376808bc3c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sven=20M=C3=A4der?= <maeder@phys.ethz.ch>
Date: Fri, 14 Feb 2020 13:51:39 +0100
Subject: [PATCH] Add cmd unsolved

---
 rt.py | 21 +++++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

diff --git a/rt.py b/rt.py
index def1b10..1dc3312 100755
--- a/rt.py
+++ b/rt.py
@@ -320,8 +320,8 @@ class RT(Plugin):
             f'<a href="https://matrix.to/#/{target_mxid}">{target_mxid}</a> 😜')
         await evt.respond(content)
 
-    @rt.subcommand('unowned', aliases=('u', 'un'), help='List all unowned open tickets.')
-    async def unowned(self, evt: MessageEvent) -> None:
+    @rt.subcommand('new', aliases=('n', 'new'), help='List all unowned new/open tickets.')
+    async def new(self, evt: MessageEvent) -> None:
         if not self.can_manage(evt):
             return
         await evt.mark_read()
@@ -349,3 +349,20 @@ class RT(Plugin):
             formatted_body=f'Open tickets for <a href="https://matrix.to/#/{evt.sender}">'
             f'{evt.sender}</a>:<br/>{fbody}')
         await evt.respond(content)
+
+    @rt.subcommand('unsolved', aliases=('u', 'un'), help='List all open tickets.')
+    async def unsolved(self, evt: MessageEvent) -> None:
+        if not self.can_manage(evt):
+            return
+        await evt.mark_read()
+        displayname = await self._displayname(evt.room_id, evt.sender)
+        params = {'query': f'Status = "new" OR Status = "open"'}
+        tickets_dict = await self._search(params)
+        body = '\n'.join([f'{k}: {v}' for k, v in tickets_dict.items()])
+        fbody = '<br/>'.join([f'<code>{k}</code>: {v}' for k, v in tickets_dict.items()])
+        content = TextMessageEventContent(
+            msgtype=MessageType.NOTICE, format=Format.HTML,
+            body=f'Open tickets for {displayname}:\n{body}',
+            formatted_body=f'Open tickets for <a href="https://matrix.to/#/{evt.sender}">'
+            f'{evt.sender}</a>:<br/>{fbody}')
+        await evt.respond(content)
-- 
GitLab