# 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`](https://www.testlabiq.com/en/help/test-sequences).

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.

---

Source: https://www.testlabiq.com/en/help/projects
