# Zgłoszenia, foldery, statusy i tagi w Todomatorze

> Model danych Todomatora: co zawiera zgłoszenie, sześć statusów, kto może zobaczyć zgłoszenie, foldery dla klientów i projektów, tagi, komentarze, powiązania i załączniki.

Framework: todomator
Product: Todomator (todomator@1.7)
Language: pl
Content-SHA256: 71ef9322012b547fa0f08617ec39fb968ac5c31b92d2e36f01771b2448b2313e
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: 
Review: not-recorded

Centrum Todomatora to **zgłoszenie** (tabela `tbl_ticket`, schemat `Tickets` w `schemas/tickets.js`). Wszystko inne organizuje zgłoszenia lub od nich zależy.

## Co zawiera zgłoszenie

| Pole | Znaczenie |
|---|---|
| `name` | tytuł (wymagany) |
| `statusid` | status; nowe zgłoszenie jest `pending`, o ile nie powiesz inaczej |
| `folderid` | folder (klient lub projekt), do którego należy |
| `ownerid`, `userid`, `watcherid` | autor, przypisane osoby i osoby, które tylko je śledzą |
| `ispublic` | widoczne dla wszystkich; zgłoszenie publiczne nie ma przypisanych osób |
| `ispriority`, `isbillable` | znacznik priorytetu i flaga rozliczalności |
| `markdown`, `html` | treść (interfejs używa Markdown) |
| `tags` | lista tagów |
| `date`, `deadline` | dzień zgłoszenia (domyślnie dziś) i opcjonalny termin |
| `estimate`, `worked` | szacunek i już przepracowane minuty ([śledzenie czasu](/en/todomator/time-tracking/)) |
| `reference`, `source` | dowolny tekst łączący zgłoszenie z czymś zewnętrznym |
| `parentid` | zgłoszenie nadrzędne, dla podzadań |
| `attachments` | pliki zgłoszenia |
| `attrs` | dowolne dane JSON |
| `callback` | adres, który otrzymuje zgłoszenie, gdy się zmienia ([API](/en/todomator/create-tickets-with-the-api/)) |

## Sześć statusów

Tabela `cl_status` jest tworzona z: `pending` (Pending), `open` (In progress), `review` (Review), `postponed` (Postponed), `note` (Note) i `closed` (Closed). Nazwy są tłumaczone na język użytkownika.

## Kto może zobaczyć zgłoszenie

Zgłoszenie jest widoczne dla swojego właściciela, osób w `userid`, osób w `watcherid` i dla wszystkich, gdy ustawiono `ispublic`. Lista folderów widocznych dla użytkownika jest ograniczona w ten sam sposób: folder pojawia się tylko wtedy, gdy użytkownik widzi w nim zgłoszenie (użytkownicy z `sa` widzą wszystkie). Lista zgłoszeń przyjmuje `type` (na przykład `pending`, `postponed`, `review`, `assigned`, `note`, `unread` lub `all`), `q` (wyszukiwanie), `folderid`, `date`, `skip` i `limit` (domyślnie 10).

## Foldery i tagi

**Folder** ma nazwę, ikonę, kolor, klienta, e-mail i telefon oraz flagi: `isbillable` (nowe zgłoszenia ją dziedziczą), `isprivate`, `ispinned`, `isarchived` i `isdisabled`. Folderami zarządzają tylko osoby z uprawnieniem `admin` (lub administratorzy). **Tag** ma nazwę, kolor i ikonę i może należeć do folderu.

## Wokół zgłoszenia

- **Komentarze** (`Comments|create`, `Comments|update`, `Comments|remove`): tekst Markdown dołączony do zgłoszenia.
- **Znaczniki nieprzeczytanych i zakładki**: każdy użytkownik ma własny stan nieprzeczytania i zakładki dla zgłoszenia.
- **Powiązania** między zgłoszeniami i **klonowanie** zgłoszenia.
- **Historia i logi** zmian zgłoszenia.
- **Załączniki**: `POST /upload/` przyjmuje do 5 MB na żądanie. Adres pliku jest podpisany (`/download/<id>-<signature>.<ext>`): obrazy, wideo i PDF otwierają się w przeglądarce, a pozostałe typy są pobierane.
- **Aktualizacje na żywo**: WebSocket wysyła zdarzenie `refresh` tylko do osób, które widzą zgłoszenie, i informuje pozostałych, kto właśnie ogląda zgłoszenie.
