2024-05-27 15:14:51 +00:00
# Nextcloud Deck importieren/exportieren
2024-05-28 13:22:28 +00:00
## Voraussetzung
2024-05-27 15:14:51 +00:00
2024-05-28 13:22:28 +00:00
[Python ](https://www.python.org/downloads/ ) muss installiert sein. Du kannst diese [Anleitung ](https://kinsta.com/de/wissensdatenbank/python-installieren/ ) nutzen.
2024-05-27 15:14:51 +00:00
2024-05-28 13:22:28 +00:00
## Optional: Git installieren
2024-05-27 15:14:51 +00:00
2024-05-28 13:22:28 +00:00
Installiere [Git ](https://git-scm.com/book/de/v2/Erste-Schritte-Git-installieren ): Das ermöglicht dir, die Skripte aktuell zu halten und dich an der Entwicklung zu beteiligen.
2024-05-27 15:14:51 +00:00
2024-05-28 13:22:28 +00:00
## Installation der Skripte
1. [Download ](https://github.com/johappel/nextcloud-import-export/archive/refs/heads/main.zip ) der Skripte oder mit Git
`git clone https://github.com/johappel/nextcloud-import-export.git`
2. Gehe in das Verzeichnis nextcloud-import-export (cd nextcloud-import-export)
3. Führe auf der Kommandozeile aus: `pip install requests`
4. Kopiere die Datei "sample.config.py" nach "config.py" und trage dort die Daten zu deinen Nextcloud-Instanzen ein.
5. Mit diesem Befehl auf der Kommandozeile holst du die neueste Version:
`git pull`
## Anwendungsfälle
Um ein bestimmtes Deck auf eine andere Nextcloud-Instanz zu kopieren, gibst du auf der Kommandozeile einen der folgenden Befehle ein:
1. Um ein Deck zu kopieren:
```sh
python clone.py --board "Name des Decks"
```
2. Um ein bestehendes Deck auf der Zielinstanz zu löschen und zu ersetzen:
```sh
python sync.py --board "Name des Decks" --replace
2024-05-27 15:14:51 +00:00
```
2024-05-28 13:22:28 +00:00
3. Um ein bestehendes Deck auf der Zielinstanz mit den Daten, Karten und Stacks der Originalinstanz synchron zu halten:
```sh
python sync.py --board "Name des Decks"
2024-05-27 15:14:51 +00:00
```
2024-05-28 13:22:28 +00:00
4. Um ein Backup aller Decks mit Datum des Backups im Titel auf der Zielinstanz zu sichern:
2024-05-27 15:14:51 +00:00
2024-05-28 13:22:28 +00:00
```sh
2024-05-27 15:14:51 +00:00
python backup.py
```
Dank der großartigen Arbeit von @svbergerem:
https://gist.github.com/svbergerem/5914d7f87764901aefddba125af99938
### Funktionen des Skripts
1. **Daten von der Quellinstanz abrufen:**
2024-05-28 13:22:28 +00:00
Gib bei den folgenden Funktionen als Parameter 'from' oder 'to' ein, je nachdem, ob du die Daten von der Quellinstanz oder der Zielinstanz abfragst:
- `getBoards(from_or_to)` : Ruft die Liste aller Boards ab.
- `getBoardDetails(boardId, from_or_to)` : Ruft Details eines spezifischen Boards ab.
- `getStacks(boardId, from_or_to)` : Ruft die Stacks eines Boards ab.
- `getStacksArchived(boardId, from_or_to)` : Ruft die archivierten Stacks eines Boards ab.
2024-05-27 15:14:51 +00:00
2. **Daten zur Zielinstanz übertragen:**
- `createBoard(title, color)` : Erstellt ein Board.
- `createLabel(title, color, boardId)` : Erstellt ein Label in einem Board.
- `createStack(title, order, boardId)` : Erstellt einen Stack in einem Board.
- `createCard(title, ctype, order, description, duedate, boardId, stackId)` : Erstellt eine Karte in einem Stack.
2024-05-28 13:22:28 +00:00
- `assignLabel(labelId, cardId, boardId, stackId)` : Weist einer Karte ein Label zu.
2024-05-27 15:14:51 +00:00
- `archiveCard(card, boardId, stackId)` : Archiviert eine Karte.
2024-05-28 13:22:28 +00:00
- `copyCard(card, boardIdTo, stackIdTo, labelsMap)` : Kopiert eine Karte, einschließlich ihrer Labels und des archivierten Status.
- `deleteBoard(boardIdTo)` : Löscht ein Board.
- `deleteStacks(boardIdTo)` : Löscht alle Listen eines Boards.
- `deleteLabels(boardIdTo)` : Löscht alle Karten eines Boards.
# @todo:
- Synchronisation verbessern (nur dezidierte Karten ersetzen)
- Grafisches User Interface