|
@@ -201,37 +201,40 @@ class RecipeEditor(FocusWidget):
|
|
|
return self.update()
|
|
|
|
|
|
def init_ingredients(self):
|
|
|
- left_pane = [
|
|
|
- LineBox(AttrMap(
|
|
|
- AutoCompletePopUp(
|
|
|
- ingredient[0],
|
|
|
- self.apply_choice,
|
|
|
- lambda: self.activity_manager.show(self.update(ingredient[0]))
|
|
|
- ), 'streak'), title=f'Product', title_align='left'
|
|
|
- ) for idx, ingredient in enumerate(self.ingredients)
|
|
|
- ]
|
|
|
- middle_pane = [
|
|
|
- LineBox(
|
|
|
- ingredient[1], title=f'Quantity', title_align='left'
|
|
|
- ) for idx, ingredient in enumerate(self.ingredients)
|
|
|
- ]
|
|
|
- right_pane = [
|
|
|
- LineBox(AttrMap(
|
|
|
- AutoCompletePopUp(
|
|
|
- ingredient[2],
|
|
|
- self.apply_choice,
|
|
|
- lambda: self.activity_manager.show(self.update(ingredient[2]))
|
|
|
- ), 'streak'), title=f'Unit', title_align='left'
|
|
|
- ) for idx, ingredient in enumerate(self.ingredients)
|
|
|
- ]
|
|
|
- gutter = [
|
|
|
+ right_pane = LineBox(Pile([AttrMap(
|
|
|
+ AutoCompletePopUp(
|
|
|
+ ingredient[0],
|
|
|
+ self.apply_choice,
|
|
|
+ lambda: self.activity_manager.show(self.update(ingredient[0]))
|
|
|
+ ), 'streak') for ingredient in self.ingredients]),
|
|
|
+ title='Product',
|
|
|
+ title_align='left'
|
|
|
+ )
|
|
|
+ left_pane = LineBox(
|
|
|
+ Pile([AttrMap(
|
|
|
+ ingredient[1],
|
|
|
+ 'streak'
|
|
|
+ ) for ingredient in self.ingredients]),
|
|
|
+ title='Quantity',
|
|
|
+ title_align='left'
|
|
|
+ )
|
|
|
+ middle_pane = LineBox(
|
|
|
+ Pile([AttrMap(AutoCompletePopUp(
|
|
|
+ ingredient[2],
|
|
|
+ self.apply_choice,
|
|
|
+ lambda: self.activity_manager.show(self.update(ingredient[2]))
|
|
|
+ ), 'streak') for ingredient in self.ingredients]),
|
|
|
+ title='Unit',
|
|
|
+ title_align='left'
|
|
|
+ )
|
|
|
+ gutter = Pile([
|
|
|
*[ Divider() for _ in product(
|
|
|
- range(3), self.ingredients[:-1]
|
|
|
+ range(1), self.ingredients[:-1]
|
|
|
)],
|
|
|
Divider(),
|
|
|
Divider(),
|
|
|
self.buttons['add'],
|
|
|
- ]
|
|
|
+ ])
|
|
|
return left_pane, middle_pane, right_pane, gutter
|
|
|
|
|
|
def add_ingredient(self):
|
|
@@ -239,10 +242,10 @@ class RecipeEditor(FocusWidget):
|
|
|
blank_ingredients_row(len(self.ingredients))
|
|
|
)
|
|
|
l, m, r, gutter = self.init_ingredients()
|
|
|
- self.components['left_pane'].contents = list(map(lambda x: (x, ('weight',1)), l))
|
|
|
- self.components['middle_pane'][1].contents = list(map(lambda x: (x, ('weight',1)), m))
|
|
|
- self.components['right_pane'][1].contents = list(map(lambda x: (x, ('weight',1)), r))
|
|
|
- self.components['gutter'][1].contents = list(map(lambda x: (x, ('weight',1)), gutter))
|
|
|
+ self.components['left_pane'][1].original_widget.contents = list(l.original_widget.contents)
|
|
|
+ self.components['middle_pane'][1].original_widget.contents = list(m.original_widget.contents)
|
|
|
+ self.components['right_pane'].original_widget.contents = list(r.original_widget.contents)
|
|
|
+ self.components['gutter'][1].contents = list(gutter.contents)
|
|
|
for idx, widget in enumerate(self.ingredients):
|
|
|
connect_signal(widget[0], 'postchange', lambda w,_: self.update(w))
|
|
|
connect_signal(widget[0], 'apply', lambda w, name: self.autocomplete_callback(
|
|
@@ -427,9 +430,9 @@ class RecipeEditor(FocusWidget):
|
|
|
Divider(),
|
|
|
])),
|
|
|
Divider(),
|
|
|
- LineBox(Columns([
|
|
|
+ (60, LineBox(Columns([
|
|
|
self.fname, (8, self.buttons['save'])
|
|
|
- ]), title='Recipe'),
|
|
|
+ ]), title='Recipe')),
|
|
|
Divider(),
|
|
|
(9, Pile([
|
|
|
Divider(),
|
|
@@ -438,10 +441,10 @@ class RecipeEditor(FocusWidget):
|
|
|
]))
|
|
|
], dividechars=1),
|
|
|
'bottom_pane': Pile(bottom_pane),
|
|
|
- 'right_pane': (15, Pile(right_pane)),
|
|
|
- 'middle_pane': (12, Pile(middle_pane)),
|
|
|
- 'left_pane': Pile(left_pane),
|
|
|
- 'gutter': (8, Pile(gutter))
|
|
|
+ 'right_pane': right_pane,
|
|
|
+ 'middle_pane': (15, middle_pane),
|
|
|
+ 'left_pane': (12, left_pane),
|
|
|
+ 'gutter': (8, gutter)
|
|
|
}
|
|
|
self.add_ingredient()
|
|
|
|