---
title: "Planning"
description: "Skift och resurser. Varje app är en modul i en gemensam datamodell."
canonical: "https://obop-platform.sliplane.app/sv/apps/planning/"
lang: "sv"
---

# Planning

## Vad den är till för

Plan shifts for employees from reusable templates. A shift with nobody assigned is an open shift; the workflow runs from open through published to confirmed by the employee.

## Vad paketet gör och inte gör

Shifts for employees, with roles and reusable templates. A shift has a day and a start and end in minutes since midnight (0 to 1439; 540 is 09:00). A shift with no employee is an open shift. Workflow: open, published, confirmed by the employee. Needs the Human Resources package.

## Modeller

### `planning_role`

A role a shift is planned for, for example cashier or electrician

Läsgrupp: `planning.user`. Skrivgrupp: `planning.manager`.

| Fält | Typ | Dataklass | Personuppgift | Grupp | Agenter ser | Beskrivning |
|---|---|---|---|---|---|---|
| `name` | text | `none` | nej | `planning.user` | i klartext | Role name |
| `note` | longtext | `none` | nej | `planning.user` | i klartext | What the role involves |

### `planning_template`

A reusable shift pattern to copy into shifts

Läsgrupp: `planning.user`. Skrivgrupp: `planning.manager`.

| Fält | Typ | Dataklass | Personuppgift | Grupp | Agenter ser | Beskrivning |
|---|---|---|---|---|---|---|
| `name` | text | `none` | nej | `planning.user` | i klartext | Template name, for example Morning shift |
| `role_id` | ref → planning_role | `none` | nej | `planning.user` | i klartext | The role the template is for |
| `start_minute` | number | `none` | nej | `planning.user` | i klartext | Start in minutes since midnight (540 is 09:00) |
| `end_minute` | number | `none` | nej | `planning.user` | i klartext | End in minutes since midnight (1020 is 17:00) |

### `planning_shift`

A slot of work on one day for one role, optionally assigned to an employee

Läsgrupp: `planning.user`. Skrivgrupp: `planning.manager`.

| Fält | Typ | Dataklass | Personuppgift | Grupp | Agenter ser | Beskrivning |
|---|---|---|---|---|---|---|
| `name` | text | `none` | nej | `planning.user` | i klartext | Short title, for example Opening shift |
| `role_id` | ref → planning_role | `none` | nej | `planning.user` | i klartext | The role needed |
| `employee_id` | ref → hr_employee | `internal` | ja | `planning.user` | maskerad | Employee the shift is assigned to; empty for an open shift |
| `work_date` | date | `none` | nej | `planning.user` | i klartext | Day of the shift (YYYY-MM-DD) |
| `start_minute` | number | `none` | nej | `planning.user` | i klartext | Start in minutes since midnight, 0 to 1439 (540 is 09:00) |
| `end_minute` | number | `none` | nej | `planning.user` | i klartext | End in minutes since midnight, 0 to 1439 (1020 is 17:00) |
| `note` | longtext | `none` | nej | `planning.user` | i klartext | Instructions for whoever works the shift |
| `state` | select (open, published, confirmed) | `none` | nej | `planning.user` | i klartext | Shift status: open, published, confirmed |

## Arbetsflöden

### `planning_shift`

| Åtgärd | Flyttar | Vem får köra den | Godkännande |
|---|---|---|---|
| `planning_shift.publish` | state: open → published | `planning.manager` | nej |
| `planning_shift.unpublish` | state: published → open | `planning.manager` | nej |
| `planning_shift.confirm` | state: published → confirmed | `planning.manager` | nej |

## Behörighetsgrupper

Grupper som den här appen använder:

- `planning.manager`
- `planning.user`

## Steg som kräver godkännande

Inget steg i den här appen kräver godkännande, förutom att ta bort poster.

## Vad agenter kan och inte kan göra

En agent kan läsa, söka, skapa och uppdatera poster i den här appen, och köra de åtgärder som inte kräver godkännande, inom behörighetsgrupperna för sin token.

Den kan bara föreslå de här stegen, och en person måste godkänna dem: `planning_role.delete`, `planning_template.delete`, `planning_shift.delete`.

Personuppgifter maskeras som platshållare: `planning_shift.employee_id`.

## Beroenden

- `hr`

## Installera

Installera den från appen Customize (Marknadsplats), eller från kommandoraden:

```bash
obop modules install-from planning
```

Kräver en databas och administratörsbehörighet.

## Bygg din egen

[Modulguiden visar hur appar som den här skrivs](/sv/docs/reference/module-manifest/)
