def build_widget(self): widget = MenuSelectButtonList() if self.app.jaas_ok: widget.append_option('Juju-as-a-Service (JaaS) ' 'Free Controller', 'jaas') if len(self.controllers) > 0: if self.app.jaas_ok: widget.append(HR()) widget.append(Color.label( Text("Existing Self-Hosted Controllers"))) widget.append(Padding.line_break("")) cdict = defaultdict(lambda: defaultdict(list)) for cname, d in self.controllers.items(): cdict[d['cloud']][d.get('region', None)].append((cname, d)) for cloudname, cloud_d in sorted(cdict.items()): widget.append(Color.label(Text(" {}".format(cloudname)))) for regionname, controllers in cloud_d.items(): for controller_name, controller in sorted(controllers): label = " {}".format(controller_name) if regionname: label += " ({})".format(regionname) widget.append_option( label, controller_name, enabled=controller.get('api-endpoints')) widget.append(Padding.line_break("")) widget.append(Padding.line_break("")) widget.append(HR()) widget.append_option("Deploy New Self-Hosted Controller", None) widget.select_first() return widget
def _build_widget(self): total_items = [] for controller in sorted(self.controllers): models = self.models[controller]['models'] if len(models) > 0: total_items.append( Color.label( Text("{} ({})".format(controller, models[0].get('cloud', ""))))) for model in sorted(models, key=itemgetter('name')): if model['name'] == "controller": continue if model['life'] == 'dying': continue label = " {}, Machine Count: {}{}".format( model['name'], self._total_machines(model), ", Running since: {}".format( model['status'].get('since')) if 'since' in model['status'] else '') total_items.append( Color.body(menu_btn(label=label, on_press=partial( self.submit, controller, model)), focus_map='menu_button focus')) total_items.append(Padding.line_break("")) total_items.append(Padding.line_break("")) return Padding.center_80(Filler(Pile(total_items), valign='top'))
def _build_widget(self): total_items = [] if len(self.controllers) > 0: total_items.append(HR()) cdict = defaultdict(lambda: defaultdict(list)) for cname, d in self.controllers.items(): cdict[d['cloud']][d.get('region', None)].append(cname) for cloudname, cloud_d in sorted(cdict.items()): total_items.append(Color.label( Text(" {}".format(cloudname)))) for regionname, controllers in cloud_d.items(): for controller in sorted(controllers): label = " {}".format(controller) if regionname: label += " ({})".format(regionname) total_items.append( Color.body( menu_btn(label=label, on_press=partial(self.submit, controller)), focus_map='menu_button focus' ) ) total_items.append(Padding.line_break("")) total_items.append(Padding.line_break("")) total_items.append(HR()) total_items.append( Color.body( menu_btn(label="Create New", on_press=self.handle_create_new), focus_map='menu_button focus' ) ) return Padding.center_80(Filler(Pile(total_items), valign='top'))
def _build_widget(self): total_items = [] if len(self.controllers) > 0: total_items.append(HR()) cdict = defaultdict(lambda: defaultdict(list)) for cname, d in self.controllers.items(): cdict[d['cloud']][d.get('region', None)].append(cname) for cloudname, cloud_d in sorted(cdict.items()): total_items.append(Color.label(Text(" {}".format(cloudname)))) for regionname, controllers in cloud_d.items(): for controller in sorted(controllers): label = " {}".format(controller) if regionname: label += " ({})".format(regionname) total_items.append( Color.body(menu_btn(label=label, on_press=partial( self.submit, controller)), focus_map='menu_button focus')) total_items.append(Padding.line_break("")) total_items.append(Padding.line_break("")) total_items.append(HR()) total_items.append( Color.body(menu_btn(label="Create New", on_press=self.handle_create_new), focus_map='menu_button focus')) return Padding.center_80(Filler(Pile(total_items), valign='top'))
def build_widget(self): widget = MenuSelectButtonList() prev_cat = None for category, spell in self.spells: if category == "_unassigned_spells": category = "other" if category != prev_cat: if prev_cat: widget.append(Text("")) widget.append(Color.label(Text(category))) prev_cat = category widget.append_option(spell['name'], spell) widget.focus_position = 1 return widget
def _build_widget(self): total_items = [HR()] prev_cat = None for category, spell in self.spells: if category == "_unassigned_spells": category = "other" if category != prev_cat: if prev_cat: total_items.append(Text("")) total_items.append(Color.label(Text(category))) prev_cat = category total_items.append(SpellPickerWidget(spell, self.submit)) total_items += [HR()] self.pile = Pile(total_items) return Padding.center_60(Filler(self.pile, valign='top'))