Bug deleting lots of rows #283
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>
```
bug
label
Don't allow deletion of current or next track
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?