def do_GET_day(self) -> dict[str, object]:
"""Show single Day of ?date=."""
date = self.params.get_str('date', date_in_n_days(0))
+ make_type = self.params.get_str('make_type')
todays_todos = Todo.by_date(self.conn, date)
total_effort = 0.0
for todo in todays_todos:
return {'day': Day.by_id(self.conn, date, create=True),
'total_effort': total_effort,
'top_nodes': top_nodes,
+ 'make_type': make_type,
'enablers_for': enablers_for,
'disablers_for': disablers_for,
'conditions_present': conditions_present,
day = Day.by_id(self.conn, date, create=True)
day.comment = self.form_data.get_str('day_comment')
day.save(self.conn)
+ make_type = self.form_data.get_str('make_type')
for process_id in sorted(self.form_data.get_all_int('new_todo')):
- Todo.create_with_children(self.conn, process_id, date)
+ if 'empty' == make_type:
+ process = Process.by_id(self.conn, process_id)
+ todo = Todo(None, process, False, date)
+ todo.save(self.conn)
+ else:
+ Todo.create_with_children(self.conn, process_id, date)
done_ids = self.form_data.get_all_int('done')
comments = self.form_data.get_all_str('comment')
efforts = self.form_data.get_all_str('effort')
condition.save(self.conn)
for condition in todo.disables:
condition.save(self.conn)
- return f'/day?date={date}'
+ return f'/day?date={date}&make_type={make_type}'
def do_POST_todo(self) -> str:
"""Update Todo and its children."""
+ # pylint: disable=too-many-locals
+ # pylint: disable=too-many-branches
id_ = self.params.get_int('id')
for _ in self.form_data.get_all_str('delete'):
todo = Todo .by_id(self.conn, id_)
return '/'
todo = Todo.by_id(self.conn, id_)
adopted_child_ids = self.form_data.get_all_int('adopt')
- processes_to_make = self.form_data.get_all_int('make')
+ processes_to_make_full = self.form_data.get_all_int('make_full')
+ processes_to_make_empty = self.form_data.get_all_int('make_empty')
fill_fors = self.form_data.get_first_strings_starting('fill_for_')
for v in fill_fors.values():
- if v.startswith('make_'):
- processes_to_make += [int(v[5:])]
+ if v.startswith('make_empty_'):
+ processes_to_make_empty += [int(v[11:])]
+ elif v.startswith('make_full_'):
+ processes_to_make_full += [int(v[10:])]
elif v != 'ignore':
adopted_child_ids += [int(v)]
to_remove = []
continue
child = Todo.by_id(self.conn, child_id)
todo.add_child(child)
- for process_id in processes_to_make:
+ for process_id in processes_to_make_empty:
+ process = Process.by_id(self.conn, process_id)
+ made = Todo(None, process, False, todo.date)
+ made.save(self.conn)
+ todo.add_child(made)
+ for process_id in processes_to_make_full:
made = Todo.create_with_children(self.conn, process_id, todo.date)
todo.add_child(made)
effort = self.form_data.get_str('effort', ignore_strict=True)