Skip to main content

Work the member directory

The directory is the module's front door. It has a table view and four alternative list views, all reading the same paged list underneath.

Type in the box. The term is committed after 300 ms of no typing, or immediately on Enter.

The box says "or member ID" and does not search one

The placeholder reads "Search by name or member ID…". PTRS matches the lowercased term against a child's first name or last name only.

A member's organisation-assigned id is returned in the response and never searched, and nothing in PTRS writes that field anyway, so it is blank on every child.

Search matches part of either name, case-insensitive, one at a time. Searching "smith j" finds nobody; search one name at a time.

Filters

Three drop-downs, all on the table view only. Each is saved to the page's address, so a filtered view can be bookmarked and shared.

FilterValuesBehaviour
StatusThe nine statuses the page listsChecked against the values PTRS recognises; an unknown value is ignored rather than refused
GradePre-K, K, 1st, up to 12thMatched against the stored value exactly
Age5 to 8, 9 to 11, 12 to 14, 15 to 18Converted to a date-of-birth range on PTRS's side. The arithmetic is correct

Active filters appear as removable chips under the bar. Clear All resets everything including the search term.

The Grade filter misses children added through Quick Member Entry

The filter looks for "3rd". Quick Member Entry stores a bare "3". The comparison is exact, so those children are invisible under any grade filter.

The registration wizard and the edit sheet use the filter's own vocabulary, so records created or corrected there do match. If a child is missing from a grade filter, open their record and check what the Grade field actually contains.

The status list leaves out "Deceased", the tenth status PTRS recognises. A child in that state, which nothing in the interface can set, appears only under All Statuses.

Sorting

Click a column header to sort; click again to reverse. Five headers are clickable and two of them actually work.

HeaderSendsPTRS handles it asResult
Namenamelast nameSorts by last name, which is what you wanted
Ageagelast nameSorts by last name
Gradegradelast nameSorts by last name
Statusstatuslast nameSorts by last name
Enrolledenrolment dateenrolment dateWorks

PTRS handles first name, date of birth and enrolment date by name, and falls back to last name for everything else. The arrow indicator moves to whichever header you clicked, so Age, Grade and Status look sorted and are not.

First name and date of birth are supported by PTRS and no header sends either.

Paging

25, 50 or 100 per page, chosen at the bottom right. Both the page and the size are saved to the page's address. The count beside the Members heading is PTRS's total for the current filter, not the number of rows on screen.

The four alternative views

The tab bar under the heading switches between five views. All five share the search box; only the default table view has the status, grade and age filters.

ViewShowsReads
All MembersThe sortable tableThe paged search
GuardiansOne row per child with their guardiansThe paged list, then one extra reading per row
Emergency ContactsOne row per child with their contactsThe paged list, then one extra reading per row
DemographicsGender, ethnicity, grade and age spreadThe paged list only
Enrollment StatusStatus and enrolment date per childThe paged list only
Two of the views make one request per row

Guardians and Emergency Contacts each fan out into one extra reading per child on the page.

At the default page size that is 26 readings to render one screen, and at 100 per page it is 101. There is no single reading that returns every child's guardians or contacts together. Expect these two views to be slow and to stay slow; use a smaller page size.

Export and print

Quick Actions → Export as CSV downloads the rows currently loaded, the current page, not the whole filtered set. Selecting rows with the checkboxes and using Export CSV in the bulk bar exports only the selected ones.

Quick Actions → Print Member List and the bulk bar's Print both print the current page as shown.

The exported list is built from what is already on screen, so it carries name, date of birth, grade, status, school, enrolment date and last visit, and no medical or contact detail.

The QR badge

The QR icon on a child's row links to her record; the badge itself is on her own page.

  1. Open the child's record.
  2. Press Generate QR in the header.
  3. The badge renders at wallet-card size, 2.125 by 3.375 inches, the standard ID-card format.
  4. Download exports a picture at print resolution.

The code encodes the child's record id. The badge also shows her initials or photo, age, grade, location and any allergies or medical alerts from her record.

Two figures printed on the badge are not data

"Expires" is worked out in the browser as 30 June of next year. It is a fixed formula, not a stored value: nothing in PTRS records or enforces a badge expiry, and every badge printed in a given calendar year carries the same date.

The ID printed under the name is the last eight characters of the child's internal record id, in capitals. The dialog will use her organisation- assigned id when she has one, and nothing in PTRS ever writes that field.

A working, PTRS-rendered version of the same code exists, and nothing calls it. The browser generates its own instead.

What the columns mean

ColumnSource
AgeCalculated in the browser from the date of birth. A dash when the date is missing
GradeThe stored free-text value, verbatim
StatusThe child's status, colour-coded
SchoolThe stored school name
EnrolledThe enrolment date, shown as month and year
Last VisitThe most recent check-in, as a relative time. A dash when there is none

Last Visit looks up attendance for each row individually and is the one column that reaches outside this module.

Every child's name is sent to an external avatar service

Where a child has no photo on file, which is every child, since nothing writes that field, the avatar falls back to an outside image service, with the child's full name written into the request.

That is one outbound request per row, per render, to a service outside the organisation, carrying a child's name. It happens on the desktop table and on the mobile card list.

What a permission failure looks like here

The navigation shows all six Members entries to every signed-in user and checks no role. The page checks none either, and the list reading does not check for a refusal.

RoleWhat they see
Staff member, site director, organisation administrator, super adminThe directory, working
Regional director"No members found.", above a working-looking Register New Member button that PTRS refuses on submit
Read-only account"No members found.", without the buttons
Guardian, OCCL auditorThe same empty list

If the directory is empty and you know there are members, check your role before checking your filters.

Where to go next

Checked against PTRS on 7 September 2026.