def __init__(self, members): self._view = View() self._boatController = BoatController() self._members = members
class Member(object): def __init__(self, members): self._view = View() self._boatController = BoatController() self._members = members def run(self, runcode, authenticated): """Displays create/list menus connected to members Parameters --------- runcode : helpers.RunCode authenticated : Boolean """ self._authenticated = authenticated if runcode is RunCode.create: self._members.add(self._view.create()) return elif runcode is RunCode.search_member_name: self._view.search_member_name(self._members) return elif runcode is RunCode.complex_search: self._view.complex_search(self._members) return verbosity = runcode is RunCode.display_verbose_list compact = not verbosity self._view.display_header(verbose=verbosity) for member in self._members: self._view.display(member, compact=compact, verbose=verbosity) if verbosity: self._boatController.run(member.boats, runcode) choice = self._view.get_list_menu_choice(self._members) if choice is not RunCode.exit_menu: return self._do_member_menu( self._members.get_by(member_id=choice)) def _do_member_menu(self, member): """Controls all single user actions Parameters ---------- member : models.Member """ self._view.display(member) member_choice = self._view.get_member_menu_choice(self._authenticated) if member_choice is RunCode.manage_boats: self._boatController.run(member.boats) elif member_choice is RunCode.edit: self._view.edit(member) elif member_choice is RunCode.delete: if self._view.remove_prompt(): self._members.remove(member)