def view_genre(self, msg):
         conn = sqlite3.connect('movies.db')
         c = conn.cursor()
         genre = (self.text,)
         for row in c.execute('SELECT * FROM films WHERE genre=?', genre):
             li.text = f'Genere selezionato: {self.text}'
             body_table = jp.Tbody(style='overflow:auto;', a=movie_table)
             row_table = jp.Tr(style='')
             div_table1 = jp.Td(style='width: 447px;', a=row_table)
             div_title_film = jp.Div(style='cursor: pointer;', text=row[0], a=div_table1, click=open_film)
             div_table2 = jp.Td(style='width: 183px;', a=row_table)
             div_director_film = jp.Div(style='cursor: pointer;', text=row[8], a=div_table2, click=open_film)
             div_table3 = jp.Td(style='width: 100px;', a=row_table)
             div_date_film = jp.Div(style='cursor: pointer;', text=row[3], a=div_table3, click=open_film)
             div_title_film.additional_properties = row
             div_director_film.additional_properties = row
             div_date_film.additional_properties = row
             row_table.additional_properties = {'Titolo': row[0], 'Regista': row[8], 'Data di uscita': row[3]}
             body_table.add(row_table)

         conn.commit()

         conn.close()
         button_sort_director.additional_properties = [self.text, 'Regista']
         button_sort_title.additional_properties = [self.text, 'Titolo']
         li2.set_classes('block')
         div1.remove_component(div2)
         movie_table.add(body_table)
         div1.add(div_sort_buttons)
         div1.add(movie_table)
 def sort_by_director(self, msg):
     movie_table.delete_components()
     body_table_sorted = jp.Tbody(style='overflow:auto;')
     with open('movies.json', encoding="utf8") as f:
         data = json.load(f)
         data.sort(key=get_key_director)
     for i in data:
         if i['Major_Genre'] == self.additional_properties[0]:
             li.text = f'Genere selezionato: {self.additional_properties[0]}'
             row_table = jp.Tr(style='')
             div_table1 = jp.Td(style='width: 447px;', a=row_table)
             div_title_film = jp.Div(style='cursor: pointer;',
                                     text=i['Titolo'],
                                     a=div_table1,
                                     click=open_film)
             div_table2 = jp.Td(style='width: 183px;', a=row_table)
             div_director_film = jp.Div(style='cursor: pointer;',
                                        text=i['Regista'],
                                        a=div_table2,
                                        click=open_film)
             div_table3 = jp.Td(style='width: 100px;', a=row_table)
             div_date_film = jp.Div(style='cursor: pointer;',
                                    text=i['Data di uscita'],
                                    a=div_table3,
                                    click=open_film)
             div_title_film.additional_properties = [i]
             div_director_film.additional_properties = [i]
             div_date_film.additional_properties = [i]
             body_table_sorted.add(row_table)
     movie_table.add(body_table_sorted)
        def view_genre(self, msg):

            with open('movies.json', encoding="utf8") as f:
                data = json.load(f)

            for i in data:
                if i['Major_Genre'] == self.text:
                    li.text = f'Genere selezionato: {self.text}'
                    body_table = jp.Tbody(style='overflow:auto;',
                                          a=movie_table)
                    row_table = jp.Tr(style='')
                    div_table1 = jp.Td(style='width: 447px;', a=row_table)
                    div_title_film = jp.Div(style='cursor: pointer;',
                                            text=i['Titolo'],
                                            a=div_table1,
                                            click=open_film)
                    div_table2 = jp.Td(style='width: 183px;', a=row_table)
                    div_director_film = jp.Div(style='cursor: pointer;',
                                               text=i['Regista'],
                                               a=div_table2,
                                               click=open_film)
                    div_table3 = jp.Td(style='width: 100px;', a=row_table)
                    div_date_film = jp.Div(style='cursor: pointer;',
                                           text=i['Data di uscita'],
                                           a=div_table3,
                                           click=open_film)
                    div_title_film.additional_properties = [i]
                    div_director_film.additional_properties = [i]
                    div_date_film.additional_properties = [i]
                    row_table.additional_properties = {
                        'Titolo': i['Titolo'],
                        'Regista': i['Regista'],
                        'Data di uscita': i['Data di uscita']
                    }
                    body_table.add(row_table)
            button_sort_director.additional_properties = [self.text, 'Regista']
            button_sort_title.additional_properties = [self.text, 'Titolo']
            li2.set_classes('block')
            div1.remove_component(div2)
            movie_table.add(body_table)
            div1.add(div_sort_buttons)
            div1.add(movie_table)
 def sort_by_director(self, msg):
     movie_table.delete_components()
     body_table_sorted = jp.Tbody(style='overflow:auto;')
     conn = sqlite3.connect('movies.db')
     c = conn.cursor()
     for row in c.execute('SELECT * FROM films ORDER BY director'):
         if row[7] == self.additional_properties[0]:
             li.text = f'Genere selezionato: {self.additional_properties[0]}'
             row_table = jp.Tr(style='')
             div_table1 = jp.Td(style='width: 447px;', a=row_table)
             div_title_film = jp.Div(style='cursor: pointer;', text=row[0], a=div_table1, click=open_film)
             div_table2 = jp.Td(style='width: 183px;', a=row_table)
             div_director_film = jp.Div(style='cursor: pointer;', text=row[8], a=div_table2, click=open_film)
             div_table3 = jp.Td(style='width: 100px;', a=row_table)
             div_date_film = jp.Div(style='cursor: pointer;', text=row[3], a=div_table3,
                                    click=open_film)
             div_title_film.additional_properties = row
             div_director_film.additional_properties = row
             div_date_film.additional_properties = row
             body_table_sorted.add(row_table)
     movie_table.add(body_table_sorted)