← Back to team overview

openlp-core team mailing list archive

[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/369061

#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 20:37:13 +0000
@@ -88,52 +88,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 20:37:13 +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) # noqa: E712
         for song in songs:
             self.manager.delete_object(Song, song.id)
 


Follow ups