Projects
What is it?
A project bundles everything that belongs to a test assignment: test sequences, milestones, reports, nonconformances, and the schedule over all of it. It's the top level of planning — sequences and test cases always belong to exactly one project.
A project's status can be set manually or derived automatically. With automatic derivation, it follows the status of the sequences and their test cases: as soon as work is happening anywhere, the project is "in progress"; once all test cases have passed, it's "passed". The status can only be changed on the project detail page (the status cell in the project list is display-only) — setting it manually asks for confirmation that it should no longer be derived automatically.
Like test sequences and test cases, every saved change to a project (including every switch between manual and automatic status) automatically creates a revision — visible in the revision history at the bottom of the detail page, with an optional note and the option to restore an older revision. The revision history only appears once at least one revision exists.
A project or a sequence can't be paused: whatever is currently stuck
stays "In progress" — record the reason as a note on the affected test case.
The flow of test case statuses is described in
testsequenzen.md.
The duration in the table is also derived — it comes from the sequences' schedule, not from a manually maintained date.
How to use it
- Creating a new project: The "+ New project" button opens a side panel with name, description, and customer. The customer section lets you switch between "Existing customer" (pick from the list) and "New customer" — the latter shows the same fields as the customer form right in the side panel; the customer is created together with the project. The "New customer" tab only appears if you have permission to create customers.
- Test report details (ISO/IEC 17025): The project form (create and
"Edit") has its own block with four fields that go into every test report
of the project:
- Test location — only fill in if testing doesn't take place in your own laboratory (e.g. on site at the customer). Empty = laboratory address from the settings.
- Decision rule — how measurement uncertainty is taken into account for pass/fail. "Simple acceptance (measurement uncertainty not considered)" is the default: anything within the limits passes. "Guard band w = U (guarded acceptance per ILAC-G8)": passes only if the reading lies at least the measurement uncertainty U stored on the test case inside the limits; quantities without U are evaluated as with simple acceptance. "Defined by the specification/standard": the rule is part of the standard itself; evaluation is against the limits stated there, as with simple acceptance. The rule applies to all future evaluations; results already evaluated keep the rule they were evaluated with.
- Agreement on the decision rule (optional) — wording of, or reference to, the agreement with the customer, e.g. a quotation number.
- Information provided by the customer (optional) — e.g. sample designation or operating conditions as stated by the customer. The report marks it as customer-supplied and states that the laboratory takes no responsibility for it. The values are shown on the project detail page in the "Test report details" card, are captured in the revision on every project change, and are reset along with it when a revision is restored. Changes are recorded in the audit log with old and new value.
- Customer on the detail page: If a project has a customer assigned, it shows up as a tile right under the title with the customer's name and — if one is set — its logo. Clicking it goes to the customer detail page.
- Project list: The "Projects" page shows a page of 25 projects. The bar at the bottom of the table pages through them; the page number is in the address bar and can therefore be shared or bookmarked.
- Detail panel: On wide screens, clicking a row (outside the name link)
opens a panel next to the table with status, progress, tests done, end
date and the sequences with dates and progress bars — without leaving the
list. "Open project" or the name lead to the detail page, the ✕ closes the
panel. The selection is stored as
?preview=…in the address. On tablets and smartphones a row click still goes straight to the detail page. - Searching: The search field above the table searches name and description. It searches the entire dataset, not just the displayed page. The search is applied as you type and resets the page number.
- Sorting: Clicking the "Name" or "Created" column headers sorts ascending or descending. Status and duration cannot be sorted: both values are derived and don't exist as a field in the database.
- Duplicating: The action menu at the end of the row ("Duplicate") creates a copy of the project — with description, milestones, and all test sequences including their test cases, station assignments, and dependencies. The copy starts completely reset: status "Pending", no test runs, results, measurements, photos, or nonconformances — it's a new, empty test run with the same structure, not an archive of the old state. Reports, customer portal links, and the revision history are not copied. Test location and decision rule (including the agreement) are copied; the information provided by the customer is not — it belongs to that specific order.
- Archiving: Completed projects move to the archive via the action menu at the end of the row. The "Archived" tab still shows them, but they no longer appear in the summary, "My tasks", or the schedule. Archiving deletes nothing — it only tidies up the working view.
- Summary: The line under the title ("N projects · N active · N completed") counts all active projects, not just the displayed page. The same applies to the numbers in the tabs.
- Schedule: Below the table, "Schedule" expands a bar chart across all projects. It shows the projects on the current page and says so once there's more than one page. Reason: dates are calculated from the sequences' dependency graph, which requires the full sequence tree to be loaded — and that's deliberately only loaded for one page. For a look at a single project, the project detail page is the right place; the full schedule is there.
Common issues
"I don't see my project in the list." Three possible causes, check in this order: (1) The search field still has a term in it — clear it. (2) The project is archived — check the "Archived" tab. (3) The list is on a different page — use search instead of paging through, it covers the entire dataset.
"The schedule doesn't show all projects." That's intentional. It shows the projects on the current page; a note above the chart states the page number and total pages. Use the bar under the table to page through — the schedule follows.
"The number in the summary doesn't match the rows in the table." The summary counts the entire dataset, the table shows 25 rows. Once you search, the table additionally shows only the matches, while the summary still counts all active projects unchanged.
"The status doesn't match what I set." Then the project is on automatic status derivation. On the project detail page you can toggle between automatic and manual; in "automatic" mode, the status follows the sequences and can't be set directly.
"I can't change the status from the project list." That's intentional — the status cell in the table is display-only. The status can only be changed on the project detail page, with a confirmation when setting it manually.
"I can't sort by status or duration." Correct — both are derived and don't exist as a sortable field. Name and creation date are sortable. To filter by status, use "My tasks" (tabs for open, failed, recently completed).
"Search doesn't find a project even though the term appears in it." Search only covers name and description — not sequence or test case names. For search across all object types, use the command palette (Ctrl+K or ⌘K).
"After changing the decision rule, old results didn't change." That's intentional. Each result keeps the rule it was evaluated with. To evaluate a test step under the new rule, save the execution again via "Adjust results" or run "Evaluate from measurements" again.