Skip to content

Comments

Add multicolumn sorting samples#276

Merged
mortenlyn merged 3 commits intosummer25-week-29from
269-add-multicolumn-sorting-samples
Jul 17, 2025
Merged

Add multicolumn sorting samples#276
mortenlyn merged 3 commits intosummer25-week-29from
269-add-multicolumn-sorting-samples

Conversation

@mortenlyn
Copy link
Contributor

@mortenlyn mortenlyn commented Jul 16, 2025

Based on this thread:
https://stackoverflow.com/questions/31838533/django-table2-multi-column-sorting-ui/31865765#31865765

Now possible to sort on multiple columns. Dynamic arrows in header based on sorting by ascending or descending.

Can be smart to have no default ordering, i.e., remove all attributes from order_by in the meta field in tables.py methods. Example:

order_by = (
            "-is_prioritised",
            "species",
            "genlab_id",
            "name_as_int",
        )

--> order_by()

Question:
Also add logic to always have prioritized samples on the top?

@mortenlyn mortenlyn self-assigned this Jul 16, 2025
@mortenlyn mortenlyn marked this pull request as ready for review July 17, 2025 09:18
Replace SampleStatusAssignment with boolean fields for marked, plucked, and isolated.

Update other parts of the code which were effected by this change.
@mortenlyn mortenlyn force-pushed the 269-add-multicolumn-sorting-samples branch from a1c5b66 to 2790dfd Compare July 17, 2025 09:19
@mortenlyn mortenlyn requested review from aastabk and omfj July 17, 2025 09:20
@aastabk
Copy link
Contributor

aastabk commented Jul 17, 2025

@mortenlyn mortenlyn merged commit dc9cd86 into summer25-week-29 Jul 17, 2025
8 checks passed
@mortenlyn mortenlyn deleted the 269-add-multicolumn-sorting-samples branch July 17, 2025 10:56
github-merge-queue bot pushed a commit that referenced this pull request Jul 21, 2025
* Only one button for generating genlab id and set as "processing" (#248)

* Add logic to mark order as completed when all samples are isolated (#250)

Updated checkbox-name so that it is connected to the order-id

Co-authored-by: Morten Madsen Lyngstad <morten.lyngstad@bekk.no>

* Add priority to urgent orders table (#251)

* Exclude 'pop_id' and 'location' fields from OrderExtractionSampleTable (#254)

Co-authored-by: Morten Madsen Lyngstad <morten.lyngstad@bekk.no>

* Only genrequest members can mark an order as seen (#252)

* Only genrequest members can mark an order as seen

* Move logic closer to frontend

* Removed unnecessary code, checks buttons everywhere, added check in post.

* Removed prints

* Fixed linter error

* Count isolated samples (#260)

* Assign staff to all orders (#263)

* Changes the buttons to a specified format. Moved buttons to the top. Preparing for filters.

* Use correct delivery date on dashboard (#268)

* Filter for orders and samples. Lab is missing. (#270)

* Run CI on summer25-*

* Download CSV of samples  (#265)

* Update IsolationMethod model to allow non-unique names and optimize queries in SampleLabView

* Add macOS specific files to .gitignore

* Add analysis orders, project, and isolation method fields to SampleCSVSerializer and update CSV export logic

* Add marked, plucked, and isolated fields to SampleCSVSerializer and update SampleViewset for CSV export

---------

Co-authored-by: Morten Madsen Lyngstad <morten.lyngstad@bekk.no>

* Changed to tailwind styling (#273)

* Completed order does not show in my orders and urgent orders (#275)

* Add multicolumn sorting samples (#276)

* Implement custom header rendering for sortable tables and enable multi-column sorting

* Refactor sample status management

Replace SampleStatusAssignment with boolean fields for marked, plucked, and isolated.

Update other parts of the code which were effected by this change.

---------

Co-authored-by: Morten Madsen Lyngstad <morten.lyngstad@bekk.no>

* Change text on dashboard (#280)

* Implement custom header rendering for sortable tables and enable multi-column sorting

* Refactor sample status management

Replace SampleStatusAssignment with boolean fields for marked, plucked, and isolated.

Update other parts of the code which were effected by this change.

* Update titles for new order tables on dashboard

* Add nowrap class to status rendering for better text display

---------

Co-authored-by: Morten Madsen Lyngstad <morten.lyngstad@bekk.no>

* Fix name sorting (#281)

* Patch to sort properly when name is a mix of int and char, as well as only int or char. Generate genlab ID based on other fields (type).

* Order is now only decided by the rows in the table, not a sorting_order value.

* Update src/staff/tables.py

Co-authored-by: Ole Magnus <me@omfj.no>

* Added order.id to lock the db

* added safe "select_for_update()"

* Converted back to list and modified the tests to the current genlab id generation

* Now abe to sort all types of names

---------

Co-authored-by: Ole Magnus <me@omfj.no>

* Genlab ID patch (#271)

* Patch to sort properly when name is a mix of int and char, as well as only int or char. Generate genlab ID based on other fields (type).

* Order is now only decided by the rows in the table, not a sorting_order value.

* Update src/staff/tables.py

Co-authored-by: Ole Magnus <me@omfj.no>

* added safe "select_for_update()"

* Removed prints

---------

Co-authored-by: Ole Magnus <me@omfj.no>

* Sample list does no longer show guid or plate position, but shows location (#290)

* Added filtering on types for extraction order (#287)

* Maked sample statuses constants instead of strings (#289)

Co-authored-by: Morten Madsen Lyngstad <morten.lyngstad@bekk.no>

* Update order-status-logic when converted to draft (#284)

Set 'is_seen' to False  when converted to draft.

Order must be marked as "seen" to be shown in assigned orders (my orders).

Co-authored-by: Morten Madsen Lyngstad <morten.lyngstad@bekk.no>

---------

Co-authored-by: Bertine <112892518+aastabk@users.noreply.github.com>
Co-authored-by: Morten Lyngstad <81157760+mortenlyn@users.noreply.github.com>
Co-authored-by: Morten Madsen Lyngstad <morten.lyngstad@bekk.no>
Co-authored-by: aastabk <aastabk@stud.ntnu.no>
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.

4 participants