Bug deleting lots of rows #283

Closed
opened 2025-02-27 21:11:12 +00:00 by kae · 0 comments
Owner
[21:08:43] musicmuster.py.play_next:1341 Play: Sailing to Philadelphia

Traceback (most recent call last):
  File "/home/kae/mm/app/playlists.py", line 601, in <lambda>
    self._add_context_menu("Delete row", lambda: self._delete_rows())
                                                 ^^^^^^^^^^^^^^^^^^^
  File "/home/kae/mm/app/playlists.py", line 784, in _delete_rows
    base_model.delete_rows(self.selected_model_row_numbers())
  File "/home/kae/mm/app/playlistmodel.py", line 385, in delete_rows
    self.reset_track_sequence_row_numbers()
  File "/home/kae/mm/app/playlistmodel.py", line 1155, in reset_track_sequence_row_numbers
    ts.update_playlist_and_row(session)
  File "/home/kae/mm/app/music_manager.py", line 714, in update_playlist_and_row
    raise ApplicationError(f"(Can't retrieve PlaylistRows entry, {self=}")
classes.ApplicationError: (Can't retrieve PlaylistRows entry, self=<RowAndTrack(playlist_id=183, row_number=23, playlistrow_id=570731, note=, track_id=6177>

File "/home/kae/mm/app/playlists.py", line 601, in <lambda>
    597  self.menu.addSeparator()
    598  
    599  # Delete row
    600  if not this_is_current_row and not this_is_next_row:
--> 601      self._add_context_menu("Delete row", lambda: self._delete_rows())
    602  
    ..................................................
     self._add_context_menu = <method 'PlaylistTab._add_context_menu' of <playlists.Playli
                               stTab object at 0x7f5e9ef4b7f0> playlists.py:507>
     self._delete_rows = <method 'PlaylistTab._delete_rows' of <playlists.PlaylistTab
                           object at 0x7f5e9ef4b7f0> playlists.py:762>
    ..................................................

File "/home/kae/mm/app/playlists.py", line 784, in _delete_rows
    762  def _delete_rows(self) -> None:
 (...)
    780          return
    781  
    782      base_model = self.get_base_model()
    783  
--> 784      base_model.delete_rows(self.selected_model_row_numbers())
    785      self.clear_selection()
    ..................................................
     self = <playlists.PlaylistTab object at 0x7f5e9ef4b7f0>
     base_model = <PlaylistModel: playlist_id=183, 151 rows>
     self.get_base_model = <method 'PlaylistTab.get_base_model' of <playlists.PlaylistT
                            ab object at 0x7f5e9ef4b7f0> playlists.py:787>
     base_model.delete_rows = <method 'PlaylistModel.delete_rows' of <PlaylistModel: playl
                               ist_id=183, 151 rows> playlistmodel.py:359>
     self.selected_model_row_numbers = <method 'PlaylistTab.selected_model_row_numbers' of <playlis
                                        ts.PlaylistTab object at 0x7f5e9ef4b7f0> playlists.py:1022>
     self.clear_selection = <method 'PlaylistTab.clear_selection' of <playlists.Playlist
                             Tab object at 0x7f5e9ef4b7f0> playlists.py:683>
    ..................................................

File "/home/kae/mm/app/playlistmodel.py", line 385, in delete_rows
    359  def delete_rows(self, row_numbers: list[int]) -> None:
 (...)
    381              self.refresh_data(session)
    382              session.commit()
    383              super().endRemoveRows()
    384  
--> 385      self.reset_track_sequence_row_numbers()
    ..................................................
     self = <PlaylistModel: playlist_id=183, 151 rows>
     row_numbers = [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
                     ]
     self.refresh_data = <method 'PlaylistModel.refresh_data' of <PlaylistModel: play
                          list_id=183, 151 rows> playlistmodel.py:1065>
     session = <sqlalchemy.orm.session.Session object at 0x7f5e9375fad0>
     self.reset_track_sequence_row_numbers = <method 'PlaylistModel.reset_track_sequence_row_numbers' of 
                                              <PlaylistModel: playlist_id=183, 151 rows> playlistmodel.py:
                                              1134>
    ..................................................

File "/home/kae/mm/app/playlistmodel.py", line 1155, in reset_track_sequence_row_numbers
    1134  def reset_track_sequence_row_numbers(self) -> None:
 (...)
    1151              track_sequence.current,
    1152              track_sequence.previous,
    1153          ]:
    1154              if ts:
--> 1155                  ts.update_playlist_and_row(session)
    1156          session.commit()
    ..................................................
     self = <PlaylistModel: playlist_id=183, 151 rows>
     track_sequence.current = <RowAndTrack(playlist_id=183, row_number=21, playlistrow_id=
                               570764, note=Pete, track_id=5806>
     track_sequence.previous = <RowAndTrack(playlist_id=183, row_number=20, playlistrow_id=
                                570769, note=Garry, track_id=6175>
     ts = <RowAndTrack(playlist_id=183, row_number=23, playlistrow_id=
           570731, note=, track_id=6177>
     ts.update_playlist_and_row = <method 'RowAndTrack.update_playlist_and_row' of <RowAndTrac
                                   k(playlist_id=183, row_number=23, playlistrow_id=570731, not
                                   e=, track_id=6177> music_manager.py:707>
     session = <sqlalchemy.orm.session.Session object at 0x7f5e937b8410>
    ..................................................

File "/home/kae/mm/app/music_manager.py", line 714, in update_playlist_and_row
    707  def update_playlist_and_row(self, session: Session) -> None:
 (...)
    710      """
    711  
    712      plr = session.get(PlaylistRows, self.playlistrow_id)
    713      if not plr:
--> 714          raise ApplicationError(f"(Can't retrieve PlaylistRows entry, {self=}")
    715      self.playlist_id = plr.playlist_id
    ..................................................
     self = <RowAndTrack(playlist_id=183, row_number=23, playlistrow_id=
             570731, note=, track_id=6177>
     session = <sqlalchemy.orm.session.Session object at 0x7f5e937b8410>
     plr = None
     self.playlistrow_id = 570731
     self.playlist_id = 183
     plr.playlist_id = # AttributeError
          plr = None
    ..................................................

---- (full traceback above) ----
File "/home/kae/mm/app/playlists.py", line 601, in <lambda>
    self._add_context_menu("Delete row", lambda: self._delete_rows())
File "/home/kae/mm/app/playlists.py", line 784, in _delete_rows
    base_model.delete_rows(self.selected_model_row_numbers())
File "/home/kae/mm/app/playlistmodel.py", line 385, in delete_rows
    self.reset_track_sequence_row_numbers()
File "/home/kae/mm/app/playlistmodel.py", line 1155, in reset_track_sequence_row_numbers
    ts.update_playlist_and_row(session)
File "/home/kae/mm/app/music_manager.py", line 714, in update_playlist_and_row
    raise ApplicationError(f"(Can't retrieve PlaylistRows entry, {self=}")

ApplicationError: (Can't retrieve PlaylistRows entry, self=<RowAndTrack(playlist_id=183, row_number=23, playlistrow_id=570731, note=, track_id=6177>



``` [21:08:43] musicmuster.py.play_next:1341 Play: Sailing to Philadelphia Traceback (most recent call last): File "/home/kae/mm/app/playlists.py", line 601, in <lambda> self._add_context_menu("Delete row", lambda: self._delete_rows()) ^^^^^^^^^^^^^^^^^^^ File "/home/kae/mm/app/playlists.py", line 784, in _delete_rows base_model.delete_rows(self.selected_model_row_numbers()) File "/home/kae/mm/app/playlistmodel.py", line 385, in delete_rows self.reset_track_sequence_row_numbers() File "/home/kae/mm/app/playlistmodel.py", line 1155, in reset_track_sequence_row_numbers ts.update_playlist_and_row(session) File "/home/kae/mm/app/music_manager.py", line 714, in update_playlist_and_row raise ApplicationError(f"(Can't retrieve PlaylistRows entry, {self=}") classes.ApplicationError: (Can't retrieve PlaylistRows entry, self=<RowAndTrack(playlist_id=183, row_number=23, playlistrow_id=570731, note=, track_id=6177> File "/home/kae/mm/app/playlists.py", line 601, in <lambda> 597 self.menu.addSeparator() 598 599 # Delete row 600 if not this_is_current_row and not this_is_next_row: --> 601 self._add_context_menu("Delete row", lambda: self._delete_rows()) 602 .................................................. self._add_context_menu = <method 'PlaylistTab._add_context_menu' of <playlists.Playli stTab object at 0x7f5e9ef4b7f0> playlists.py:507> self._delete_rows = <method 'PlaylistTab._delete_rows' of <playlists.PlaylistTab object at 0x7f5e9ef4b7f0> playlists.py:762> .................................................. File "/home/kae/mm/app/playlists.py", line 784, in _delete_rows 762 def _delete_rows(self) -> None: (...) 780 return 781 782 base_model = self.get_base_model() 783 --> 784 base_model.delete_rows(self.selected_model_row_numbers()) 785 self.clear_selection() .................................................. self = <playlists.PlaylistTab object at 0x7f5e9ef4b7f0> base_model = <PlaylistModel: playlist_id=183, 151 rows> self.get_base_model = <method 'PlaylistTab.get_base_model' of <playlists.PlaylistT ab object at 0x7f5e9ef4b7f0> playlists.py:787> base_model.delete_rows = <method 'PlaylistModel.delete_rows' of <PlaylistModel: playl ist_id=183, 151 rows> playlistmodel.py:359> self.selected_model_row_numbers = <method 'PlaylistTab.selected_model_row_numbers' of <playlis ts.PlaylistTab object at 0x7f5e9ef4b7f0> playlists.py:1022> self.clear_selection = <method 'PlaylistTab.clear_selection' of <playlists.Playlist Tab object at 0x7f5e9ef4b7f0> playlists.py:683> .................................................. File "/home/kae/mm/app/playlistmodel.py", line 385, in delete_rows 359 def delete_rows(self, row_numbers: list[int]) -> None: (...) 381 self.refresh_data(session) 382 session.commit() 383 super().endRemoveRows() 384 --> 385 self.reset_track_sequence_row_numbers() .................................................. self = <PlaylistModel: playlist_id=183, 151 rows> row_numbers = [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, ] self.refresh_data = <method 'PlaylistModel.refresh_data' of <PlaylistModel: play list_id=183, 151 rows> playlistmodel.py:1065> session = <sqlalchemy.orm.session.Session object at 0x7f5e9375fad0> self.reset_track_sequence_row_numbers = <method 'PlaylistModel.reset_track_sequence_row_numbers' of <PlaylistModel: playlist_id=183, 151 rows> playlistmodel.py: 1134> .................................................. File "/home/kae/mm/app/playlistmodel.py", line 1155, in reset_track_sequence_row_numbers 1134 def reset_track_sequence_row_numbers(self) -> None: (...) 1151 track_sequence.current, 1152 track_sequence.previous, 1153 ]: 1154 if ts: --> 1155 ts.update_playlist_and_row(session) 1156 session.commit() .................................................. self = <PlaylistModel: playlist_id=183, 151 rows> track_sequence.current = <RowAndTrack(playlist_id=183, row_number=21, playlistrow_id= 570764, note=Pete, track_id=5806> track_sequence.previous = <RowAndTrack(playlist_id=183, row_number=20, playlistrow_id= 570769, note=Garry, track_id=6175> ts = <RowAndTrack(playlist_id=183, row_number=23, playlistrow_id= 570731, note=, track_id=6177> ts.update_playlist_and_row = <method 'RowAndTrack.update_playlist_and_row' of <RowAndTrac k(playlist_id=183, row_number=23, playlistrow_id=570731, not e=, track_id=6177> music_manager.py:707> session = <sqlalchemy.orm.session.Session object at 0x7f5e937b8410> .................................................. File "/home/kae/mm/app/music_manager.py", line 714, in update_playlist_and_row 707 def update_playlist_and_row(self, session: Session) -> None: (...) 710 """ 711 712 plr = session.get(PlaylistRows, self.playlistrow_id) 713 if not plr: --> 714 raise ApplicationError(f"(Can't retrieve PlaylistRows entry, {self=}") 715 self.playlist_id = plr.playlist_id .................................................. self = <RowAndTrack(playlist_id=183, row_number=23, playlistrow_id= 570731, note=, track_id=6177> session = <sqlalchemy.orm.session.Session object at 0x7f5e937b8410> plr = None self.playlistrow_id = 570731 self.playlist_id = 183 plr.playlist_id = # AttributeError plr = None .................................................. ---- (full traceback above) ---- File "/home/kae/mm/app/playlists.py", line 601, in <lambda> self._add_context_menu("Delete row", lambda: self._delete_rows()) File "/home/kae/mm/app/playlists.py", line 784, in _delete_rows base_model.delete_rows(self.selected_model_row_numbers()) File "/home/kae/mm/app/playlistmodel.py", line 385, in delete_rows self.reset_track_sequence_row_numbers() File "/home/kae/mm/app/playlistmodel.py", line 1155, in reset_track_sequence_row_numbers ts.update_playlist_and_row(session) File "/home/kae/mm/app/music_manager.py", line 714, in update_playlist_and_row raise ApplicationError(f"(Can't retrieve PlaylistRows entry, {self=}") ApplicationError: (Can't retrieve PlaylistRows entry, self=<RowAndTrack(playlist_id=183, row_number=23, playlistrow_id=570731, note=, track_id=6177> ```
kae added the
bug
label 2025-02-27 21:11:20 +00:00
kae closed this issue 2025-02-28 10:08:03 +00:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: kae/musicmuster#283
No description provided.