> ## Documentation Index
> Fetch the complete documentation index at: https://learn.nextedy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Project Swimlanes

> Group work items by project on your Nextedy PLANNINGBOARD to plan and track work across multiple Polarion projects in a single board view.

## Overview

The **Project** swimlane assignment type creates one horizontal row per sub-project in the current project group. Each row shows the work items belonging to that project, letting you compare workload, allocate tasks across projects, and drag cards between projects without switching contexts.

<Frame>
  <img src="https://mintcdn.com/none-17b4493f/zUlmOSLBIQ0HyaAX/planningboard/diagrams/guides/swimlanes/project-swimlanes/diagram-1.svg?fit=max&auto=format&n=zUlmOSLBIQ0HyaAX&q=85&s=9f71c948c7342ba38ca3c72fd240413e" alt="Planningboard board grid with Project A, B, and C swimlane rows and Sprint 1, 2, 3 Plan columns, showing work item cards distributed across the project rows" width="680" height="250" data-path="planningboard/diagrams/guides/swimlanes/project-swimlanes/diagram-1.svg" />
</Frame>

<Note>
  Only sub-projects that the current user can read are included. The current project itself is excluded from the swimlane list; only its sub-projects appear as rows.
</Note>

***

## Prerequisites

* A Polarion project group with at least two readable sub-projects.
* A Planningboard widget already embedded on a LiveDoc or Wiki page.
* Widget edit permissions for your Polarion account.

***

<Steps>
  <Step title="Open Widget Parameters">
    1. Navigate to the LiveDoc or Wiki page containing your Planningboard widget.
    2. Expand the widget toolbar and click the **Edit** (pencil) icon to open the widget configuration panel.

    ***
  </Step>

  <Step title="Set the Assignment Type to Project">
    1. In the configuration panel, select **Swimlanes (Rows)**.
    2. Open the **Assignment Type** dropdown.
    3. Select **Project**.

    <Frame>
      <img src="https://mintcdn.com/none-17b4493f/f2B5Oj-k4j8GirhH/planningboard/assets/images/article-swimlane-assignment-types-https--9973e33c.png?fit=max&auto=format&n=f2B5Oj-k4j8GirhH&q=85&s=5637dd399c8f563aeae807e7bdc0965e" alt="Swimlane assignment type dropdown showing Project option" width="918" height="686" data-path="planningboard/assets/images/article-swimlane-assignment-types-https--9973e33c.png" />
    </Frame>

    ***
  </Step>

  <Step title="Configure Optional Fields">
    The Project assignment type exposes one optional field:

    | Field           | Required | Description                                                                                                                                                   |
    | --------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | **Report Link** | No       | URL template for a project-specific report. The link appears next to the swimlane header, giving viewers quick access to detailed reporting for that project. |

    Fill in **Report Link** if your team uses per-project reports and you want one-click access from the board row header.

    ***
  </Step>

  <Step title="Save and Verify">
    1. Click **Save** (or **Apply**) in the widget configuration panel.
    2. The Planningboard reloads. You should now see one swimlane row per readable sub-project in the group.
    3. Verify that the expected projects appear and that cards are distributed correctly across rows.

    <Tip>
      If a sub-project row is missing, confirm that your Polarion user account has read access to that project. Projects the current user cannot read are silently excluded — there is no empty row placeholder for them.
    </Tip>

    ***
  </Step>

  <Step title="Drag Cards Between Projects">
    With project swimlanes active, dragging a card from one row to another **reassigns the work item to the target project**. This is a data change — the work item's project field is updated in Polarion.

    <Warning>
      Dragging a card to a different project swimlane moves that work item into the target project. This operation is immediate and persists to Polarion. Verify that the work item type and required fields exist in the target project before dragging, otherwise the assignment may fail silently or produce validation errors.
    </Warning>

    ***
  </Step>
</Steps>

## Controlling Which Swimlanes Appear

### Show or hide empty swimlanes

By default, swimlanes with no work items may still appear depending on the `showEmptySwimlanes` configuration. To show all sub-projects regardless of whether they have cards in the visible Plans, confirm the `showEmptySwimlanes` property is set to `true` in your widget configuration. Set it to `false` to hide projects that have no items in the currently visible Plan columns.

### Swimlane sort order

Use the `swimlaneSort` property to control the vertical order of project rows. The default value is `alphabetical`. {/* TODO: verify against the live product — confirm whether additional sort values (e.g. manual/custom) are supported for the Project assignment type */}

### Collapsing individual rows

Project swimlanes are collapsible by default (`collapsibleSwimlanes = true`). Click the row header to collapse a project's swimlane and reduce visual noise when focusing on other projects. Click again to expand.

***

## Configuration Example

The following widget parameter snippet enables project-based swimlanes with a report link template:

```properties theme={null}
assignmentMode = PROJECT
```

If you use the optional report link:

```properties theme={null}
assignmentMode = PROJECT
# reportLink = https://polarion.example.com/reports/project-summary?projectId=${project.id}
```

<Warning>
  Widget parameter names are whitespace-sensitive. Ensure there are no leading or trailing spaces around property names or their values, or the configuration may not be applied correctly.
</Warning>

***

## Common Pitfalls

<Warning title="Sub-projects not appearing">
  If a project you expect is missing from the swimlanes, check two things:

  1. **Read permission** — the current user must have read access to the sub-project. The Project swimlane type silently excludes inaccessible projects.
  2. **Project group structure** — the Planningboard must be embedded in a parent project group. If it is embedded in a standalone project (not a group), there are no sub-projects to display and the swimlane list will be empty.
</Warning>

<Warning title="Current project is not shown">
  The project the Planningboard widget is embedded in is intentionally excluded from the swimlane rows. Only its sub-projects appear. This is expected behavior.
</Warning>

<Tip title="Combining project swimlanes with a Plan query">
  You can narrow which Plans (columns) appear on the board independently of the swimlane assignment type. Use the **Plans** section of the widget configuration to set a `plansQuery` — for example, filtering by date range or plan name — while keeping **Project** as the swimlane assignment type. The two settings are orthogonal.
</Tip>

***

## Verification

After saving, you should see:

* One swimlane row per readable sub-project in the project group.
* Work item cards placed in their respective project rows.
* The swimlane header showing the sub-project name (and a report link icon if configured).
* Drag-and-drop between rows moving cards to the target project.

If rows are missing or cards appear in the wrong row, review the read-permission and project-group-structure checks above.

***

## See also

* [Configure Swimlanes (Rows)](/planningboard/guides/configuration/swimlanes-configuration) — full reference for all swimlane parameters
* [User and Assignee Swimlanes](/planningboard/guides/swimlanes/user-swimlanes) — group rows by individual team members
* [Enumeration Field Swimlanes](/planningboard/guides/swimlanes/enum-swimlanes) — group rows by a custom enum field
* [Parent Item Swimlanes](/planningboard/guides/swimlanes/parent-item-swimlanes) — group rows by parent work item
* [Filter Swimlanes by Plan Range](/planningboard/guides/swimlanes/filtering-by-plan-range) — hide swimlanes outside the active Plan window
* [Cross-Project Planning](/planningboard/guides/planning/cross-project-planning) — broader cross-project planning workflows

<Accordion title="Sources">
  **KB Articles**

  * Swimlane Assignment Types
  * Filter user swimlanes by Plan range
  * Sorting of Swimlanes (Parent Item Assignment Type)

  **Support Tickets**

  * [#5760](https://support.nextedy.com/helpdesk/tickets/5760)
  * [#5922](https://support.nextedy.com/helpdesk/tickets/5922)
  * [#6681](https://support.nextedy.com/helpdesk/tickets/6681)

  **Source Code**

  * `filterMultiSwimlaneRows.cy.ts`
  * `PlanningBoardWidgetRenderer.java`
  * `licenseReadonly.cy.ts`
  * `Config.java`
  * `PlanningBoardWidget.java`
</Accordion>
