+def _get_with_id(cls, item_id):
+ return select(cls).where(cls.id == item_id)
+
+def _get_with_name(cls, name):
+ return select(cls).where(func.lower(cls.name) == func.lower(name))
+
+
+def _get_goals_by_vision(goals) -> List[str]:
+ results = []
+ visions = {}
+
+ for goal in goals:
+ vision = str(goal.vision)
+ if not vision in visions:
+ visions[vision] = []
+ visions[vision].append(str(goal))
+ for vision in visions:
+ results.append('') # Make some space
+ results.append(f'## {vision}')
+ for item in visions[vision]:
+ results.append(' + ' + item)
+ return results
+
+