mirror of
https://github.com/Pythagora-io/gpt-pilot.git
synced 2026-01-10 13:37:55 -05:00
get app steps that we can jump on and name them
This commit is contained in:
@@ -58,19 +58,61 @@ def get_created_apps_with_steps():
|
||||
for app in apps:
|
||||
app['id'] = str(app['id'])
|
||||
app['steps'] = [step for step in STEPS[:STEPS.index(app['status']) + 1]] if app['status'] is not None else []
|
||||
app['development_steps'] = get_all_app_development_steps(app['id'])
|
||||
# TODO this is a quick way to remove the unnecessary fields from the response
|
||||
app['development_steps'] = [{k: v for k, v in dev_step.items() if k in {'id', 'created_at'}} for dev_step in
|
||||
app['development_steps']]
|
||||
app['development_steps'] = get_all_app_development_steps(app['id'], loading_steps_only=True)
|
||||
|
||||
task_counter = 1
|
||||
troubleshooting_counter = 1
|
||||
feature_counter = 1
|
||||
feature_end_counter = 1
|
||||
new_development_steps = []
|
||||
|
||||
for dev_step in app['development_steps']:
|
||||
# Filter out unwanted keys first
|
||||
filtered_step = {k: v for k, v in dev_step.items() if k in {'id', 'created_at', 'prompt_path'}}
|
||||
|
||||
if 'breakdown' in filtered_step['prompt_path']:
|
||||
filtered_step['name'] = f"Task {task_counter}"
|
||||
task_counter += 1
|
||||
# Reset troubleshooting counter on finding 'breakdown'
|
||||
troubleshooting_counter = 1
|
||||
|
||||
elif 'iteration' in filtered_step['prompt_path']:
|
||||
filtered_step['name'] = f"Troubleshooting {troubleshooting_counter}"
|
||||
troubleshooting_counter += 1
|
||||
|
||||
elif 'feature_plan' in filtered_step['prompt_path']:
|
||||
filtered_step['name'] = f"Feature {feature_counter}"
|
||||
feature_counter += 1
|
||||
# Reset task and troubleshooting counters on finding 'feature_plan'
|
||||
task_counter = 1
|
||||
troubleshooting_counter = 1
|
||||
|
||||
elif 'feature_summary' in filtered_step['prompt_path']:
|
||||
filtered_step['name'] = f"Feature {feature_end_counter} end"
|
||||
feature_end_counter += 1
|
||||
|
||||
# Update the dev_step in the list
|
||||
new_development_steps.append(filtered_step)
|
||||
|
||||
app['development_steps'] = new_development_steps
|
||||
|
||||
return apps
|
||||
|
||||
|
||||
def get_all_app_development_steps(app_id, last_step=None):
|
||||
def get_all_app_development_steps(app_id, last_step=None, loading_steps_only=False):
|
||||
query = DevelopmentSteps.select().where(DevelopmentSteps.app == app_id)
|
||||
|
||||
if last_step is not None:
|
||||
query = query.where(DevelopmentSteps.id <= last_step)
|
||||
|
||||
if loading_steps_only:
|
||||
query = query.where((DevelopmentSteps.prompt_path.contains('breakdown')) |
|
||||
# (DevelopmentSteps.prompt_path.contains('parse_task')) | Not needed for extension users but we can load this steps if needed
|
||||
(DevelopmentSteps.prompt_path.contains('iteration')) |
|
||||
# (DevelopmentSteps.prompt_path.contains('create_readme')) | Not needed for extension users but we can load this steps if needed
|
||||
(DevelopmentSteps.prompt_path.contains('feature_plan')) |
|
||||
(DevelopmentSteps.prompt_path.contains('feature_summary')))
|
||||
|
||||
return [model_to_dict(dev_step) for dev_step in query]
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user