コード例 #1
0
 def start():
     """
     start the program
     :return:
     """
     book = ContactBook()
     while True:
         key = Control().showMenu()
         if key == '1':
             Control.addInput(book)
         elif key == "2":
             Control().editInput(book)
         elif key == "3":
             Control().deleteInput(book)
         elif key == "4":
             book.sortByLength()
         elif key == "5":
             View().showBook(book)
         elif key == "6":
             View().showContact(book)
         elif key == "7":
             Control().serialInput(book)
         elif key == "8":
             exit()
         else:
             print("Incorrect. Please,try again")
コード例 #2
0
ファイル: controller.py プロジェクト: maxschwe/Jumpin-Jack
class Controller:
    def __init__(self, width, height, fps, speed, player_left, player_bottom):
        self.model = Model(width, height, speed)
        self.view = View(self.model, player_left, player_bottom)
        self.fps = fps
        self.clock = pygame.time.Clock()
        self.running = True
        self.start = True
        self.alive = False

    def run(self):
        self.view.show_start_screen()
        while self.running:
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    self.running = False
            keys = pygame.key.get_pressed()
            if self.alive:
                if keys[K_LEFT]:
                    self.alive = self.model.left_key()
                if keys[K_RIGHT]:
                    self.alive = self.model.right_key()
                if keys[K_SPACE]:
                    self.model.space_key()
            if keys[K_RETURN]:
                self.model.restart()
                self.start = False
                self.alive = True
            elif keys[K_ESCAPE]:
                self.running = False
                continue

            if self.alive:
                self.model.update_game()
            self.clock.tick(self.fps)
コード例 #3
0
ファイル: controller.py プロジェクト: maxschwe/Jumpin-Jack
 def __init__(self, width, height, fps, speed, player_left, player_bottom):
     self.model = Model(width, height, speed)
     self.view = View(self.model, player_left, player_bottom)
     self.fps = fps
     self.clock = pygame.time.Clock()
     self.running = True
     self.start = True
     self.alive = False
コード例 #4
0
    def __init__(self):
        self.model = RecipeList()
        self.view = View()

        self.frame_select = self.view.frames["FrameSelect"]
        self.frame_search = self.view.frames["FrameSearch"]
        self.frame_add = self.view.frames["FrameAdd"]
        self.frame_edit = self.view.frames["FrameEdit"]
        self.bind_buttons()
コード例 #5
0
ファイル: chat.py プロジェクト: lautimartner/Chat
 def __init__(self, system_argv):
     super(StartChat, self).__init__(system_argv)
     self.client = Client(None,None,None)
     self.controller = Controller(self.client)
     self.gui = View(self.controller, self.client)
     self.client.connToServer(None)
     main_thread = threading.Thread(target=self.client.input_manager)
     main_thread.setDaemon(True)
     main_thread.start()
     self.gui.show()
コード例 #6
0
ファイル: controller.py プロジェクト: Ulisescp97/SI
 def start(self):
     self.model = Model()
     self.view = View()
     self.view.start_view() 
     self.create_a_contact('pedro','orozco','*****@*****.**')
     self.create_a_contact('luis','medrano')
     self.create_a_contact('luis','medrano')
     #self.delete_a_contact('juan','lopez')
     self.show_all_contacts()
     self.update_a_contact('juan','perez','luis','zapata','*****@*****.**','4424232312')
     self.show_all_contacts()
     self.show_a_contact('luis','zapata')
     self.view.end_view()
コード例 #7
0
 def hideInput(book):
     """
     input for show option
     :param book:
     :return:
     """
     manager = input("1 - Search by name\n"
                     "2- Search by phone number\n")
     if manager == '1':
         nameToSearch = input("Enter the contact`s name to show:")
         View().showContact(book.getContactByName(nameToSearch))
     elif manager == '2':
         phoneToSearch = input("Enter the contact`s phone to show:")
         View().showContact(book.getContactByPhone(phoneToSearch))
     else:
         print("Incorrect key pressed.")
コード例 #8
0
 def test_04(self):
     # Arrange
     expected_result = 'Hello    World'
     # Act
     actual_result = 'Hello' + View.tab() + 'World'
     # Assert
     self.assertEqual(actual_result, expected_result,
                      'Expected to be "Hello    World')
コード例 #9
0
ファイル: class_maker.py プロジェクト: sge0039/PR301_Ass3
 def attribute_maker(self, new_attributes):
     attributes = ''
     if len(new_attributes) > 0:
         attributes = View.tab() + 'def __init__(self):' + View.newline()
         self_attributes = ''
         for attribute in new_attributes:
             data_type = ''
             if ':' in attribute:
                 list_temp = attribute.split(':')
                 att_name = self.name_to_lower(list_temp[0])
                 data_type = ': ' + self.get_data_type(list_temp[1])
             else:
                 att_name = self.name_to_lower(attribute)
             self_attributes += View.tab() + View.tab(
             ) + 'self.' + att_name + data_type + View.newline()
         attributes += self_attributes
     return attributes
コード例 #10
0
 def test_03(self):
     # Arrange
     expected_result = '    '
     # Act
     actual_result = View.tab()
     # Assert
     self.assertEqual(actual_result, expected_result,
                      'Expected to be four spaces')
コード例 #11
0
 def test_01(self):
     # Arrange
     expected_result = '\n'
     # Act
     actual_result = View.newline()
     # Assert
     self.assertEqual(actual_result, expected_result,
                      'Expected to be a Newline')
コード例 #12
0
ファイル: controller.py プロジェクト: Ulisescp97/SI
    def menu(self):
        self.view = View()
        self.view.menu()
        a = input()
        if a == '1':
            self.view = View()
            self.view.create_a_contact()
            nombre = input()
            apellido = input()
            correo = input()
            telefono = input()
            self.create_a_contact(nombre,apellido,correo,telefono)
             





                                                                                        
コード例 #13
0
ファイル: class_maker.py プロジェクト: sge0039/PR301_Ass3
 def method_format(self, method_name, method_args, return_type):
     result = View.tab() + 'def ' + method_name + '(self'
     result += self.method_parameter(method_args)
     result += '):' + View.newline()
     result += View.tab() + View.tab() + return_type + View.newline(
     ) + View.newline()
     return result
コード例 #14
0
ファイル: class_maker.py プロジェクト: sge0039/PR301_Ass3
 def class_designer(self, new_dict):
     file_name = self.file_name(new_dict['class'])
     class_name = self.class_maker(new_dict['class'])
     methods = self.method_maker(new_dict['method'])
     attributes = self.attribute_maker(new_dict['attribute'])
     if 'relationship' in new_dict.keys():
         relationships = self.get_rel_type(new_dict['relationship'])
         attributes += self.relationship_maker(relationships)
     attributes += View.newline()
     temp_dict = {
         'file_name': file_name,
         'file_content': class_name + attributes + methods
     }
     return temp_dict
コード例 #15
0
ファイル: class_maker.py プロジェクト: sge0039/PR301_Ass3
    def class_maker(self, new_class_name):
        """
        >>> name = 'LevelDesigner'
        >>> c_maker = ClassMaker()
        >>> c_maker.class_maker(name)
        This is the beginning.
        No exception is raised
        This is the end
        'class LevelDesigner:\\n'

        >>> name = 'gamePlayer'
        >>> c_maker.class_maker(name)
        This is the beginning.
        No exception is raised
        This is the end
        'class GamePlayer:\\n'

        >>> name = 'filehandler'
        >>> c_maker.class_maker(name)
        This is the beginning.
        No exception is raised
        This is the end
        'class Filehandler:\\n'
        """
        try:
            print("This is the beginning.")
            class_name = new_class_name.replace(new_class_name[0],
                                                new_class_name[0].upper(), 1)
        except AttributeError as err:
            print("The exception is: ", err)
        except MyError as err:
            print(err)
        else:
            print("No exception is raised")
            return 'class ' + class_name + ':' + View.newline()
        finally:
            print("This is the end")
コード例 #16
0
ファイル: class_maker.py プロジェクト: sge0039/PR301_Ass3
 def relationship_maker(self, new_relationship):
     relationships = ''
     for relationship in new_relationship:
         relationships += View.tab() + View.tab(
         ) + 'self.' + relationship + View.newline()
     return relationships
コード例 #17
0
 def __init__(self):
     self.aid = None
     self.um_obj = Model()
     self.uv_obj = View()
コード例 #18
0
class Controller:
    def __init__(self):
        self.aid = None
        self.um_obj = Model()
        self.uv_obj = View()

    def admin_validate_control(self):
        admin_login = self.uv_obj.admin_login()
        email = admin_login[0]
        password = admin_login[1]
        #print(email)
        #print(password)

        # calling admin_validate method of Model class for admin
        data = self.um_obj.admin_validate(email, password)
        self.aid = data[0]
        em = data[1]
        pw = data[2]
        #print(aid, em, pw)

        if email == em and password == pw:  # admin validation
            admin_session = em
            print("---------------------------")
            print("Welcome To Admin Panel!")
            print("---------------------------")

            self.admin_control()  # if admin user name and password is correct,
            # it calls user_input() method to input data
        else:
            print("Incorrect UserName and Password!")

    def user_validate_control(self):
        user_login = self.uv_obj.user_login()
        email = user_login[0]
        password = user_login[1]
        # print(email, password)

        # calling admin_validate method of Model class for admin
        data = self.um_obj.user_validate(email, password)
        uid = data[0]
        ema = data[1]
        pwa = data[2]
        # print(ema, pwa)

        if email == ema and password == pwa:  # if true call user_input() method
            user_session = ema
            print("---------------------------")
            print("Welcome To User Panel!")
            print("---------------------------")
            user_data = self.um_obj.user_data_show(uid)
            self.uv_obj.user_output(user_data)
            edit = input("Do you want to edit (yes/no)?")
            if edit == "yes":
                edit_data = self.uv_obj.user_edit(user_data)
                update_user = self.um_obj.update_user(edit_data, uid)
                print(update_user)
            else:
                pass

        else:
            print("Incorrect UserName and Password! ")

    def admin_control(
        self
    ):  # to control which action admin's can perform edit, delete or show
        print("""Hint:
        To View all Users Data: enter "show users"
        To View Your Own Data: enter "show"
        To Edit: enter "edit"
        To Delete User: enter "delete"
        """)
        mode = input(
            "Which action you want to perform (Retrieve/Edit/Delete )? ")
        if mode == "edit":
            admin_data = self.um_obj.admin_data_show(self.aid)
            edit_data = self.uv_obj.user_edit(admin_data)
            update_admin = self.um_obj.update_admin(edit_data, self.aid)
            print(update_admin)
        elif mode == "delete":
            delete_name = self.uv_obj.delete_user_data()
            delete = self.um_obj.delete_user_by_admin(delete_name)
            print(delete)
        elif mode == "show users":
            user_rows = self.um_obj.all_user_data_for_admin()
            self.uv_obj.admin_output_of_user(user_rows)
        elif mode == "show":
            admin_row = self.um_obj.admin_data_show(self.aid)
            self.uv_obj.admin_output(admin_row)
        else:
            print("Wrong Instruction!")

    def user_control(self):
        print("""Hint: To Sign Up: enter "sign up" 
        To Login: enter "login"
        """)
        mode = input("Which action you want to perform (Sign Up/Login)? ")
        if mode == "sign up":
            user_input = self.uv_obj.user_input()
            add_db = self.um_obj.add_to_user_db(user_input)
            print(add_db)
        elif mode == "login":
            self.user_validate_control()
        else:
            print(
                "Enter sign up to Sign Up for  new user and enter login to LogIn for exist user."
            )
コード例 #19
0
class Controller:
    """
    *********************************
    *  A controller for a store DB  *
    *********************************
    """
    def __init__(self):
        self.model = Model()
        self.view = View()

    def start(self):
        self.view.start()
        self.main_menu()


    """
    *********************************
    *       General Controller      *
    *********************************
    """
    def main_menu(self):
        o = '0'
        while 0 != '3':
            self.view.main_menu()
            self.view.option('3')
            o = input()
            if o == '1':
                self.menu_usuario()
            elif o == '2':
                self.login()
            elif o == '3':
                self.view.end()
            else:
                self.view.not_valid_option()
        return

    def update_lists(self, fs, vs):
        fields = []
        vals = []
        for f,v in zip(fs,vs):
            if v != '':
                fields.append(f+' = %s')
                vals.append(v)
        return fields,vals


    def menu_usuario(self):
        o = '0'
        while o != '4':
            self.view.main_menu_usuario()
            self.view.option('4')
            o = input()
            if o == '1':
                self.usuario_peliculas()
            elif o == '2':
                self.usuario_funciones()
            elif o == '3':
                self.usuario_boletos()
            elif o == '4':
                self.main_menu()
                return
            else:
                self.view.not_valid_option()
        return

    def administrador_menu(self):
        o = '0'
        while o != '5':
            self.view.main_menu_admin()
            self.view.option('5')
            o = input()
            if o == '1':
                self.administrador_peliculas()
            elif o == '2':
                self.administrador_salas()
            elif o == '3':
                self.administrador_funciones()
            elif o == '4':
                self.administrador_boletos()
            elif o == '5':
                self.administrador_admins()
            elif o == '6':
                self.main_menu()
                return
            else:
                self.view.not_valid_option()
        return


    """
    *********************************
    *   Controllers for peliculas   *
    *********************************
    """

    def administrador_peliculas(self):
        o = '0'
        while o != '7':
            self.view.peliculas_menu_admin()
            self.view.option('7')
            o = input()
            if o == '1':
                self.agregar_pelicula()
            elif o == '2':
                self.read_a_pelicula()
            elif o == '3':
                self.read_all_peliculas()
            elif o == '4':
                self.read_peliculas_categoria()
            elif o == '5':
                self.update_pelicula()
            elif o == '6':
                self.delete_pelicula()
            elif o == '7':
                self.administrador_menu()
                return
            else:
                self.view.not_valid_option()
        return

    def usuario_peliculas(self):
        o = '0'
        while o != '3':
            self.view.pelicuas_menu_usuario()
            self.view.option('3')
            o = input()
            if o == '1':
                self.read_all_peliculas()
            elif o == '2':
                self.read_peliculas_categoria()
            elif o == '3':
                self.menu_usuario()
                return
            else:
                self.view.not_valid_option()
        return

    def ask_pelicula(self):
        self.view.ask('Nombre: ')
        nombre = input()
        self.view.ask('Sinopsis: ')
        sinopsis = input()
        self.view.ask('Categoria: ')
        categoria = input()
        self.view.ask('Duracion: ')
        duracion = input()
      
        return [nombre, sinopsis, categoria, duracion]

    def agregar_pelicula(self):
        nombre, sinopsis, categoria, duracion = self.ask_pelicula()
        out = self.model.agregar_pelicula(nombre, sinopsis, categoria, duracion)
        if out == True:
            self.view.ok(nombre,'agrego')
        else:
            self.view.error('NO SE PUDO AGREGAR LA PELICULA. REVISA')
        return

    def read_a_pelicula(self):
        self.view.ask('ID pelicula: ')
        id_pelicula = input()
        pelicula = self.model.read_a_pelicula(id_pelicula)
        if type(pelicula) == tuple:
            self.view.show_pelicula_header(' Datos de la pelicula '+id_pelicula+' ')
            self.view.show_a_pelicula(pelicula)
            self.view.show_pelicula_midder()
            self.view.show_pelicula_footer()
        else:
            if pelicula == None:
                self.view.error('LA PELICULA NO EXISTE')
            else:
                self.view.error('PROBLEMA AL LEER LA PELICULA. REVISA')
        return

    def read_all_peliculas(self):
        peliculas = self.model.read_all_pelicula()
        if type(peliculas) == list:
            self.view.show_pelicula_header(' Todas las peliculas ') 
            for pelicula in peliculas:
                self.view.show_a_pelicula(pelicula)
                self.view.show_pelicula_midder()
            self.view.show_pelicula_footer()
        else:
            self.view.error('PROBLEMA AL LEER LAS PELICULAS. REVISA')
        return

    def read_peliculas_categoria(self):
        self.view.ask('Categoria: ')
        categoria = input()
        peliculas = self.model.read_pelicula_categoria(categoria)
        if type(peliculas) == list:
            self.view.show_pelicula_header(' Peliculas categoria '+categoria+' ')
            for pelicula in peliculas:
                self.view.show_a_pelicula(pelicula)
                self.view.show_pelicula_midder()
            self.view.show_pelicula_footer
        else:
            self.view.error('PROBLEMA AL LEER LAS PELICULAS. REVISA')
        return


    def update_pelicula(self):
        self.view.ask('ID de pelicula a modificar: ')
        id_pelicula = input()
        pelicula = self.model.read_a_pelicula(id_pelicula)    
        if type(pelicula) == tuple:
            self.view.show_pelicula_header(' Datos de la pelicula '+id_pelicula+' ')
            self.view.show_a_pelicula(pelicula)
            self.view.show_pelicula_midder()
            self.view.show_pelicula_footer()
        else:
            if pelicula == None:
                self.view.error('LA PELICULA NO EXISTE')
            else:
                self.view.error('PROBLEMA AL LEER LA PELICULA')
            return
        self.view.msg('Ingresa los valores a modificar (vacio para dejarlo igual): ')
        whole_vals = self.ask_pelicula()
        fields, vals = self.update_lists(['Nombre', 'Sinopsis', 'Categoria', 'Duracion'], whole_vals)
        vals.append(id_pelicula)
        vals = tuple(vals)
        out = self.model.update_pelicula(fields,vals)
        if out == True:
            self.view.ok(id_pelicula, 'actualizo')
        else:
            self.view.error('NO SE PUDO ACTUALIZAR LA PELICULA. REVISA')
        return  


    def delete_pelicula(self):
        self.view.ask('Id de la pelicula a borrar: ')
        id_pelicula = input()
        count = self.model.delete_pelicula(id_pelicula)
        if count != 0:
            self.view.ok(id_pelicula, 'borro')
        else:
            if count == 0:
                self.view.error('LA PELICULA NO EXISTE')
            else:
                self.view.error('PROBLEMA AL BORRAR LA PELICULA. REVISA.')
        return
    
    """
    *********************************
    *   Controllers for salas       *
    *********************************
    """

    def administrador_salas(self):
        o = '0'
        while o != '8':
            self.view.sala_menu()
            self.view.option('8')
            o = input()
            if o == '1':
                self.agregar_sala()
            elif o == '2':
                self.read_a_sala()
            elif o == '3':
                self.read_all_salas()
            elif o == '4':
                self.update_sala()
            elif o == '5':
                self.agregar_asientos_sala()
            elif o == '6':
                self.eliminar_asientos_sala()
            elif o == '7':
                self.delete_sala()
            elif o == '8':
                self.administrador_menu()
                return
            else:
                self.view.not_valid_option()
        return

    def ask_sala(self):
        self.view.ask('Nombre: ')
        nombre = input()
        return [nombre]

    def agregar_sala(self):
        nombre = self.ask_sala()
        out = self.model.agregar_sala(nombre)
        if out == True:
            self.view.ok(nombre,'agrego')
        else:
            self.view.error('NO SE PUDO AGREGAR LA SALA. REVISA')
        return

    def read_a_sala(self):
        self.view.ask('ID sala: ')
        id_sala = input()
        sala = self.model.read_a_sala(id_sala)
        if type(sala) == tuple:
            self.view.show_sala_header(' Datos de la sala '+id_sala+' ')
            self.view.show_a_sala(sala)
            self.read_all_asientos(id_sala)
            self.view.show_sala_midder()
            self.view.show_sala_footer()
        else:
            if sala == None:
                self.view.error('LA SALA NO EXISTE')
            else:
                self.view.error('PROBLEMA AL LEER LA SALA. REVISA')
        return

    def read_all_salas(self):
        salas = self.model.read_all_salas()
        if type(salas) == list:
            self.view.show_sala_header(' Todas las salas ') 
            for sala in salas:
                self.view.show_sala_header('Sala '+str(sala[0])) 
                self.view.show_a_sala(sala)
                self.read_all_asientos(sala[0])
                self.view.show_sala_midder()
            self.view.show_pelicula_footer()
        else:
            self.view.error('PROBLEMA AL LEER LAS PELICULAS. REVISA')
        return

    def read_all_asientos(self,id_sala):
        asientos = self.model.read_asientos_sala(id_sala)
        if type(asientos) == list:
            if len(asientos) == 0:
                print('Aun no se egregan asientos')
                self.view.show_asiento_footer()
            else:
                self.view.show_asiento_header(' Asientos sala '+str(id_sala))
                for asiento in asientos:
                    self.view.show_a_asiento(asiento)
                self.view.show_asiento_footer()
        else:
            self.view.error('PROBLEMA AL LEER LOS ASIENTOS')
        return

    def read_asientos(self,asientos):
        if type(asientos) == list:
            self.view.show_asiento_header('Asientos Disponibles')
            for asiento in asientos:
                self.view.show_a_asiento(asiento)
            self.view.show_asiento_footer()
        else:
            self.view.error('PROBLEMA AL LEER LOS ASIENTOS')
        return

    def agregar_asientos_sala(self):
        self.read_all_salas()
        self.view.ask('ID de la sala: ')
        id_sala = input()
        self.view.ask('Cuantos asientos desea agregar? ')
        no_asientos = input()
        for a in range (0,int(no_asientos)):
            self.view.ask('Nombre del asiento: ')
            nombre = input()
            out = self.model.agregar_asiento(id_sala, nombre)
            if out == True:
                self.view.ok(nombre,'agrego')
            else:
                self.view.error('NO SE PUDO AGREGAR EL ASIENTO. REVISA')
        return


    def ask_sala(self):
        self.view.ask('Nombre: ')
        nombre = input()
        return [nombre]

    def update_sala(self):
        self.view.ask('ID de la sala a modificar: ')
        id_sala = input()
        sala = self.model.read_a_sala(id_sala)    
        if type(sala) == tuple:
            self.view.show_sala_header(' Datos de la sala '+id_sala+' ')
            self.view.show_a_sala(sala)
            self.view.show_sala_midder()
            self.view.show_sala_footer()
        else:
            if sala == None:
                self.view.error('LA SALA NO EXISTE')
            else:
                self.view.error('PROBLEMA AL LEER LA SALA')
            return
        self.view.msg('Ingresa los valores a modificar (vacio para dejarlo igual): ')
        whole_vals = self.ask_sala()
        fields, vals = self.update_lists(['nombre_sala'], whole_vals)
        vals.append(id_sala)
        vals = tuple(vals)
        out = self.model.update_sala(fields,vals)
        if out == True:
            self.view.ok(id_sala, 'actualizo')
        else:
            self.view.error('NO SE PUDO ACTUALIZAR LA SALA. REVISA')
        return  

    def eliminar_asientos_sala(self):
        self.view.ask('Id de la sala: ')
        id_sala = input()
        self.view.ask('ID del asiento: ')
        id_asiento = input()
        count = self.model.delete_asientos(id_sala, id_asiento)
        if count != 0:
            self.view.ok(id_asiento, 'borro')
        else:
            if count == 0:
                self.view.error('El ASIENTO NO EXISTE')
            else:
                self.view.error('PROBLEMA AL BORRAR EL ASIENTO')
        return

    def delete_sala(self):
        self.view.ask('ID de la sala: ')
        id_sala = input()
        count = self.model.delete_sala(id_sala)
        if count != 0:
            self.view.ok(id_sala, 'borro')
        else:
            if count == 0:
                self.view.error('LA SALA NO EXISTE')
            else:
                self.view.error('PROBLEMA AL BORRAR LA SALA')
        return

    """
    *********************************
    *   Controllers for Funciones   *
    *********************************
    """
    def usuario_funciones(self):
        o = '0'
        while o != '3':
            self.view.menu_funciones_usuario()
            self.view.option('3')
            o = input()
            if o == '1':
                self.read_all_funciones()
            elif o == '2':
                self.read_funciones_pelicula()
            elif o == '3':
                self.menu_usuario()
                return
            else:
                self.view.not_valid_option()
        return

    def administrador_funciones(self):
        o = '0'
        while o != '7':
            self.view.funciones_menu()
            self.view.option('7')
            o = input()
            if o == '1':
                self.agregar_funciones()
            elif o == '2':
                self.read_a_funcion()
            elif o == '3':
                self.read_all_funciones()
            elif o == '4':
                self.read_funciones_pelicula()
            elif o == '5':
                self.update_funcion()
            elif o == '6':
                self.delete_funcion()
            elif o == '7':
                self.administrador_menu()
                return
            else:
                self.view.not_valid_option()
        return

    def ask_funcion(self):
        self.view.ask('ID Pelicula: ')
        id_pelicula = input()
        self.view.ask('ID_sala: ')
        id_sala = input()
        self.view.ask('Fecha: ')
        fecha = input()
        self.view.ask('Hora: ')
        hora = input()
        self.view.ask('Precio: ')
        precio = input()
        self.view.ask('Idioma: ')
        idioma = input()
      
        return [id_pelicula, id_sala, fecha, hora, precio, idioma]


    def agregar_funciones(self):
        id_pelicula, id_sala, fecha, hora, precio, idioma = self.ask_funcion()
        out = self.model.agregar_funcion(id_pelicula, id_sala, fecha, hora, precio, idioma)
        if out == True:
            self.view.ok(fecha,'Funcion agregada')
        else:
            self.view.error('NO SE PUDO AGREGAR LA FUNCION. REVISA')
        return

    def read_a_funcion(self):
        self.view.ask('ID funcion: ')
        id_funcion = input()
        funcion = self.model.read_a_funcion(id_funcion)
        if type(funcion) == tuple:
            self.view.show_funcion_header(' Datos de la funcion '+id_funcion+' ')
            self.view.show_a_funcion(funcion)
            self.view.show_funcion_midder()
            self.view.show_funcion_footer()
        else:
            if funcion == None:
                self.view.error('LA FUNCION NO EXISTE')
            else:
                self.view.error('PROBLEMA AL LEER LA FUNCION')
        return
    
    def read_funcion(self,id_funcion):
        funcion = self.model.read_a_funcion(id_funcion)
        if type(funcion) == tuple:
            self.view.show_funcion_header(' Datos de la funcion '+id_funcion+' ')
            self.view.show_a_funcion(funcion)
            self.view.show_funcion_midder()
            self.view.show_funcion_footer()
        else:
            if funcion == None:
                self.view.error('LA FUNCION NO EXISTE')
            else:
                self.view.error('PROBLEMA AL LEER LA FUNCION')
        return
    
    def read_all_funciones(self):
        funciones = self.model.read_all_funciones()
        if type(funciones) == list:
            self.view.show_funcion_header(' Todas las funciones ')
            for funcion in funciones:
                self.view.show_a_funcion(funcion)
                self.view.show_funcion_midder()
            self.view.show_pelicula_footer()
        else:
            self.view.error('PROBLEMA AL LEER LAS FUNCIONES. REVISA')
        return

    def read_funciones_pelicula(self):
        self.view.ask('Nombre Pelicula: ')
        n_pelicula = input()
        funciones = self.model.read_funcion_pelicula(n_pelicula)
        if type(funciones) == list:
            self.view.show_funcion_header(' Funciones para pelicula '+n_pelicula+' ')
            for funcion in funciones:
                self.view.show_a_funcion(funcion)
                self.view.show_funcion_midder()
            self.view.show_pelicula_footer()
        else:
            self.view.error('PROBLEMA AL LEER LAS FUNCIONES. REVISA')
        return

    def update_funcion(self):
        self.view.ask('ID de funcion a modificar: ')
        id_funcion = input()
        funcion = self.model.read_a_funcion(id_funcion)    
        if type(funcion) == tuple:
            self.view.show_funcion_header(' Datos de la funcion '+id_funcion+' ')
            self.view.show_a_funcion(funcion)
            self.view.show_funcion_midder()
            self.view.show_funcion_footer()
        else:
            if funcion == None:
                self.view.error('LA FUNCION NO EXISTE')
            else:
                self.view.error('PROBLEMA AL LEER LA FUNCION')
            return
        self.view.msg('Ingresa los valores a modificar (vacio para dejarlo igual): ')
        whole_vals = self.ask_funcion()
        fields, vals = self.update_lists(['id_pelicula', 'id_sala', 'fecha', 'hora', 'precio', 'idioma'], whole_vals)
        vals.append(id_funcion)
        vals = tuple(vals)
        out = self.model.update_funcion(fields,vals)
        if out == True:
            self.view.ok(id_funcion, 'actualizo')
        else:
            self.view.error('NO SE PUDO ACTUALIZAR LA FUNCION. REVISA')
        return

    def delete_funcion(self):
        self.view.ask('ID de la FUNCION: ')
        id_funcion = input()
        count = self.model.delete_funcion(id_funcion)
        if count != 0:
            self.view.ok(id_funcion, 'borro')
        else:
            if count == 0:
                self.view.error('LA FUNCION NO EXISTE')
            else:
                self.view.error('PROBLEMA AL BORRAR LA FUNCION')
        return


    """
    *********************************
    *   Controllers for BOLETOS     *
    *********************************
    """
    def usuario_boletos(self):
        o = '0'
        while o != '2':
            self.view.boletos_menu_usuario()
            self.view.option('2')
            o = input()
            if o == '1':
                self.agregar_boleto()
            elif o == '2':
                self.menu_usuario()
                return
            else:
                self.view.not_valid_option()
        return

    def administrador_boletos(self):
        o = '0'
        while o != '6':
            self.view.boleto_menu()
            self.view.option('6')
            o = input()
            if o == '1':
                self.agregar_boleto()
            elif o == '2':
                self.read_a_boleto()
            elif o == '3':
                self.read_all_boletos()
            elif o == '4':
                self.read_boletos_funcion()
            elif o == '5':
                self.delete_funcion()
            elif o == '6':
                self.administrador_menu()
                return
            else:
                self.view.not_valid_option()
        return

    def ask_boleto(self):
        self.view.ask('ID Funcion: ')
        id_funcion = input()
        self.view.ask('ID_asiento: ')
        id_asiento = input()
      
        return [id_funcion, id_asiento]


    def agregar_boleto(self):
        self.read_all_funciones()
        self.view.ask('ID_FUNCION: ')
        id_funcion = input()
        funcion=self.model.read_a_funcion(id_funcion)
        asientos = self.model.read_asientos_sala(funcion[2])
        ocupados = self.model.asientos_funcion(id_funcion)
        desocupados = [a for a in asientos if not a in ocupados]
        self.read_asientos(desocupados)
        self.view.ask('ID_ASIENTO: ')
        id_asiento = input()
        des = []
        for i in desocupados:
            des.append(str(i[0]))
        if id_asiento in des:
            out = self.model.agregar_boleto(id_funcion, id_asiento)
            if out == True:
                self.view.ok(id_asiento,'agregado')
            else:
                self.view.error('NO SE PUDO AGREGAR EL BOLETO')
        else:
            self.view.error('ERROR AL SELECCIONAR ASIENTO')
        return


    def read_a_boleto(self):
        self.view.ask('ID Boleto: ')
        id_boleto = input()
        boleto = self.model.read_a_boleto(id_boleto)
        if type(boleto) == tuple:
            self.view.show_boleto_footer()
            self.view.show_boleto_header(' Datos de la boleto '+id_boleto+' ')
            self.view.show_boleto_footer()
            self.view.show_boleto(boleto)
            self.view.show_boleto_footer()
        else:
            if boleto == None:
                self.view.error('EL BOLETO NO EXISTE')
            else:
                self.view.error('PROBLEMA AL LEER EL BOLETO')
        return
    
    def read_all_boletos(self):
        boletos = self.model.read_all_boletos()
        if type(boletos) == list:
            self.view.show_funcion_header(' Todos los boletos ')
            for boleto in boletos:
                self.view.show_boleto(boleto)
                self.view.show_boleto_midder()
            self.view.show_pelicula_footer()
        else:
            self.view.error('PROBLEMA AL LEER LAS FUNCIONES. REVISA')
        return

    def read_boletos_funcion(self):
        self.read_all_funciones()
        self.view.ask('ID FUNCION: ')
        id_funcion = input()
        boletos = self.model.read_boletos_funcion(id_funcion)
        if type(boletos) == list:
            self.view.show_funcion_header(' Boletos de la funcion '+id_funcion+' ')
            for boleto in boletos:
                self.view.show_boleto(boleto)
                self.view.show_boleto_midder()
            self.view.show_pelicula_footer()
        else:
            self.view.error('PROBLEMA AL LEER LAS BOLETOS')
        return

    def delete_boleto(self):
        self.view.ask('ID del BOLETO: ')
        id_boleto = input()
        count = self.model.delete_boleto(id_boleto)
        if count != 0:
            self.view.ok(id_boleto, 'se borro')
        else:
            if count == 0:
                self.view.error('EL BOLETO NO EXISE')
            else:
                self.view.error('PROBLEMA AL BORRAR EL BOLETO')
        return


    """
    *********************************
    *   Controllers for ADMINS      *
    *********************************
    """
    def administrador_admins(self):
        o = '0'
        while o != '6':
            self.view.admin_menu()
            self.view.option('6')
            o = input()
            if o == '1':
                self.agregar_administrador()
            elif o == '2':
                self.read_a_administrador()
            elif o == '3':
                self.read_all_administradores()
            elif o == '4':
                self.update_administrador()
            elif o == '5':
                self.delete_administrador()
            elif o == '6':
                self.administrador_menu()
                return
            else:
                self.view.not_valid_option()
        return

    def ask_admin(self):
        self.view.ask('Nombre: ')
        nombre = input()
        self.view.ask('Apellido_P: ')
        apellido_p = input()
        self.view.ask('Apellido_M: ')
        apellido_m = input()
        self.view.ask('Usuario: ')
        usuario = input()
        self.view.ask('Contraseña: ')
        contraseña = input()
      
        return [nombre, apellido_p, apellido_m, usuario, contraseña]
    
    def agregar_administrador(self):
        nombre, apellido_p, apellido_m, usuario, contraseña = self.ask_admin()
        out = self.model.agregar_administrador(nombre, apellido_p, apellido_m, usuario, contraseña)
        if out == True:
            self.view.ok(nombre,'agrego')
        else:
            self.view.error('NO SE PUDO AGREGAR EL ADMINISTRADOR. REVISA')
        return

    def read_a_administrador(self):
        self.view.ask('ID ADMIN: ')
        id_admin = input()
        admin = self.model.read_administrador(id_admin)
        if type(admin) == tuple:
            self.view.show_admin_header(' Datos del Admin '+id_admin+' ')
            self.view.show_a_admin(admin)
            self.view.show_admin_midder()
            self.view.show_admin_footer()
        else:
            if admin == None:
                self.view.error('EL ADMINISTRADOR NO EXISTE')
            else:
                self.view.error('PROBLEMA AL LEER EL ADMIN. REVISA')
        return

    def read_all_administradores(self):
        admins = self.model.read_all_administradores()
        if type(admins) == list:
            self.view.show_admin_header(' Todos los administradores ') 
            for admin in admins:
                self.view.show_a_admin(admin)
                self.view.show_admin_midder()
            self.view.show_admin_footer()
        else:
            self.view.error('PROBLEMA AL LEER LOS ADMINISTRADORES. REVISA')
        return

    def update_administrador(self):
        self.view.ask('ID del administrador a modificar: ')
        id_admin = input()
        admin = self.model.read_administrador(id_admin)    
        if type(admin) == tuple:
            self.view.show_admin_header(' Datos del admin '+id_admin+' ')
            self.view.show_a_admin(admin)
            self.view.show_admin_midder()
            self.view.show_admin_footer()
        else:
            if admin == None:
                self.view.error('EL ADMINISTRADOR NO EXISTE')
            else:
                self.view.error('PROBLEMA AL LEER EL ADMIN')
            return
        self.view.msg('Ingresa los valores a modificar (vacio para dejarlo igual): ')
        whole_vals = self.ask_admin()
        fields, vals = self.update_lists(['nombre', 'apellido_p', 'apellido_m', 'usuario', 'contraseñna'], whole_vals)
        vals.append(id_admin)
        vals = tuple(vals)
        out = self.model.update_administrador(fields,vals)
        if out == True:
            self.view.ok(id_admin, 'actualizo')
        else:
            self.view.error('NO SE PUDO ACTUALIZAR EL ADMINISTRADOR. REVISA')
        return

    def delete_administrador(self):
        self.view.ask('ID del ADMIN: ')
        id_admin = input()
        count = self.model.delete_admin(id_admin)
        if count != 0:
            self.view.ok(id_admin, 'se borro')
        else:
            if count == 0:
                self.view.error('EL ADMINISTRADOR NO EXISE')
            else:
                self.view.error('PROBLEMA AL BORRAR')
        return

    def ask_login(self):
        self.view.ask('Usuario: ')
        usuario = input()
        self.view.ask('Contraseña: ')
        contraseña = input()
      
        return [usuario, contraseña]

    def login(self):
        self.view.login()
        usuario, contraseña = self.ask_login()
        login = self.model.admin_login(usuario,contraseña)
        if type(login) == tuple:
            self.view.show_admin_header(' BIENVENIDO '+login[0]+' ')
            self.view.show_admin_footer()
            self.administrador_menu()
        else:
            if login == None:
                self.view.error('CONTRASEÑA O USUARIO INCORRECTO')
            else:
                self.view.error('PROBLEMA AL INGRESAR')
        return
コード例 #20
0
 def __init__(self):
     self.model = Model()
     self.view = View()
コード例 #21
0
ファイル: controller.py プロジェクト: Ulisescp97/SI
class Controller:
    def create_a_contact(self,first_name,last_name,email = '',tel = ''):
        try:
            self.model.create_a_contact(first_name,last_name,email,tel)
        except m_e.contact_already_stored as e:
            self.view.contact_already_stored_error(e)

    def show_all_contacts(self):
        contacts = self.model.read_all_contacts()
        self.view.show_all_contacts(contacts)

    def show_a_contact(self,first_name,last_name):
        try:
            contact = self.model.read_a_contact(first_name,last_name)
            self.view.show_a_contact(contact)
        except m_e.contact_not_stored as e:
            self.view.contact_not_stored(e)

    def update_a_contact(self,old_first_name,olf_last_name,new_first_name,new_last_name,
                         new_email = '', new_tel = ''):
        try:
            self.model.update_a_contact(old_first_name,olf_last_name,new_first_name,new_last_name, new_email,new_tel)
        except m_e.contact_not_stored as e:
            self.view.contact_already_stored_error(e)

    def delete_a_contact(self,first_name,last_name):
        try:
            self.model.delete_a_contact(first_name,last_name)
        except m_e.contact_already_stored as e:
            self.view.contact_already_stored_error(e)   

    def start(self):
        self.model = Model()
        self.view = View()
        self.view.start_view() 
        self.create_a_contact('pedro','orozco','*****@*****.**')
        self.create_a_contact('luis','medrano')
        self.create_a_contact('luis','medrano')
        #self.delete_a_contact('juan','lopez')
        self.show_all_contacts()
        self.update_a_contact('juan','perez','luis','zapata','*****@*****.**','4424232312')
        self.show_all_contacts()
        self.show_a_contact('luis','zapata')
        self.view.end_view()
    
    def menu(self):
        self.view = View()
        self.view.menu()
        a = input()
        if a == '1':
            self.view = View()
            self.view.create_a_contact()
            nombre = input()
            apellido = input()
            correo = input()
            telefono = input()
            self.create_a_contact(nombre,apellido,correo,telefono)
             





                                                                                        
コード例 #22
0
class Controller:
    
    """
    ************************************
    *  Controlador para cine Db        *
    ************************************
    """
    def __init__(self):
        self.model = Model()
        self.view = View()
     
    def start(self):
        self.view.start()
        self.menu_principal()

    def update_lists(self, fs, vs):
        fields = []
        vals = []
        for f, v in zip(fs,vs):
            if v != '':
                fields.append(f+' = %s')
                vals.append(v)
        return fields, vals


    clear = lambda: os.system('cls') #on Windows System

    """
    ************************************
    *   Controladores inicio/registro  *
    ************************************
    """
    def menu_principal(self):
        os.system ("cls") 
        o = '0'
        while o != '4':
            self.view.menu_principal()
            self.view.option('4')
            o = input()
            if o == '1':
                self.inicio_sesion_usuario()
            elif o == '2':
                self.inicio_sesion_administrador()
            elif o == '3':
                self.registro_usuario()
            elif o == '4':
                self.view.end()
            else:
                self.view.not_valid_option()
        return

    def ask_inicio(self):
        self.view.ask('Email: ')
        Email = input()
        self.view.ask('Password: '******'Datos de tu usuario')
            self.view.mostrar_usuario(usuario)
            self.view.mostrar_usuario_midder()
            self.view.mostrar_usuario_footer()
            self.menu_user()
        else:
            if usuario == None:
                self.view.err('El EMAIL O EL PASSWORD SON INCORRECTOS')
            else: 
                self.view.err('PROBLEMA AL LEER EL USUARIO. REVISA.')
            return

    def inicio_sesion_administrador(self):
        Email, password = self.ask_inicio()
        administrador = self.model.leer_administrador_email_password(Email, password)
        if type(administrador) == tuple:
            self.view.mostrar_admin_header('Datos de tu administrador')
            self.view.mostrar_admin(administrador)
            self.view.mostrar_admin_midder()
            self.view.mostrar_admin_footer()
            self.menu_admin()
        else:
            if administrador == None:
                self.view.err('El EMAIL O EL PASSWORD SON INCORRECTOS')
            else: 
                self.view.err('PROBLEMA AL LEER EL administrador. REVISA.')
            return          

    def registro_usuario(self):
        print('registo de usuarios')
        self.view.input('Nombre')
        Nombre = input()
        self.view.input('Email')
        Email = input()
        self.view.input('Contraseña')
        password = input()
        self.view.input('Telefono')
        Num = input()

        result = self.model.crear_usuario(Nombre, Email, password, Num)
        if result == True:
            self.view.msg('Usuario creado')
        else:
            self.view.err(result)

    def registro_admin(self):
        print('registo de administradores')
        self.view.input('Nombre')
        Nombre = input()
        self.view.input('Email')
        Email = input()
        self.view.input('Contraseña')
        password = input()
        self.view.input('Telefono')
        Num = input()

        result = self.model.crear_admin(Nombre, Email, password, Num)
        if result == True:
            self.view.msg('Administrador creado')
        else:
            self.view.err(result)
    
    """
    ************************************
    *       Controladores usuario      *
    ************************************
    """

    def menu_user(self):
        os.system ("cls") 
        o = '0'
        while o != '8':
            self.view.menu_user()
            self.view.option('8')
            o = input()
            if o == '1':
                self.leer_funciones()
            elif o == '2':
                self.horario_funcion()
            elif o == '3':
                self.fecha_funcion()
            elif o == '4':
                self.pelicula_funcion()
            elif o == '5':
                self.leer_peliculas()
            elif o == '6':
                self.crear_Ticket_usuario()
            elif o == '7':
                self.leer_Tickets_usuario()
            elif o == '8':
                self.view.end()
            else:
                self.view.not_valid_option()
        return

    
    """
    ************************************
    *   Controladores administradores  *
    ************************************||
    """

    def menu_admin(self):
        os.system ("cls") 
        o = '0'
        while o != '7':
            self.view.menu_admin()
            self.view.option('7')
            o = input()
            if o == '1':
                self.CtrlFunciones()
                pass
            elif o == '2':
                self.CtrlPeliculas()
            elif o == '3':
                self.Ctrlsalas()
            elif o == '4':
                self.CtrlButaca()
            elif o == '5':
                self.CtrlTicket()
            elif o == '6':
                self.CtrlUsuario()
            elif o == '7':
                self.view.end()
            else:
                self.view.not_valid_option()
        return

    """
    ************************************
    *   Controladores usuario/admin  *
    ************************************
    """

    def CtrlUsuario(self):
        os.system ("cls") 
        o = '0'
        while o != '9':
            self.view.menu_usuario()
            self.view.option('9')
            o = input()
            if o == '1':
                self.registro_usuario()
            elif o == '2':
                self.leer_usuarios()
            elif o == '3':
                self.actualizar_usuario()
            elif o == '4':
                self.eliminar_usuario()
            elif o == '5':
                self.registro_admin()
            elif o == '6':
                self.leer_admins()
            elif o == '7':
                self.actualizar_admin()
            elif o == '8':
                self.eliminar_admin()
            elif o == '9':
                self.view.end()
            else:
                self.view.not_valid_option()
        return

    '''USER'''
    def ask_usuario(self):
        self.view.ask('Nombre: ')
        Nombre = input()
        self.view.ask('Email: ')
        Email = input()
        self.view.ask('Num: ')
        Num = input()
        self.view.ask('password: '******'ID usuario: ')
        Id_Usuario = input()
        usuario = self.model.leer_usuario(Id_Usuario)
        if type(usuario) == tuple:
            self.view.mostrar_usuario_header('Datos del usuario'+Id_Usuario+' ')
            self.view.mostrar_usuario(usuario)
            self.view.mostrar_usuario_midder()
            self.view.mostrar_usuario_footer()
        else:
            if usuario == None:
                self.view.err('El USUARIO NO EXISTE')
            else: 
                self.view.err('PROBLEMA AL LEER EL USUARIO. REVISA.')
        return   

    def leer_usuarios(self):
        usuarios = self.model.leer_usuarios()
        if type(usuarios) == list:
            self.view.mostrar_usuario_header(' Todos lOs usuarios ')
            for usuario in usuarios:
                self.view.mostrar_usuario(usuario)
                self.view.mostrar_usuario_midder()
            self.view.mostrar_usuario_footer()
        else:
            self.view.err('PROBLEMA AL LEER LOS USUARIOS. REVISA')
        return

    def actualizar_usuario(self):
        self.view.ask('ID de la usuario: ')
        Id_Usuario = input()
        usuario = self.model.leer_usuario(Id_Usuario)
        if type(usuario) == tuple:
            self.view.mostrar_usuario_header(' identificador de la usuario '+Id_Usuario+' ')
            self.view.mostrar_usuario(usuario)
            self.view.mostrar_usuario_midder()
            self.view.mostrar_usuario_footer()
        else:
            if usuario == None:
                self.view.err('LA usuario NO EXISTE')
            else:
                self.view.err('PROBLEMA AL LEER LA usuario. REVISA')
            return
        self.view.msg('Ingresa los valores a modificar (vacio para dejarlo igual):')
        whole_vals = self.ask_usuario()
        fields, vals = self.update_lists(['Nombre','Email','Num','password'], whole_vals)
        vals.append(Id_Usuario)
        vals = tuple(vals)
        out = self.model.actualizar_usuario(fields, vals)
        if out == True:
            self.view.ok(Id_Usuario, 'actualizo')
        else:
            self.view.err('NO SE PUDO ACTUALIZAR EL USUARIO. REVISA.')
        return

    def eliminar_usuario(self):
        self.view.ask('ID usuario: ')
        Id_Usuario = input()
        count = self.model.eliminar_usuario(Id_Usuario)
        if count != 0:
               self.view.ok(Id_Usuario, 'borro')
        else: 
            if count == 0:
                self.view.err('EL USUARIO NO EXISTE')
            else:
                self.view.err('PROBLEMA AL BORRAR AL USUARIO. REVISA.')
        return


    '''ADMIN'''

    def ask_admin(self):
        self.view.ask('Nombre: ')
        Nombre = input()
        self.view.ask('Email: ')
        Email = input()
        self.view.ask('Num: ')
        Num = input()
        self.view.ask('password: '******'ID admin: ')
        Id_Administrador = input()
        admin = self.model.leer_admin(Id_Administrador)
        if type(admin) == tuple:
            self.view.mostrar_admin_header('Datos del admin'+Id_Administrador+' ')
            self.view.mostrar_admin(admin)
            self.view.mostrar_admin_midder()
            self.view.mostrar_admin_footer()
        else:
            if admin == None:
                self.view.err('El ADMINISTRADOR NO EXISTE')
            else: 
                self.view.err('PROBLEMA AL LEER EL ADMINISTRADOR. REVISA.')
        return   

    def leer_admins(self):
        admins = self.model.leer_admins()
        if type(admins) == list:
            self.view.mostrar_admin_header(' Todos los admins ')
            for admin in admins:
                self.view.mostrar_admin(admin)
                self.view.mostrar_admin_midder()
            self.view.mostrar_admin_footer()
        else:
            self.view.err('PROBLEMA AL LEER LOS ADMINISTRADOR. REVISA')
        return

    def actualizar_admin(self):
        self.view.ask('ID del admin: ')
        Id_Administrador = input()
        admin = self.model.leer_admin(Id_Administrador)
        if type(admin) == tuple:
            self.view.mostrar_admin_header(' identificador de la admin '+Id_Administrador+' ')
            self.view.mostrar_admin(admin)
            self.view.mostrar_admin_midder()
            self.view.mostrar_admin_footer()
        else:
            if admin == None:
                self.view.err('EL ADMINISTRADOR NO EXISTE')
            else:
                self.view.err('PROBLEMA AL LEER EL ADMINISTRADOR. REVISA')
            return
        self.view.msg('Ingresa los valores a modificar (vacio para dejarlo igual):')
        whole_vals = self.ask_admin()
        fields, vals = self.update_lists(['Nombre','Email','Num','password'], whole_vals)
        vals.append(Id_Administrador)
        vals = tuple(vals)
        out = self.model.actualizar_admin(fields, vals)
        if out == True:
            self.view.ok(Id_Administrador, 'actualizo')
        else:
            self.view.err('NO SE PUDO ACTUALIZAR EL ADMINISTRADOR. REVISA.')
        return

    def eliminar_admin(self):
        self.view.ask('ID admin: ')
        Id_Administrador = input()
        count = self.model.eliminar_admin(Id_Administrador)
        if count != 0:
               self.view.ok(Id_Administrador, 'borro')
        else: 
            if count == 0:
                self.view.err('EL ADMINISTRADOR NO EXISTE')
            else:
                self.view.err('PROBLEMA AL BORRAR AL ADMINISTRADOR. REVISA.')
        return


    """
    ************************************
    *   Controladores funciones  *
    ************************************
    """
    def CtrlFunciones(self):
        os.system ("cls") 
        o = '0'
        while o != '5':
            self.view.menu_funciones()
            self.view.option('5')
            o = input()
            if o == '1':
                self.crear_funcion()
            elif o == '2':
                self.leer_funciones()
            elif o == '3':
                self.actualizar_funcion()
            elif o == '4':
                self.eliminar_funcion()
            elif o == '5':
                self.view.end()
            else:
                self.view.not_valid_option()
        return

    def ask_funcion(self):
        self.view.ask('Id_Pelicula  : ')
        Id_Pelicula = input()
        self.view.ask('Id_Sala: ')
        Id_Sala = input()
        self.view.ask('fecha: ')
        fecha = input()
        self.view.ask('horario: ')
        horario = input()
        return[Id_Pelicula,Id_Sala,fecha,horario]

    def crear_funcion(self):
        print('Aregar funcion')
        self.view.ask('Id_Pelicula: ')
        Id_Pelicula = input()
        self.view.ask('Id_Sala: ')
        Id_Sala = input()
        self.view.ask('fecha: ')
        fecha = input()
        self.view.ask('horario: ')
        horario = input()


        result = self.model.crear_funcion(Id_Pelicula, Id_Sala, fecha, horario)
        if result == True:
            self.view.msg('funcion creada')
        else:
            self.view.err(result)

    def leer_funcion(self):
        self.view.ask('ID funcion: ')
        Id_Funcion = input()
        funcion = self.model.leer_funcion(Id_Funcion)
        if type(funcion) == tuple:
            self.view.mostrar_funcion_header('Datos de la funcion'+Id_Funcion+' ')
            self.view.mostrar_funcion(funcion)
            self.view.mostrar_funcion_midder()
            self.view.mostrar_funcion_footer()
        else:
            if funcion == None:
                self.view.err('LA FUNCION NO EXISTE')
            else: 
                self.view.err('PROBLEMA AL LEER LA FUNCION. REVISA.')
        return   

    def leer_funciones(self):
        funcions = self.model.leer_funciones()
        if type(funcions) == list:
            self.view.mostrar_funcion_header(' Todos las funciones ')
            for funcion in funcions:
                self.view.mostrar_funcion(funcion)
                self.view.mostrar_funcion_midder()
            self.view.mostrar_funcion_footer()
        else:
            self.view.err('PROBLEMA AL LEER LOS funcions. REVISA')
        return

    def actualizar_funcion(self):
        self.view.ask('ID de la funcion: ')
        Id_Funcion = input()
        funcion = self.model.leer_funcion(Id_Funcion)
        if type(funcion) == tuple:
            self.view.mostrar_funcion_header(' identificador de la funcion '+Id_Funcion+' ')
            self.view.mostrar_funcion(funcion)
            self.view.mostrar_funcion_midder()
            self.view.mostrar_funcion_footer()
        else:
            if funcion == None:
                self.view.err('LA funcion NO EXISTE')
            else:
                self.view.err('PROBLEMA AL LEER LA funcion. REVISA')
            return
        self.view.msg('Ingresa los valores a modificar (vacio para dejarlo igual):')
        whole_vals = self.ask_funcion()
        fields, vals = self.update_lists(['Id_Pelicula','Id_Sala','fecha','horario'], whole_vals)
        vals.append(Id_Funcion)
        vals = tuple(vals)
        out = self.model.actualizar_funcion(fields, vals)
        if out == True:
            self.view.ok(Id_Funcion, 'actualizo')
        else:
            self.view.err('NO SE PUDO ACTUALIZAR LA funcion. REVISA.')
        return

    def eliminar_funcion(self):
        self.view.ask('ID funcion: ')
        Id_Funcion = input()
        count = self.model.eliminar_funcion(Id_Funcion)
        if count != 0:
               self.view.ok(Id_Funcion, 'borro')
        else: 
            if count == 0:
                self.view.err('LA FUNCION NO EXISTE')
            else:
                self.view.err('PROBLEMA AL BORRAR LA FUNCION. REVISA.')
        return


    def horario_funcion(self):
        self.view.ask('Hora: (Formato de 24 horas: hh:mm:ss')
        horario = input()
        funcion = self.model.horario_funcion(horario)
        if type(funcion) == list:
            self.view.mostrar_funcion_header('Funciones con el horario '+horario+' ')
            for function in funcion:
                self.view.mostrar_funcion(function)
                self.view.mostrar_funcion_midder()
            self.view.mostrar_funcion_footer()
        else:
            self.view.err('PROBLEMA AL LEER LAS FUNCIONES. REVISA.')
        return

    def fecha_funcion(self):
        self.view.ask('Fecha: (AAAA-MM-DD)')
        fecha = input()
        funcion = self.model.fecha_funcion(fecha)
        if type(funcion) == list:
            self.view.mostrar_funcion_header('Funciones con la fecha '+fecha+' ')
            for function in funcion:
                self.view.mostrar_funcion(function)
                self.view.mostrar_funcion_midder()
            self.view.mostrar_funcion_footer()
        else:
            self.view.err('PROBLEMA AL LEER LAS FUNCIONES. REVISA.')
        return
    
    def pelicula_funcion(self):
        self.view.ask('Id de la pelicula: ')
        pelicula = input()
        funcion = self.model.pelicula_funcion(pelicula)
        if type(funcion) == list:
            self.view.mostrar_funcion_header('Funciones de la pelicula '+pelicula+' ')
            for function in funcion:
                self.view.mostrar_funcion(function)
                self.view.mostrar_funcion_midder()
            self.view.mostrar_funcion_footer()
        else:
            self.view.err('PROBLEMA AL LEER LAS FUNCIONES. REVISA.')
        return

    """
    ************************************
    *   Controladores peliculas  *
    ************************************
    """

    def CtrlPeliculas(self):
        os.system ("cls") 
        o = '0'
        while o != '5':
            self.view.menu_peliculas()
            self.view.option('5')
            o = input()
            if o == '1':
                self.crear_pelicula()
            elif o == '2':
                self.leer_peliculas()
            elif o == '3':
                self.actualizar_pelicula()
            elif o == '4':
                self.eliminar_pelicula()
            elif o == '5':
                self.view.end()
            else:
                self.view.not_valid_option()
        return

    def ask_pelicula(self):
        self.view.ask('Titulo: ')
        Titulo = input()
        self.view.ask('Genero: ')
        Genero = input()
        self.view.ask('Duracion: ')
        Duracion = input()
        self.view.ask('Idioma: ')
        Idioma = input()
        return[Titulo,Genero,Duracion,Idioma]

    def crear_pelicula(self):
        print('Aregar pelicula')
        self.view.ask('Titulo: ')
        Titulo = input()
        self.view.ask('Genero: ')
        Genero = input()
        self.view.ask('Duracion: ')
        Duracion = input()
        self.view.ask('Idioma: ')
        Idioma = input()

        result = self.model.crear_pelicula(Titulo, Genero, Duracion, Idioma)
        if result == True:
            self.view.msg('pelicula creada')
        else:
            self.view.err(result)

    def leer_pelicula(self):
        self.view.ask('ID pelicula: ')
        Id_Pelicula = input()
        pelicula = self.model.leer_pelicula(Id_Pelicula)
        if type(pelicula) == tuple:
            self.view.mostrar_pelicula_header('Datos de la pelicula'+Id_Pelicula+' ')
            self.view.mostrar_pelicula(pelicula)
            self.view.mostrar_pelicula_midder()
            self.view.mostrar_pelicula_footer()
        else:
            if pelicula == None:
                self.view.err('LA PELICULA NO EXISTE')
            else: 
                self.view.err('PROBLEMA AL LEER LA PELICULA. REVISA.')
        return   

    def leer_peliculas(self):
        peliculas = self.model.leer_peliculas()
        if type(peliculas) == list:
            self.view.mostrar_pelicula_header(' Todos las peliculas ')
            for pelicula in peliculas:
                self.view.mostrar_pelicula(pelicula)
                self.view.mostrar_pelicula_midder()
            self.view.mostrar_pelicula_footer()
        else:
            self.view.err('PROBLEMA AL LEER LOS peliculas. REVISA')
        return

    def actualizar_pelicula(self):
        self.view.ask('ID de la pelicula: ')
        Id_Pelicula = input()
        pelicula = self.model.leer_pelicula(Id_Pelicula)
        if type(pelicula) == tuple:
            self.view.mostrar_pelicula_header(' identificador de la pelicula '+Id_Pelicula+' ')
            self.view.mostrar_pelicula(pelicula)
            self.view.mostrar_pelicula_midder()
            self.view.mostrar_pelicula_footer()
        else:
            if pelicula == None:
                self.view.err('LA PELICULA NO EXISTE')
            else:
                self.view.err('PROBLEMA AL LEER LA PELICULA. REVISA')
            return
        self.view.msg('Ingresa los valores a modificar (vacio para dejarlo igual):')
        whole_vals = self.ask_pelicula()
        fields, vals = self.update_lists(['Titulo','Genero','Duracion','Idioma'], whole_vals)
        vals.append(Id_Pelicula)
        vals = tuple(vals)
        out = self.model.actualizar_pelicula(fields, vals)
        if out == True:
            self.view.ok(Id_Pelicula, 'actualizo')
        else:
            self.view.err('NO SE PUDO ACTUALIZAR LA PELICULA. REVISA.')
        return

    def eliminar_pelicula(self):
        self.view.ask('ID plicula: ')
        Id_Pelicula = input()
        count = self.model.eliminar_pelicula(Id_Pelicula)
        if count != 0:
               self.view.ok(Id_Pelicula, 'borro')
        else: 
            if count == 0:
                self.view.err('LA PELICULA NO EXISTE')
            else:
                self.view.err('PROBLEMA AL BORRAR LA PELICULA. REVISA.')
        return

    """
    ************************************
    *   Controladores Butaca  *
    ************************************
    """

    def CtrlButaca(self):
        os.system ("cls") 
        o = '0'
        while o != '5':
            self.view.menu_butaca()
            self.view.option('5')
            o = input()
            if o == '1':
                self.crear_butaca()
            elif o == '2':
                self.leer_butacas()
            elif o == '3':
                self.actualizar_butaca()
            elif o == '4':
                self.eliminar_butaca()
            elif o == '5':
                self.view.end()
            else:
                self.view.not_valid_option()
        return

    def ask_butaca(self):
        self.view.ask('ID: (ingrese el numero del asiento ) ')
        Id_Butaca = input()
        self.view.ask('Estado: (0 = disponible, 1 = ocupado) ')
        Estado = input()
        return[Id_Butaca,Estado]

    def crear_butaca(self):
        print('Aregar butaca')
        self.view.ask('Id_Butaca: (ingrese el numero del asiento) ')
        Id_Butaca = input()
        self.view.ask('Estado: (0 = disponible, 1 = ocupado) ')
        Estado = input()

        result = self.model.crear_butaca(Id_Butaca, Estado)
        if result == True:
            self.view.msg('butaca creada')
        else:
            self.view.err('Butaca ya creada.')

    def leer_butaca(self):
        self.view.ask('ID butaca: ')
        Id_butaca = input()
        butaca = self.model.leer_butaca(Id_butaca)
        if type(butaca) == tuple:
            self.view.mostrar_butaca_header('Datos de la butaca'+Id_butaca+' ')
            self.view.mostrar_butaca(butaca)
            self.view.mostrar_butaca_midder()
            self.view.mostrar_butaca_footer()
        else:
            if butaca == None:
                self.view.err('LA butaca NO EXISTE')
            else: 
                self.view.err('PROBLEMA AL LEER LA butaca. REVISA.')
        return   

    def leer_butacas(self):
        butacas = self.model.leer_butacas()
        if type(butacas) == list:
            self.view.mostrar_butaca_header(' Todos las butacas ')
            for butaca in butacas:
                self.view.mostrar_butaca(butaca)
                self.view.mostrar_butaca_midder()
            self.view.mostrar_butaca_footer()
        else:
            self.view.err('PROBLEMA AL LEER LOS butacas. REVISA')
        return

    def actualizar_butaca(self):
        self.view.ask('ID de la butaca: ')
        Id_butaca = input()
        butaca = self.model.leer_butaca(Id_butaca)
        if type(butaca) == tuple:
            self.view.mostrar_butaca_header(' identificador de la butaca '+Id_butaca+' ')
            self.view.mostrar_butaca(butaca)
            self.view.mostrar_butaca_midder()
            self.view.mostrar_butaca_footer()
        else:
            if butaca == None:
                self.view.err('LA butaca NO EXISTE')
            else:
                self.view.err('PROBLEMA AL LEER LA butaca. REVISA')
            return
        self.view.msg('Ingresa los valores a modificar (vacio para dejarlo igual):')
        whole_vals = self.ask_butaca()
        fields, vals = self.update_lists(['Id_Butaca','Estado','Duracion','Idioma'], whole_vals)
        vals.append(Id_butaca)
        vals = tuple(vals)
        out = self.model.actualizar_butaca(fields, vals)
        if out == True:
            self.view.ok(Id_butaca, 'actualizo')
        else:
            self.view.err('NO SE PUDO ACTUALIZAR LA butaca. REVISA.')
        return

    def eliminar_butaca(self):
        self.view.ask('ID butaca: ')
        Id_butaca = input()
        count = self.model.eliminar_butaca(Id_butaca)
        if count != 0:
               self.view.ok(Id_butaca, 'borro')
        else: 
            if count == 0:
                self.view.err('LA butaca NO EXISTE')
            else:
                self.view.err('PROBLEMA AL BORRAR LA butaca. REVISA.')
        return

    """
    ************************************
    *        Controladores salas       *
    ************************************
    """

    def Ctrlsalas(self):
        os.system ("cls") 
        o = '0'
        while o != '5':
            self.view.menu_salas()
            self.view.option('5')
            o = input()
            if o == '1':
                self.crear_sala()
            elif o == '2':
                self.leer_salas()
            elif o == '3':
                self.actualizar_Sala()
            elif o == '4':
                self.eliminar_Sala()
            elif o == '5':
                self.view.end()
            else:
                self.view.not_valid_option()
        return

    def ask_Sala(self):
        self.view.ask('Asientos: ')
        Asientos = input()
        self.view.ask('Tipo: ')
        Tipo = input()
        return[Asientos,Tipo]

    def crear_sala(self):
        print('Asientos en la sala')
        self.view.ask('Asientos: ')
        Asientos = input()
        print('Tipo  de la sala')
        self.view.ask('Tipo: ')
        Tipo = input()

        result = self.model.crear_Sala(Asientos, Tipo)
        if result == True:
            self.view.msg('sala creada')
        else:
            self.view.err(result)

    def leer_Sala(self):
        self.view.ask('ID sala: ')
        Id_Sala = input()
        sala = self.model.leer_Sala(Id_Sala)
        if type(sala) == tuple:
            self.view.mostrar_sala_header('Datos de la sala'+Id_Sala+' ')
            self.view.mostrar_sala(sala)
            self.view.mostrar_sala_midder()
            self.view.mostrar_sala_footer()
        else:
            if sala == None:
                self.view.err('LA SALA NO EXISTE')
            else: 
                self.view.err('PROBLEMA AL LEER LA SALA. REVISA.')
        return   

    def leer_salas(self):
        salas = self.model.leer_Salas()
        if type(salas) == list:
            self.view.mostrar_sala_header(' Todos las salas ')
            for sala in salas:
                self.view.mostrar_sala(sala)
                self.view.mostrar_sala_midder()
            self.view.mostrar_sala_footer()
        else:
            self.view.err('PROBLEMA AL LEER LOS salas. REVISA')
        return

    def actualizar_Sala(self):
        self.view.ask('ID de la sala: ')
        Id_Sala = input()
        sala = self.model.leer_Sala(Id_Sala)
        if type(sala) == tuple:
            self.view.mostrar_sala_header(' identificador de la sala '+Id_Sala+' ')
            self.view.mostrar_sala(sala)
            self.view.mostrar_sala_midder()
            self.view.mostrar_sala_footer()
        else:
            if sala == None:
                self.view.err('LA SALA NO EXISTE')
            else:
                self.view.err('PROBLEMA AL LEER LA SALA. REVISA')
            return
        self.view.msg('Ingresa los valores a modificar (vacio para dejarlo igual):')
        whole_vals = self.ask_Sala()
        fields, vals = self.update_lists(['Butaca','Tipo'], whole_vals)
        vals.append(Id_Sala)
        vals = tuple(vals)
        out = self.model.actualizar_Sala(fields, vals)
        if out == True:
            self.view.ok(Id_Sala, 'actualizo')
        else:
            self.view.err('NO SE PUDO ACTUALIZAR LA SALA. REVISA.')
        return

    def eliminar_Sala(self):
        self.view.ask('ID plicula: ')
        Id_Sala = input()
        count = self.model.eliminar_Sala(Id_Sala)
        if count != 0:
               self.view.ok(Id_Sala, 'borro')
        else: 
            if count == 0:
                self.view.err('LA SALA NO EXISTE')
            else:
                self.view.err('PROBLEMA AL BORRAR LA SALA. REVISA.')
        return

    """
    ************************************
    *   Controladores Tikets  *
    ************************************
    """

    def CtrlTicket(self):
        os.system ("cls") 
        o = '0'
        while o != '5':
            self.view.menu_Ticket()
            self.view.option('5')
            o = input()
            if o == '1':
                self.crear_Ticket()
            elif o == '2':
                self.leer_Tickets()
            elif o == '3':
                self.actualizar_Ticket()
            elif o == '4':
                self.eliminar_Ticket()
            elif o == '5':
                self.view.end()
            else:
                self.view.not_valid_option()
        return

    def ask_Ticket(self):
        self.view.ask('Id_Funcion  : ')
        Id_Funcion = input()
        self.view.ask('Id_Usuario: ')
        Id_Usuario = input()
        self.view.ask('Id_Butaca: ')
        Id_Butaca = input()
        return[Id_Funcion,Id_Usuario,Id_Butaca]

    def crear_Ticket(self):
        print('Aregar Ticket')
        self.view.ask('Id_Funcion: ')
        Id_Funcion = input()
        self.view.ask('Id_Usuario: ')
        Id_Usuario = input()
        self.view.ask('Id_Butaca: ')
        Id_Butaca = input()

        result = self.model.crear_Ticket(Id_Funcion, Id_Usuario, Id_Butaca)
        if result == True:
            self.view.msg('Ticket creado')
            print("creado")

    def crear_Ticket_usuario(self):
        print('Aregar Ticket')
        self.view.ask('Id_Funcion: ')
        Id_Funcion = input()
        Id_Usuario = self.sesion
        self.view.ask('Id_Butaca: ')
        Id_Butaca = input()

        result = self.model.crear_Ticket(Id_Funcion, Id_Usuario, Id_Butaca)
        if result == True:
            self.view.msg('Ticket creado')
            print("creado")

    def leer_Tickets_usuario(self):
        Id_Usuario = self.sesion
        tickets = self.model.leer_Tickets_usuario(Id_Usuario)
        if type(tickets) == list:
            self.view.mostrar_tickets_header('Tickets del usuario: ')
            for function in tickets:
                self.view.mostrar_tickets(function)
                self.view.mostrar_tickets_midder()
            self.view.mostrar_tickets_footer()
        else:
            self.view.err('PROBLEMA AL LEER LAS ticketsES. REVISA.')
        return

    def leer_Ticket(self):
        self.view.ask('ID Ticket: ')
        Id_Ticket = input()
        Ticket = self.model.leer_Ticket(Id_Ticket)
        if type(Ticket) == tuple:
            self.view.mostrar_Ticket_header('Datos de la Ticket'+Id_Ticket+' ')
            self.view.mostrar_Ticket(Ticket)
            self.view.mostrar_Ticket_midder()
            self.view.mostrar_Ticket_footer()
        else:
            if Ticket == None:
                self.view.err('LA Ticket NO EXISTE')
            else: 
                self.view.err('PROBLEMA AL LEER LA Ticket. REVISA.')
        return   

    def leer_Tickets(self):
        Tickets = self.model.leer_Tickets()
        if type(Tickets) == list:
            self.view.mostrar_Ticket_header(' Todos las Ticketes ')
            for Ticket in Tickets:
                self.view.mostrar_Ticket(Ticket)
                self.view.mostrar_Ticket_midder()
            self.view.mostrar_Ticket_footer()
        else:
            self.view.err('PROBLEMA AL LEER LOS Tickets. REVISA')
        return

    def actualizar_Ticket(self):
        self.view.ask('ID de la Ticket: ')
        Id_Ticket = input()
        Ticket = self.model.leer_Ticket(Id_Ticket)
        if type(Ticket) == tuple:
            self.view.mostrar_Ticket_header(' identificador de la Ticket '+Id_Ticket+' ')
            self.view.mostrar_Ticket(Ticket)
            self.view.mostrar_Ticket_midder()
            self.view.mostrar_Ticket_footer()
        else:
            if Ticket == None:
                self.view.err('LA Ticket NO EXISTE')
            else:
                self.view.err('PROBLEMA AL LEER LA Ticket. REVISA')
            return
        self.view.msg('Ingresa los valores a modificar (vacio para dejarlo igual):')
        whole_vals = self.ask_Ticket()
        fields, vals = self.update_lists(['Id_Funcion','Id_Usuario','Id_Butaca'], whole_vals)
        vals.append(Id_Ticket)
        vals = tuple(vals)
        out = self.model.actualizar_Ticket(fields, vals)
        if out == True:
            self.view.ok(Id_Ticket, 'actualizo')
        else:
            self.view.err('NO SE PUDO ACTUALIZAR LA Ticket. REVISA.')
        return

    def eliminar_Ticket(self):
        self.view.ask('ID del ticket: ')
        Id_Ticket = input()
        count = self.model.eliminar_Ticket(Id_Ticket)
        if count != 0:
               self.view.ok(Id_Ticket, 'borro')
        else: 
            if count == 0:
                self.view.err('LA Ticket NO EXISTE')
            else:
                self.view.err('PROBLEMA AL BORRAR EL TICKET. REVISA.')
        return
コード例 #23
0
from View.view import View  # import user view to access methods of View class
from Controller.controller import Controller
from Model.model import Model


# This is main class to control all the other classes and login as admin or user
class Main:
    def __init__(self):
        pass

    def user_or_admin(self):
        user_login = input("Login As (admin/user): ")
        if user_login == "admin":  # if user input admin, it opens as admin panel and input user, it opens as user panel
            control_obj.admin_validate_control()

        elif user_login == "user":  # for normal user
            control_obj.user_control()

        else:
            print('Enter "admin" for Admin and "user" for Normal User')


main_obj = Main()
view_obj = View()
control_obj = Controller()
model_obj = Model()
main_obj.user_or_admin()
コード例 #24
0
class Controller:
    def __init__(self):
        self.model = RecipeList()
        self.view = View()

        self.frame_select = self.view.frames["FrameSelect"]
        self.frame_search = self.view.frames["FrameSearch"]
        self.frame_add = self.view.frames["FrameAdd"]
        self.frame_edit = self.view.frames["FrameEdit"]
        self.bind_buttons()

    def run(self):
        self.view.configure_gui()
        self.change_frame_to_search()
        self.view.start_gui()

    def change_frame_to_search(self):
        self.frame_search.tkraise()

    def change_frame_to_add(self):
        self.frame_add.tkraise()

    def change_frame_to_select(self):
        recipe_name = self.view.get_selected_name(
            self.frame_search.tree_view_recipes)
        if recipe_name != "":
            recipe = self.model.read_recipe(recipe_name)
            self.frame_select.set_select_frame_info(
                recipe.name, recipe.short_desc, recipe.desc,
                recipe.ingredients.ingredient_list, recipe.inst,
                recipe.meal_type, recipe.prep_time, recipe.calories,
                recipe.img)
            self.frame_select.tkraise()

    def change_frame_to_edit(self, recipe_name):
        recipe = self.model.read_recipe(recipe_name)
        self.frame_edit.set_frame_info(recipe.name, recipe.short_desc,
                                       recipe.desc,
                                       recipe.ingredients.ingredient_list,
                                       recipe.inst, recipe.meal_type,
                                       recipe.prep_time, recipe.calories,
                                       recipe.img)
        self.frame_edit.tkraise()

    def add_recipe(self, entries, tree_view, text_view_desc, text_view_inst,
                   img_path):
        fields_dict = self.view.get_data_from_entries(entries)
        ing_list = self.view.get_data_from_tree_view(tree_view)
        desc_text = self.view.get_data_from_text_view(text_view_desc)
        inst_text = self.view.get_data_from_text_view(text_view_inst)
        i = IngredientList()
        for ing in ing_list:
            i.add_ingredient(name=ing[0], count=int(ing[1]), unit=ing[2])

        self.model.add_recipe(name=fields_dict['Name:'],
                              short_desc=fields_dict['Short desc:'],
                              meal_type=fields_dict['Type:'],
                              calories=int(fields_dict['Calories:']),
                              prep_time=int(fields_dict['Prep time:']),
                              desc=desc_text,
                              inst=inst_text,
                              ingredients=i,
                              img=img_path)

    def delete_recipe(self, name):
        self.model.delete_recipe(name)
        self.change_frame_to_search()
        self.view.clear_tree_view(self.frame_search.tree_view_recipes)

    def update_recipe(self, name, entries, tree_view, text_view_desc,
                      text_view_inst, img_path):
        fields_dict = self.view.get_data_from_entries(entries)
        ing_list = self.view.get_data_from_tree_view(tree_view)
        desc_text = self.view.get_data_from_text_view(text_view_desc)
        inst_text = self.view.get_data_from_text_view(text_view_inst)
        i = IngredientList()
        for ing in ing_list:
            i.add_ingredient(name=ing[0], count=int(ing[1]), unit=ing[2])
        self.model.edit_recipe(name_old=name,
                               name_new=fields_dict['Name:'],
                               short_desc=fields_dict['Short desc:'],
                               meal_type=fields_dict['Type:'],
                               calories=int(fields_dict['Calories:']),
                               prep_time=int(fields_dict['Prep time:']),
                               desc=desc_text,
                               inst=inst_text,
                               ingredients=i,
                               img=img_path)
        self.change_frame_to_search()
        self.view.clear_tree_view(self.frame_search.tree_view_recipes)

    def find_filtered_recipes(self, entries, tree_view):
        fields_dict = self.view.get_data_from_entries(entries)
        filtered_recipes = RecipeList()
        filtered_recipes.recipe_list = self.model.filter_recipe_list(
            part_of_name=fields_dict['Part of name:'],
            meal_type=fields_dict['Meal type:'],
            min_cal=fields_dict['Min calories:'],
            max_cal=fields_dict['Max calories:'],
            prep_time_min=fields_dict['Prep time min:'],
            prep_time_max=fields_dict['Prep time max:'])
        self.view.insert_to_recipe_tree(tree_view,
                                        filtered_recipes.recipe_list)

    def save_recipe_list(self):
        self.model.save_recipe_list("../Model/data")

    def load_recipe_list(self):
        self.model = self.model.load_recipe_list("../Model/data")

    def bind_buttons(self):
        self.frame_search.button_add.bind(
            '<Button-1>', lambda event: self.change_frame_to_add())
        self.frame_search.button_search.bind(
            '<Button-1>',
            lambda event, e=self.frame_search.entries: self.
            find_filtered_recipes(e, self.frame_search.tree_view_recipes))
        self.frame_search.button_select.bind(
            '<Button-1>', lambda event: self.change_frame_to_select())

        self.frame_select.button_close.bind(
            '<Button-1>', lambda event: self.change_frame_to_search())
        self.frame_select.button_edit.bind(
            '<Button-1>', lambda event: self.change_frame_to_edit(
                self.frame_select.label_name.cget("text")))
        self.frame_select.button_delete.bind(
            '<Button-1>', lambda event: self.delete_recipe(
                self.frame_select.label_name.cget("text")))

        self.frame_add.button_close.bind(
            '<Button-1>', lambda event: self.change_frame_to_search())
        self.frame_add.button_add_recipe.bind(
            '<Button-1>',
            lambda event, e=self.frame_add.entries_recipes, tv=self.frame_add.
            tree_view_ingredients, t1=self.frame_add.text_field_desc, t2=self
            .frame_add.text_field_inst: self.add_recipe(
                e, tv, t1, t2, self.frame_add.img_path))

        self.frame_edit.button_close.bind(
            '<Button-1>', lambda event: self.change_frame_to_search())
        self.frame_edit.button_add_recipe.bind(
            '<Button-1>',
            lambda event, e=self.frame_edit.entries_recipes, tv=self.frame_edit
            .tree_view_ingredients, t1=self.frame_edit.text_field_desc, t2=self
            .frame_edit.text_field_inst: self.update_recipe(
                self.frame_select.label_name.cget("text"), e, tv, t1, t2, self.
                frame_edit.img_path))
        self.view.menu.add_command(label="Save", command=self.save_recipe_list)
        self.view.menu.add_command(label="Load", command=self.load_recipe_list)
コード例 #25
0
 def __init__(self):
     self.window = Tk()
     self.model = Model1()
     self.view = View(self.window)
コード例 #26
0
ファイル: test_python.py プロジェクト: Ulisescp97/SI
from Model.contact import Contact
from Model.model import Model
from View.view import View

print('Hello world!')

c = Contact('German', 'Neftali', '*****@*****.**', '4721005730')
print(c.email)

m = Model()
m.create_a_contact('Nefta', 'gonzalez', '*****@*****.**', '1245')
m.create_a_contact('Javier', 'escuela', '*****@*****.**', '145')
#m.create_a_contact('Oscar', 'Dominguez', '*****@*****.**', '12345')
print(m.read_all_contacts())
#print(m.read_a_contact('Javier', 'Lopez'))

m.update_a_contact('Javier', 'escuela', 'Nefta', 'gonzalez',
                   '*****@*****.**', '1545')
all_c = m.read_all_contacts()
contact = m.read_a_contact('Nefta', 'gonzalez')
print(m.read_all_contacts())
v = View()
v.show_a_contact(contact)

v.show_all_contacts(all_c)