From aa27ec67ca8ee5aa9bddd11274f1eb377e7c53dc Mon Sep 17 00:00:00 2001 From: Chen3018 Date: Tue, 23 Apr 2024 00:02:51 -0400 Subject: [PATCH 01/12] Backend function to filter the rows --- Main.py | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/Main.py b/Main.py index a1f9146..fcf1504 100644 --- a/Main.py +++ b/Main.py @@ -148,6 +148,32 @@ def __init__(self, parent, controller): self.treeview.bind('', lambda event: self.deselect()) self.treeview.bind('', lambda event: self.show_statistics()) + # *Ordered* list of columns (so we can display them in a fixed order) + self.columns = [ + 'name', + 'pep', + 'type', + 'msg', + 'call', + 'photos', + 'gifs', + 'videos', + 'files' + ] + self.column_titles = columns + + # filter columns + self.filter_columns = { + 'name': '', + 'pep': set(), + 'msg': -1, + 'call': -1, + 'photos': -1, + 'gifs': -1, + 'videos': -1, + 'files': -1 + } + # show frame title ttk.Label( self.main, text=f'{self.module.TITLE_NUMBER_OF_MSGS}: ', foreground='#ffffff', background='#232323', @@ -251,6 +277,39 @@ def sort_treeview(self, column, order, bias): # Reverse the order for the next sort self.treeview.heading(column, command=lambda: self.sort_treeview(column, not order, bias)) + def filter_treeview(self): + """ + This function filters out rows based on criterias selected by the user. + Example: Show messages with more than 10 photos, but less than 50. + """ + + # Retrieve all the rows in the treeview + children = self.treeview.get_children('') + + filtered = [] + + for child in children: + # Check if user wants to filter by name + if self.filter_columns['name'] != '': + if child['name'] != self.filter_columns['name']: + filtered.append(child) + + # Check if user wants to filter by participants + if self.filter_columns['pep'] != {}: + # only append if no participants are in the list + if self.filter_columns['pep'].isdisjoint(child['pep']): + filtered.append(child) + + for column_name in ['msg', 'call', 'photos', 'gifs', 'videos', 'files']: + # Check if user wants to filter by messages + if self.filter_columns[column_name] != -1: + min, max = self.filter_columns[column_name] + if min <= child[column_name] <= max: + filtered.append(child) + + # Set the selection to the filtered list + self.treeview.selection_set(filtered) + # invoked on double left click on any treeview listing def show_statistics(self): try: From 260b3bf9c7eeb360ab95d67caf86caabf7ec568d Mon Sep 17 00:00:00 2001 From: cathyxfeiyang <157295142+cathyxfeiyang@users.noreply.github.com> Date: Thu, 25 Apr 2024 16:12:19 -0400 Subject: [PATCH 02/12] Modified Statistics popup to show first five messages --- .DS_Store | Bin 0 -> 8196 bytes Main.py | 64 +- messages/.DS_Store | Bin 0 -> 6148 bytes messages/inbox/.DS_Store | Bin 0 -> 26628 bytes .../message_1.json | 311 + .../message_1.json | 41 + .../message_1.json | 63780 +++++++++++++++ .../message_2.json | 65031 ++++++++++++++++ .../message_3.json | 43957 +++++++++++ .../annienam_1623434734754134/message_1.json | 66 + .../message_1.json | 2991 + .../aprilwu_2219877378172308/message_1.json | 84 + .../message_1.json | 227 + .../message_1.json | 538 + .../message_1.json | 1383 + .../message_1.json | 197 + .../message_1.json | 3944 + .../message_1.json | 49 + .../ellenkahng_969255173699729/message_1.json | 336 + .../message_1.json | 555 + .../message_1.json | 36 + .../heesunpark_355755203125038/message_1.json | 25103 ++++++ .../irismiao_4981432745253378/message_1.json | 623 + .../jaeheekim_1430682014103702/message_1.json | 606 + .../message_1.json | 75 + .../message_1.json | 36 + .../message_1.json | 1416 + .../jennyliao_361739109193314/message_1.json | 1285 + .../jieunlee_1032432274295433/message_1.json | 2952 + .../joanlee_5587882744649083/message_1.json | 114 + .../message_1.json | 49642 ++++++++++++ .../message_1.json | 219 + .../miriekim_5045337562184705/message_1.json | 1225 + .../neos_5181274365302665/message_1.json | 17279 ++++ .../message_1.json | 481 + .../message_1.json | 859 + .../message_1.json | 36 + .../message_1.json | 54 + .../message_1.json | 66 + .../message_1.json | 454 + .../s23bigs_5773365176065628/message_1.json | 6391 ++ .../serenayip_1138510926899009/message_1.json | 36 + .../sophiesong_894728718389747/message_1.json | 1210 + .../ssense_10161029279649243/message_1.json | 30 + .../message_1.json | 3255 + .../susancho_2212738818864933/message_1.json | 509 + .../sydneycha_1145290949539713/message_1.json | 204 + .../message_1.json | 38519 +++++++++ .../message_1.json | 53 + .../message_1.json | 2144 + .../youbincho_4882927471801159/message_1.json | 1168 + 51 files changed, 339628 insertions(+), 6 deletions(-) create mode 100644 .DS_Store create mode 100644 messages/.DS_Store create mode 100644 messages/inbox/.DS_Store create mode 100644 messages/inbox/aliciaandyoonbin_4825455154248414/message_1.json create mode 100644 messages/inbox/aliciashin_1922116797996280/message_1.json create mode 100644 messages/inbox/alphakappakawaiis_7337648689580322/message_1.json create mode 100644 messages/inbox/alphakappakawaiis_7337648689580322/message_2.json create mode 100644 messages/inbox/alphakappakawaiis_7337648689580322/message_3.json create mode 100644 messages/inbox/annienam_1623434734754134/message_1.json create mode 100644 messages/inbox/anticovidregime_5082624108422707/message_1.json create mode 100644 messages/inbox/aprilwu_2219877378172308/message_1.json create mode 100644 messages/inbox/breannayang_1137673266886048/message_1.json create mode 100644 messages/inbox/clairesze_10225091470906788/message_1.json create mode 100644 messages/inbox/claireyoubinaliciaand7others_5161544300568840/message_1.json create mode 100644 messages/inbox/claireyoubinjuneand7others_7674009695973299/message_1.json create mode 100644 messages/inbox/convocation_5216929155039048/message_1.json create mode 100644 messages/inbox/ellareeyaserenaandcarlwell_4825353580882927/message_1.json create mode 100644 messages/inbox/ellenkahng_969255173699729/message_1.json create mode 100644 messages/inbox/faapwebsitedesign_4986741271427508/message_1.json create mode 100644 messages/inbox/fiptreatment_756925063008048/message_1.json create mode 100644 messages/inbox/heesunpark_355755203125038/message_1.json create mode 100644 messages/inbox/irismiao_4981432745253378/message_1.json create mode 100644 messages/inbox/jaeheekim_1430682014103702/message_1.json create mode 100644 messages/inbox/jaimevetterkind_10229616178296109/message_1.json create mode 100644 messages/inbox/jennyandheesun_6212224692163252/message_1.json create mode 100644 messages/inbox/jennyandheesun_7913588102046285/message_1.json create mode 100644 messages/inbox/jennyliao_361739109193314/message_1.json create mode 100644 messages/inbox/jieunlee_1032432274295433/message_1.json create mode 100644 messages/inbox/joanlee_5587882744649083/message_1.json create mode 100644 messages/inbox/kirastellaalphakappas_4118285668274342/message_1.json create mode 100644 messages/inbox/michelleye_1585759175155300/message_1.json create mode 100644 messages/inbox/miriekim_5045337562184705/message_1.json create mode 100644 messages/inbox/neos_5181274365302665/message_1.json create mode 100644 messages/inbox/notfiplaifumpawet1y415kgpittsburgh_24673968082218178/message_1.json create mode 100644 messages/inbox/rachelshin_5303588503082820/message_1.json create mode 100644 messages/inbox/reeyavasishta_1340115699786246/message_1.json create mode 100644 messages/inbox/reneechang_2302131976616341/message_1.json create mode 100644 messages/inbox/richelseikomurata_1628673944258795/message_1.json create mode 100644 messages/inbox/rmpworkshopmakeup_5870611836298554/message_1.json create mode 100644 messages/inbox/s23bigs_5773365176065628/message_1.json create mode 100644 messages/inbox/serenayip_1138510926899009/message_1.json create mode 100644 messages/inbox/sophiesong_894728718389747/message_1.json create mode 100644 messages/inbox/ssense_10161029279649243/message_1.json create mode 100644 messages/inbox/stockpitchcompetition_9080748428602677/message_1.json create mode 100644 messages/inbox/susancho_2212738818864933/message_1.json create mode 100644 messages/inbox/sydneycha_1145290949539713/message_1.json create mode 100644 messages/inbox/turnuptepper_4917706974990777/message_1.json create mode 100644 messages/inbox/wangxiaoxia_462116469155577/message_1.json create mode 100644 messages/inbox/yoonbinkim_1672370563100448/message_1.json create mode 100644 messages/inbox/youbincho_4882927471801159/message_1.json diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5a730501b1042dc51cd283a7224b0a4cd299046c GIT binary patch literal 8196 zcmeHM&1(}u6n~qh&8Ah1UszFLLA{llHbqb`F-??0tW-?nMGBWMb6wx>l znRpmYjG^jN*f@JaB_exHgBp-0w=!if`?Y$AQ+H?tGy)m{jetf#Bk;E%fHRvFbHKST zMs=+b&p;b?0H9HH^MZDQH9##%(~@=t#R!TaL_vk9A+H#Q z5J$fy`O=bh1r_3C$jgTzH5>AVVsP!4-{S0Kqy^QrMnEGFMu6Sjqclkss!~h2zaM#T z1;=WBHd}Q4BKpi1pOf>AA0IEOnnk814ok(rP#V&TA?--745X=c$gz-!%z3a zw6vjTo|?aD$zU$U9=^TN2szZmUzu9eoOAtU=`Y(-n6Hz+c|nU*Ud3|b-OJwbpxvKd zZP=~o3tByhN3l7=F+4!Cbd|D{qXOt9)a-o$JxgfifpCpVJ-)nweL-JFX_z^k^I=7g&4H)`PS0WH6_KGC9}5 z8JH)C@v(dMNK@pe!m*hb{W%nT=?fGfN9WDz2%-i;g-?3Xx ztKG~vjhpN(@B40Xz3mjQRm+`1;?S(`wVbL~Zg7EWsSK7|*Q;L1?_~V8S88%uTMU?S zGhRrHudb$&GZR)Sm0FvyR?kf*C#;#&*|oK}dHCd+3yX#OZq4%_GZ1kc%VV4NiuaA0 z#XIDe66t4O&-ddA#+#_Szarutnk%@jw&GJ_|Gdi#49)exZg{Tmu{bh+;>i6Rc7`mX zp6i$QeAfs@a1=S@AnJAGe;INP)|#V6o!IK!Rz^XHPJM?=-?@V*9eld6^9#|D-3<-v9zRJK{0}|;~xSB{7z6# UG=2VW^IJhdOP~KdlmD&i51}>!Q~&?~ literal 0 HcmV?d00001 diff --git a/Main.py b/Main.py index 604ebae..0206a28 100644 --- a/Main.py +++ b/Main.py @@ -136,7 +136,10 @@ def __init__(self, parent, controller): for keyword, text in columns.items(): self.treeview.heading(keyword, text=text, anchor='center') self.treeview.bind('', lambda event: self.deselect()) - self.treeview.bind('', lambda event: self.show_statistics()) + # I commented out the following line because it was raising errors with selecting a conversation: + # self.treeview.bind('', lambda event: self.show_statistics()) + # sets a conversation to current conversation on + self.treeview.bind('<>', self.set_current_conversation) # show frame title ttk.Label( @@ -187,6 +190,16 @@ def __init__(self, parent, controller): self.nav.pack(side='left', fill='y') self.main.pack(side='right', fill='both', expand=True) + + def set_current_conversation(self, event): + selected = self.treeview.selection() + if selected: + conversation_data = self.treeview.item(selected[0], 'values') + # Assuming the conversation identifier is in the 11th column + self.controller.current_conversation = conversation_data[10].replace('<@!PREFIX>', '') + self.show_statistics() + print(f"Current conversation set to: {self.controller.current_conversation}") + # invoked on