---
tags:
  - process/smaragd
  - process/goal
---
## Definition

| Teil            | Inhalt                                                                                                  |
| --------------- | ------------------------------------------------------------------------------------------------------- |
| **S**pezifisch  | Der Workflow in Obsidian für Projekt- und Aufgabenverwaltung soll um SMART-Ziele erweitert werden.      |
| **M**essbar     | Das Template für Ziele ist erstellt und bei drei Zielen angewendet worden.                              |
| **A**ttraktiv   | Die Erstellung und Durchsoicht der anstehenden Aufgaben wird vereinfacht und übersichtlicher.           |
| **R**ealistisch | Der Prozess zum Erstellen von Aufgaben und Projekten ist eingeführt und wird für dieses Ziel angepasst. |
| **A**bgestimmt  |                                                                                                         |
| **G**eprüft     |                                                                                                         |
| **D**atiert     | Die Erweiterung ist bis Ende März umgesetzt                                                             |

## Aufgaben


## Offene Aufgaben
```dataviewjs
const pages = dv.current().file.inlinks.where(p => dv.page(p.path).tags?.includes('process/task')).where(p => dv.page(p.path).file.tasks.length != dv.page(p.path).file.tasks.where(t => t.fullyCompleted === true).length);

dv.table(["Project", "Status", "Completed", "Tasks"], pages.map(p => {
	const page = dv.page(p.path);
	const tasks = page.file.tasks;
   	return [
   		page.file.link,
   		page.status,
   		tasks.where(t => t.fullyCompleted === true).length,
   		tasks.length
   	]
}));
```

## Aufgaben
```dataviewjs
const pages = dv.current().file.inlinks.where(p => dv.page(p.path).tags?.includes('process/task'));

dv.table(["Project", "Status", "Completed", "Tasks"], pages.map(p => {
	const page = dv.page(p.path);
	const tasks = page.file.tasks;
	return [
		page.file.link,
		page.status,
		tasks.where(t => t.fullyCompleted === true).length,
		tasks.length
	]
}));
```
