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 +
+++ openlp/plugins/songs/forms/songreviewwidget.py 2019-06-19 00:46:27 +
@@ -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