Skip to content

Conversation

@StephenHulme
Copy link
Contributor

@StephenHulme StephenHulme commented Jan 23, 2026

Contributes towards closing #5481

Changes proposed in this pull request

  • Add accession status feedback to sample manifest pages
  • Improve the sample manifest page UI
  • Columnise barcodes list

Screenshots

Before:

Screenshot 2026-01-23 at 16 03 58 Screenshot 2026-01-23 at 16 04 16

After:

Screenshot 2026-01-23 at 16 02 40 Screenshot 2026-01-23 at 16 02 10

Instructions for Reviewers

[All PRs] - Confirm PR template filled
[Feature Branches] - Review code
[Production Merges to main]
    - Check story numbers included
    - Check for debug code
    - Check version

@StephenHulme StephenHulme self-assigned this Jan 26, 2026
@StephenHulme StephenHulme added UX Improves user experience Accessioning Epic in technical roadmap June 2025, relating to improving the accessioning code. labels Jan 26, 2026
@codecov
Copy link

codecov bot commented Jan 26, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 87.39%. Comparing base (ba26168) to head (69da0d5).
⚠️ Report is 14 commits behind head on develop.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #5492      +/-   ##
===========================================
- Coverage    87.40%   87.39%   -0.01%     
===========================================
  Files         1457     1457              
  Lines        32703    32705       +2     
  Branches      3422     3423       +1     
===========================================
  Hits         28584    28584              
- Misses        4104     4106       +2     
  Partials        15       15              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Member

@andrewsparkes andrewsparkes left a comment

Choose a reason for hiding this comment

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

Looks good.
I'm confused about when sample generation happens is all.


<% if samples.size == 0 %>
<div class="help">
Samples will be generated on upload.
Copy link
Member

Choose a reason for hiding this comment

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

I'm getting confused again. Was this just wrong? Samples are generated when you generate the manifest right? It's the sample metadata that gets filled in at upload?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I don't fully understand the inner workings here, but looking at an existing BIOSCAN sample manifest that hasn't been uploaded, I can see plate barcodes, but no linked samples:
https://training.sequencescape.psd.sanger.ac.uk/labware/27653432

</tr>
</thead>
<tbody>
<% samples.each do |sample| %>
Copy link
Member

Choose a reason for hiding this comment

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

how well does this perform if there are many samples in a manifest (thousands)? It has pagination right? I see a comment on line 65

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I haven't tested with thousands, only up to 200 - but closer inspection reveals that pagination only kicks in at 500. I'll test again to confirm...
Thanks for asking!

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Pagination supported from 500 records, small changes made in 975dcce and confirmed working

Image


<%= panel_no_body :info, title:'Samples' do %>
<% if @samples.empty? %>
<%= tag.div(class: 'p-3') { "Samples will be generated on upload" } %>
Copy link
Member

Choose a reason for hiding this comment

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

See comment above.
So is it we reserve sample ids at manifest creation somehow but don't create the sample records?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I only see barcodes reserved prior to a manifest being uploaded?

So is it we reserve sample ids at manifest creation somehow but don't create the sample records?

I agree, this seems like a strange scenario... more investigation required maybe?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Ah, the magic here appears to be a SampleManifestAsset:

# Keeps track of sanger_sample_ids which have been allocated to a {SampleManifest}
# and associates them with the corresponding {Receptacle}
class SampleManifestAsset < ApplicationRecord

Copy link
Member

@andrewsparkes andrewsparkes left a comment

Choose a reason for hiding this comment

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

Looks good

@StephenHulme StephenHulme merged commit 8851d11 into develop Jan 29, 2026
28 checks passed
@StephenHulme StephenHulme deleted the y25-021-add-accession-feedback-to-sample-manifests branch January 29, 2026 09:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Accessioning Epic in technical roadmap June 2025, relating to improving the accessioning code. UX Improves user experience

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants