Esempio n. 1
0
 def __init__(self, members):
     self._view = View()
     self._boatController = BoatController()
     self._members = members
Esempio n. 2
0
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)