GSoc/2023/StatusReports/RishiKumar: Difference between revisions

From KDE Community Wiki
(Blanked the page)
Tag: Blanking
 
(19 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Adding moderation tool in Tokodon  ==


This project aims to enhance the functionality of Tokodon by integrating moderation tools which will allow moderators and administrators of Mastodon instances to efficiently manage their communities through the easy-to-use interface of Tokodon. This project aims to provide Mastodon instance owners with a comprehensive suite of admin tools, making Tokodon a more versatile and usable tool for the fediverse moderators.
== Mentor ==
Carl Schwan
== Merge Request ==
* [https://invent.kde.org/network/tokodon/-/merge_requests/295 Add Federation Tool].
* [https://invent.kde.org/network/tokodon/-/merge_requests/277 Add Report Moderation Tool].
* [https://invent.kde.org/network/tokodon/-/merge_requests/280 Implement correct logic for Last Used Value  ].
* [https://invent.kde.org/network/tokodon/-/merge_requests/256 Add Account Moderation Tool ].
* [https://invent.kde.org/network/tokodon/-/merge_requests/227 Display moderation tool icon when account with admin permissions logs in ].
== Blog Posts ==
* [https://k3yss.github.io/posts/gsoc_blog1/ Google Summer of Code Introductory Blog #1]
* [https://k3yss.github.io/posts/gsoc_blog2/ GSoC-23 Community Bonding Period Blog #2]
* [https://k3yss.github.io/posts/gsoc_blog3/ GSoC-23 Week 1-2 | Adding Account Moderation Tool #3]
* [https://k3yss.github.io/posts/gsoc_blog4/ GSoC-23 Week 3-4 | Finalizing Account Moderation tool & Adding Report Moderation Tool #4]
== Timeline ==
=== Week 1 and Week 2 ===
The first task I worked on was implementing the account moderation tool. This tool enables moderators/admins of an instance to view all the accounts available on the server and take action against them.
Initially, when attempting to receive raw ''JSON'' data from the ''/api/v1/admin/accounts'' endpoint, I encountered a ''403'' error response. Upon spending some time debugging my code I couldn’t determine what I was doing wrong and so I finally resorted to asking for help in the Tokodon matrix chat, where redstrate❣️ helped me identify that we didn’t have the necessary scope set in Tokodon to access admin endpoints.
[[File:AccountToolInitialPage.png|thumb|alt=An image showing User Interface of Tokodon’s Account Moderation Tool|Images showing implemented Account Moderation tool]]
I decided to implement a ''QAbstractListModel'' to expose all the data and required properties in the ''QML'' UI. With this in mind, I created a new class ''AccountsToolModel'' that inherited from ''QAbstractListModel''. For making all the filter options functional I created ''QProperty'' instances with the necessary ''READ'', ''WRITE'' and ''NOTIFY'' methods.
To display the admin-related information for an account, I parsed the received JSON data and created a new method AbstractAccount::adminIdentityLookup which will populate QProperty instances of AdminAccountInfo to store all the required information for the moderation tool. Once all the cpp backend was ready, I started with the qml implementation, figuring out the best way in which the data can be presented.
Once the UI was implemented, I encountered an issue with pagination not functioning correctly. After debugging the issue, I discovered that when requesting a response for the next page using the v2 endpoint, the response received was actually v1. This discrepancy messed up the query parameters and rendered pagination impossible. To address this issue, I implemented a simple code block: url = url.toString().replace("/v1/", "/v2/");. This replacement fixed the problem and allowed proper pagination to occur.
=== Week 3 and Week 4 ===
In my previous blog post, I mentioned that I had worked on implementing the initial page of the Account Moderation Tool in the first two weeks. This week, I began implementing the MainAccountToolPage.qml which serves as the main page of the tool where moderators can view admin-level details and take actions against an account.
=== Week 5 and Week 6 ===
=== Week 7 and Week 8 ===
=== Week 9 and Week 10 ===
=== Week 11 and Week 12 ===
== Contact ==
I am on Matrix as @k3ys:matrix.org.

Latest revision as of 20:01, 25 August 2023