Files
personal-hub/_templates/Add-IterationDefinition.md
T
Marcel Arndt a2ad5f5c6d import vault
2026-07-16 14:04:45 +02:00

1.8 KiB

<%* // iterdef: defines a planning iteration with sequence id, status, start/end and optional goal. const componentName = "iterdef"; const newId = tp.user.auto_increment("iterdef_id"); const today = tp.date.now("YYYY-MM-DD"); const file = tp.file.find_tfile(tp.file.path(true));

setTimeout(async () => { await tp.app.fileManager.processFrontMatter(file, (frontmatter) => { const components = Array.isArray(frontmatter["components"]) ? frontmatter["components"] : []; if (!components.includes(componentName)) components.push(componentName);

	frontmatter["components"] = components;
	frontmatter["iterdef_id"] = frontmatter["iterdef_id"] ?? newId;
	frontmatter["iterdef_status"] = frontmatter["iterdef_status"] ?? "planned";
	frontmatter["iterdef_start"] = frontmatter["iterdef_start"] ?? today;
	frontmatter["iterdef_end"] = frontmatter["iterdef_end"] ?? today;
	frontmatter["iterdef_goal"] = frontmatter["iterdef_goal"] ?? "";
	frontmatter["iterdef_capacity_minutes"] = frontmatter["iterdef_capacity_minutes"] ?? 0;
	frontmatter["cssclasses"] = frontmatter["cssclasses"] ?? "wide-page";
});

}, 300) -%>

Goal

Workspace

filters:
  and:
    - file.hasLink(this.file.path)
formulas:
  Aufwand (ET: action_effort_minutes / 60 / 8
properties:
  formula.Aufwand (ET:
    displayName: Aufwand (ET)
views:
  - type: table
    name: Table
    order:
      - file.name
      - action_status
      - formula.Aufwand (ET
      - action_impact
      - action_effort_minutes
    sort:
      - property: action_status
        direction: ASC

Bound Work

TABLE 
  action_status as "Action", 
  work_status as "Work",
  round(action_effort_minutes / 60 / 8, 1) as "Aufwand (ET)", 
  action_impact as "Impact"
FROM ""
WHERE iterbind_target = this.file.link
SORT action_impact DESC, action_effort_minutes ASC