Skip to content

Added feature to filter on main view (frontend popup + merging functionality with backend function) #8

Open
choksis8168 wants to merge 11 commits intomasterfrom
filtering-frontend
Open

Added feature to filter on main view (frontend popup + merging functionality with backend function) #8
choksis8168 wants to merge 11 commits intomasterfrom
filtering-frontend

Conversation

@choksis8168
Copy link
Collaborator

@choksis8168 choksis8168 commented Apr 28, 2024

Description

This adds a feature to filter on main view. I added a "Filter" button on the side navigation bar which users can press in order to filter each column header by different values which includes entry fields for name and participants and numerical ranges for all count fields. Note that this doesn't include filtering by chat type since this was addressed in #6. This merges backend functionality with the filter_treeview function added in #4. Users can click "Clear filters" in order to get rid of all selections.

Screenshot 2024-04-28 at 2 32 34 PM

Fixes # (issue)
Kubis10#29 (comment)

Type of change

Please delete options that are not relevant.

  • New feature (non-breaking change which adds functionality)
  • This change requires a readme update

How Has This Been Tested?

The filter feature was manually tested.

  • Test A
  1. Load sample data
  2. Click the "Filter" button in the sidebar to open the new popup
  3. Choose a name from one of the rows and enter it into the "Name" entry box (ex: Emily Smith)
  4. Click "Apply Filters"

Result: The data is filtered so only the rows that match the name are selected.

  • Test B
  1. Load sample data
  2. Click the "Filter" button in the sidebar to open the new popup
  3. Choose a subset of participants and enter it into the "Participants" entry box (ex: Emily Smith, John Doe)
  4. Click "Apply Filters"

Result: The data is filtered so only rows where the participants has a subset of the participants entered into the entry box are selected.

  • Test C
  1. Load sample data
  2. Click the "Filter" button in the sidebar to open the new popup
  3. Enter in a min and max value for one of the numerical fields (ex: Number of messages, min is 5, max is 8)
  4. Click "Apply Filters"

Result: The data is filtered so only rows where the number of messages is between min and max are selected.

  • Test D
  1. Load sample data
  2. Click the "Filter" button in the sidebar to open the new popup
  3. Enter in a min and max value for one of the numerical fields and a subset of participants in the participants entry box (ex: Participants: Emily Smith, John Doe. Number of Messages: min: 5 max: 8)
  4. Click "Apply Filters"

Result: The data is filtered so only rows where the number of messages is between the min and max and the participants has a subset of the participants entered into the entry box are selected.

  • Test E
  1. Load sample data
  2. Click the "Filter" button in the sidebar to open the new popup
  3. Click "Apply Filters"
  4. Click "Clear filters"

Result: All selections are removed so all of the rows appear.

Test Configuration:

  • App version: 0.1.8
  • Hardware: Macbook Pro 2020, 2 GHz Quad-Core Intel Core i5 processor, macOS Ventura version 13.5.1

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • My changes generate no new warnings
  • Any dependent changes have been merged and published in downstream modules

Copy link
Collaborator

@cathyxfeiyang cathyxfeiyang left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! make sure to add in your testing though

@choksis8168
Copy link
Collaborator Author

LGTM! make sure to add in your testing though

Yep, I had them in the other PR for the original repo but forgot to transfer them over here, just added !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants