openlp-core team mailing list archive
-
openlp-core team
-
Mailing list archive
-
Message #34209
[Merge] lp:~johnmfl/openlp/delete_temp_songs_add_fields_dupsongreview into lp:openlp
Johnthan has proposed merging lp:~johnmfl/openlp/delete_temp_songs_add_fields_dupsongreview into lp:openlp.
Requested reviews:
OpenLP Core (openlp-core)
Related bugs:
Bug #1832874 in OpenLP: "Temporary songs appear in the 'Delete Duplicate songs' wizard"
https://bugs.launchpad.net/openlp/+bug/1832874
Bug #1832876 in OpenLP: "Please add songbook to the 'Delete Duplicate Songs' Wizard"
https://bugs.launchpad.net/openlp/+bug/1832876
For more details, see:
https://code.launchpad.net/~johnmfl/openlp/delete_temp_songs_add_fields_dupsongreview/+merge/369012
#1832874
changed songsplugin.py from `is true` to `== True` to force the deletion of
temporary song records in the database on closing OpenLP. This may not be
proper python, but the database appears to need the `== True` to function
correctly.
#1832876
Change songreviewwidget.py to add the `last modified` date and the
`theme` used by the song. The bug lists 3 fields that would help
determine what song to delete...the user only wanted the last modified
date. I added the theme and songbook name, but the songbook name
was not added in this update...If I am the only person that wants the
songbook name it isn't worth the time to add.
--
Your team OpenLP Core is requested to review the proposed merge of lp:~johnmfl/openlp/delete_temp_songs_add_fields_dupsongreview into lp:openlp.
=== modified file 'openlp/plugins/songs/forms/songreviewwidget.py'
--- openlp/plugins/songs/forms/songreviewwidget.py 2019-04-13 13:00:22 +0000
+++ openlp/plugins/songs/forms/songreviewwidget.py 2019-06-19 00:46:27 +0000
@@ -25,10 +25,11 @@
from PyQt5 import QtCore, QtWidgets
from openlp.core.ui.icons import UiIcons
-from openlp.plugins.songs.lib import VerseType
+from openlp.plugins.songs.lib import VerseType, db
from openlp.plugins.songs.lib.openlyricsxml import SongXML
+
class SongReviewWidget(QtWidgets.QWidget):
"""
A widget representing a song on the duplicate song review page.
@@ -88,52 +89,72 @@
self.song_alternate_title_content.setText(self.song.alternate_title)
self.song_alternate_title_content.setWordWrap(True)
self.song_info_form_layout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.song_alternate_title_content)
+ # Add last modified date.
+ self.song_last_modified_label = QtWidgets.QLabel(self)
+ self.song_last_modified_label.setObjectName('last_modified_label')
+ self.song_last_modified_label.setText('Last Modified:')
+ self.song_info_form_layout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.song_last_modified_label)
+ self.song_last_modified_content = QtWidgets.QLabel(self)
+ self.song_last_modified_content.setObjectName('last_modified_content')
+ self.song_last_modified_content.setText(self.song.last_modified.strftime("%Y-%m-%d %H:%M:%S"))
+ self.song_last_modified_content.setWordWrap(True)
+ self.song_info_form_layout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.song_last_modified_content)
+ # Add Theme widget.
+ self.song_theme_label = QtWidgets.QLabel(self)
+ self.song_theme_label.setObjectName('song_theme_label')
+ self.song_theme_label.setText('Theme:')
+ self.song_info_form_layout.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.song_theme_label)
+ self.song_theme_content = QtWidgets.QLabel(self)
+ self.song_theme_content.setObjectName('song_theme_content')
+ self.song_theme_content.setText(self.song.theme_name)
+ self.song_theme_content.setWordWrap(True)
+ self.song_info_form_layout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.song_theme_content)
# Add CCLI number widget.
self.song_ccli_number_label = QtWidgets.QLabel(self)
self.song_ccli_number_label.setObjectName('song_ccli_number_label')
- self.song_info_form_layout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.song_ccli_number_label)
+ self.song_info_form_layout.setWidget(4, QtWidgets.QFormLayout.LabelRole, self.song_ccli_number_label)
self.song_ccli_number_content = QtWidgets.QLabel(self)
self.song_ccli_number_content.setObjectName('song_ccli_number_content')
self.song_ccli_number_content.setText(self.song.ccli_number)
self.song_ccli_number_content.setWordWrap(True)
- self.song_info_form_layout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.song_ccli_number_content)
+ self.song_info_form_layout.setWidget(4, QtWidgets.QFormLayout.FieldRole, self.song_ccli_number_content)
# Add copyright widget.
self.song_copyright_label = QtWidgets.QLabel(self)
self.song_copyright_label.setObjectName('song_copyright_label')
- self.song_info_form_layout.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.song_copyright_label)
+ self.song_info_form_layout.setWidget(5, QtWidgets.QFormLayout.LabelRole, self.song_copyright_label)
self.song_copyright_content = QtWidgets.QLabel(self)
self.song_copyright_content.setObjectName('song_copyright_content')
self.song_copyright_content.setWordWrap(True)
self.song_copyright_content.setText(self.song.copyright)
- self.song_info_form_layout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.song_copyright_content)
+ self.song_info_form_layout.setWidget(5, QtWidgets.QFormLayout.FieldRole, self.song_copyright_content)
# Add comments widget.
self.song_comments_label = QtWidgets.QLabel(self)
self.song_comments_label.setObjectName('song_comments_label')
- self.song_info_form_layout.setWidget(4, QtWidgets.QFormLayout.LabelRole, self.song_comments_label)
+ self.song_info_form_layout.setWidget(6, QtWidgets.QFormLayout.LabelRole, self.song_comments_label)
self.song_comments_content = QtWidgets.QLabel(self)
self.song_comments_content.setObjectName('song_comments_content')
self.song_comments_content.setText(self.song.comments)
self.song_comments_content.setWordWrap(True)
- self.song_info_form_layout.setWidget(4, QtWidgets.QFormLayout.FieldRole, self.song_comments_content)
+ self.song_info_form_layout.setWidget(6, QtWidgets.QFormLayout.FieldRole, self.song_comments_content)
# Add authors widget.
self.song_authors_label = QtWidgets.QLabel(self)
self.song_authors_label.setObjectName('song_authors_label')
- self.song_info_form_layout.setWidget(5, QtWidgets.QFormLayout.LabelRole, self.song_authors_label)
+ self.song_info_form_layout.setWidget(7, QtWidgets.QFormLayout.LabelRole, self.song_authors_label)
self.song_authors_content = QtWidgets.QLabel(self)
self.song_authors_content.setObjectName('song_authors_content')
self.song_authors_content.setWordWrap(True)
authors_text = ', '.join([author.display_name for author in self.song.authors])
self.song_authors_content.setText(authors_text)
- self.song_info_form_layout.setWidget(5, QtWidgets.QFormLayout.FieldRole, self.song_authors_content)
+ self.song_info_form_layout.setWidget(7, QtWidgets.QFormLayout.FieldRole, self.song_authors_content)
# Add verse order widget.
self.song_verse_order_label = QtWidgets.QLabel(self)
self.song_verse_order_label.setObjectName('song_verse_order_label')
- self.song_info_form_layout.setWidget(6, QtWidgets.QFormLayout.LabelRole, self.song_verse_order_label)
+ self.song_info_form_layout.setWidget(8, QtWidgets.QFormLayout.LabelRole, self.song_verse_order_label)
self.song_verse_order_content = QtWidgets.QLabel(self)
self.song_verse_order_content.setObjectName('song_verse_order_content')
self.song_verse_order_content.setText(self.song.verse_order)
self.song_verse_order_content.setWordWrap(True)
- self.song_info_form_layout.setWidget(6, QtWidgets.QFormLayout.FieldRole, self.song_verse_order_content)
+ self.song_info_form_layout.setWidget(8, QtWidgets.QFormLayout.FieldRole, self.song_verse_order_content)
self.song_group_box_layout.addLayout(self.song_info_form_layout)
# Add verses widget.
self.song_info_verse_list_widget = QtWidgets.QTableWidget(self.song_group_box)
=== modified file 'openlp/plugins/songs/songsplugin.py'
--- openlp/plugins/songs/songsplugin.py 2019-06-10 20:10:38 +0000
+++ openlp/plugins/songs/songsplugin.py 2019-06-19 00:46:27 +0000
@@ -423,7 +423,7 @@
"""
Remove temporary songs from the database
"""
- songs = self.manager.get_all_objects(Song, Song.temporary is True)
+ songs = self.manager.get_all_objects(Song, Song.temporary == True)
for song in songs:
self.manager.delete_object(Song, song.id)
Follow ups