diff --git a/openlp/plugins/songusage/forms/songusagedeletedialog.py b/openlp/plugins/songusage/forms/songusagedeletedialog.py
index bf7e4ded5..01597a790 100644
--- a/openlp/plugins/songusage/forms/songusagedeletedialog.py
+++ b/openlp/plugins/songusage/forms/songusagedeletedialog.py
@@ -34,7 +34,15 @@ from openlp.core.lib.ui import create_button_box
class Ui_SongUsageDeleteDialog(object):
+ """
+ The Song Usage delete dialog
+ """
def setupUi(self, song_usage_delete_dialog):
+ """
+ Setup the UI
+
+ :param song_usage_delete_dialog:
+ """
song_usage_delete_dialog.setObjectName('song_usage_delete_dialog')
song_usage_delete_dialog.resize(291, 243)
self.vertical_layout = QtGui.QVBoxLayout(song_usage_delete_dialog)
@@ -55,8 +63,12 @@ class Ui_SongUsageDeleteDialog(object):
self.retranslateUi(song_usage_delete_dialog)
def retranslateUi(self, song_usage_delete_dialog):
+ """
+ Retranslate the strings
+ :param song_usage_delete_dialog:
+ """
song_usage_delete_dialog.setWindowTitle(
translate('SongUsagePlugin.SongUsageDeleteForm', 'Delete Song Usage Data'))
self.delete_label.setText(
translate('SongUsagePlugin.SongUsageDeleteForm', 'Select the date up to which the song usage data '
- 'should be deleted. All data recorded before this date will be permanently deleted.'))
+ 'should be deleted. \nAll data recorded before this date will be permanently deleted.'))
diff --git a/openlp/plugins/songusage/forms/songusagedeleteform.py b/openlp/plugins/songusage/forms/songusagedeleteform.py
index 19d137e1c..c3446cdd3 100644
--- a/openlp/plugins/songusage/forms/songusagedeleteform.py
+++ b/openlp/plugins/songusage/forms/songusagedeleteform.py
@@ -48,19 +48,25 @@ class SongUsageDeleteForm(QtGui.QDialog, Ui_SongUsageDeleteDialog):
self.button_box.clicked.connect(self.on_button_box_clicked)
def on_button_box_clicked(self, button):
+ """
+ The button event has been triggered
+
+ :param button: The button pressed
+ """
if self.button_box.standardButton(button) == QtGui.QDialogButtonBox.Ok:
- ret = QtGui.QMessageBox.question(self,
+ ret = QtGui.QMessageBox.question(
+ self,
translate('SongUsagePlugin.SongUsageDeleteForm', 'Delete Selected Song Usage Events?'),
translate('SongUsagePlugin.SongUsageDeleteForm',
- 'Are you sure you want to delete selected Song Usage data?'),
+ 'Are you sure you want to delete selected Song Usage data?'),
QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Yes | QtGui.QMessageBox.No), QtGui.QMessageBox.No)
if ret == QtGui.QMessageBox.Yes:
delete_date = self.delete_calendar.selectedDate().toPyDate()
self.manager.delete_all_objects(SongUsageItem, SongUsageItem.usagedate <= delete_date)
self.main_window.information_message(
translate('SongUsagePlugin.SongUsageDeleteForm', 'Deletion Successful'),
- translate(
- 'SongUsagePlugin.SongUsageDeleteForm', 'All requested data has been deleted successfully.')
+ translate('SongUsagePlugin.SongUsageDeleteForm',
+ 'All requested data has been deleted successfully.')
)
self.accept()
else:
diff --git a/openlp/plugins/songusage/forms/songusagedetaildialog.py b/openlp/plugins/songusage/forms/songusagedetaildialog.py
index 2f92000f0..ede5075a0 100644
--- a/openlp/plugins/songusage/forms/songusagedetaildialog.py
+++ b/openlp/plugins/songusage/forms/songusagedetaildialog.py
@@ -35,7 +35,15 @@ from openlp.core.lib.ui import create_button_box
class Ui_SongUsageDetailDialog(object):
+ """
+ The Song Usage report details
+ """
def setupUi(self, song_usage_detail_dialog):
+ """
+ Set up the UI
+
+ :param song_usage_detail_dialog:
+ """
song_usage_detail_dialog.setObjectName('song_usage_detail_dialog')
song_usage_detail_dialog.resize(609, 413)
self.vertical_layout = QtGui.QVBoxLayout(song_usage_detail_dialog)
@@ -82,6 +90,11 @@ class Ui_SongUsageDetailDialog(object):
self.save_file_push_button.clicked.connect(song_usage_detail_dialog.define_output_location)
def retranslateUi(self, song_usage_detail_dialog):
+ """
+ Retranslate the UI
+
+ :param song_usage_detail_dialog:
+ """
song_usage_detail_dialog.setWindowTitle(
translate('SongUsagePlugin.SongUsageDetailForm', 'Song Usage Extraction'))
self.date_range_group_box.setTitle(translate('SongUsagePlugin.SongUsageDetailForm', 'Select Date Range'))
diff --git a/openlp/plugins/songusage/forms/songusagedetailform.py b/openlp/plugins/songusage/forms/songusagedetailform.py
index dcbf0bae8..2e96a4eb6 100644
--- a/openlp/plugins/songusage/forms/songusagedetailform.py
+++ b/openlp/plugins/songusage/forms/songusagedetailform.py
@@ -66,8 +66,8 @@ class SongUsageDetailForm(QtGui.QDialog, Ui_SongUsageDetailDialog):
"""
Triggered when the Directory selection button is clicked
"""
- path = QtGui.QFileDialog.getExistingDirectory(self,
- translate('SongUsagePlugin.SongUsageDetailForm', 'Output File Location'),
+ path = QtGui.QFileDialog.getExistingDirectory(
+ self, translate('SongUsagePlugin.SongUsageDetailForm', 'Output File Location'),
Settings().value(self.plugin.settings_section + '/last directory export'))
if path:
Settings().setValue(self.plugin.settings_section + '/last directory export', path)
@@ -83,7 +83,7 @@ class SongUsageDetailForm(QtGui.QDialog, Ui_SongUsageDetailDialog):
self.main_window.error_message(
translate('SongUsagePlugin.SongUsageDetailForm', 'Output Path Not Selected'),
translate('SongUsagePlugin.SongUsageDetailForm', 'You have not set a valid output location for your'
- ' song usage report. Please select an existing path on your computer.')
+ ' song usage report. \nPlease select an existing path on your computer.')
)
return
check_directory_exists(path)
@@ -109,8 +109,8 @@ class SongUsageDetailForm(QtGui.QDialog, Ui_SongUsageDetailDialog):
file_handle.write(record.encode('utf-8'))
self.main_window.information_message(
translate('SongUsagePlugin.SongUsageDetailForm', 'Report Creation'),
- translate('SongUsagePlugin.SongUsageDetailForm', 'Report \n%s \n'
- 'has been successfully created. ') % report_file_name
+ translate('SongUsagePlugin.SongUsageDetailForm',
+ 'Report \n%s \nhas been successfully created. ') % report_file_name
)
except IOError:
log.exception('Failed to write out song usage records')
diff --git a/openlp/plugins/songusage/lib/db.py b/openlp/plugins/songusage/lib/db.py
index 816d06f2c..b7b9c6801 100644
--- a/openlp/plugins/songusage/lib/db.py
+++ b/openlp/plugins/songusage/lib/db.py
@@ -48,21 +48,20 @@ def init_schema(url):
"""
Setup the songusage database connection and initialise the database schema
- ``url``
- The database to setup
+ :param url: The database to setup
"""
session, metadata = init_db(url)
songusage_table = Table('songusage_data', metadata,
- Column('id', types.Integer(), primary_key=True),
- Column('usagedate', types.Date, index=True, nullable=False),
- Column('usagetime', types.Time, index=True, nullable=False),
- Column('title', types.Unicode(255), nullable=False),
- Column('authors', types.Unicode(255), nullable=False),
- Column('copyright', types.Unicode(255)),
- Column('ccl_number', types.Unicode(65)),
- Column('plugin_name', types.Unicode(20)),
- Column('source', types.Unicode(10))
+ Column('id', types.Integer(), primary_key=True),
+ Column('usagedate', types.Date, index=True, nullable=False),
+ Column('usagetime', types.Time, index=True, nullable=False),
+ Column('title', types.Unicode(255), nullable=False),
+ Column('authors', types.Unicode(255), nullable=False),
+ Column('copyright', types.Unicode(255)),
+ Column('ccl_number', types.Unicode(65)),
+ Column('plugin_name', types.Unicode(20)),
+ Column('source', types.Unicode(10))
)
mapper(SongUsageItem, songusage_table)
diff --git a/openlp/plugins/songusage/songusageplugin.py b/openlp/plugins/songusage/songusageplugin.py
index 491e97b64..4d38de6dd 100644
--- a/openlp/plugins/songusage/songusageplugin.py
+++ b/openlp/plugins/songusage/songusageplugin.py
@@ -58,6 +58,9 @@ __default_settings__ = {
class SongUsagePlugin(Plugin):
+ """
+ Song Usage Plugin class
+ """
log.info('SongUsage Plugin loaded')
def __init__(self):
@@ -79,31 +82,33 @@ class SongUsagePlugin(Plugin):
"""
Give the SongUsage plugin the opportunity to add items to the **Tools** menu.
- ``tools_menu``
- The actual **Tools** menu item, so that your actions can use it as their parent.
+ :param tools_menu: The actual **Tools** menu item, so that your actions can use it as their parent.
"""
log.info('add tools menu')
- self.toolsMenu = tools_menu
+ self.tools_menu = tools_menu
self.song_usage_menu = QtGui.QMenu(tools_menu)
self.song_usage_menu.setObjectName('song_usage_menu')
self.song_usage_menu.setTitle(translate('SongUsagePlugin', '&Song Usage Tracking'))
# SongUsage Delete
- self.song_usage_delete = create_action(tools_menu, 'songUsageDelete',
+ self.song_usage_delete = create_action(
+ tools_menu, 'songUsageDelete',
text=translate('SongUsagePlugin', '&Delete Tracking Data'),
statustip=translate('SongUsagePlugin', 'Delete song usage data up to a specified date.'),
triggers=self.on_song_usage_delete)
# SongUsage Report
- self.song_usage_report = create_action(tools_menu, 'songUsageReport',
+ self.song_usage_report = create_action(
+ tools_menu, 'songUsageReport',
text=translate('SongUsagePlugin', '&Extract Tracking Data'),
statustip=translate('SongUsagePlugin', 'Generate a report on song usage.'),
triggers=self.on_song_usage_report)
# SongUsage activation
- self.song_usage_status = create_action(tools_menu, 'songUsageStatus',
+ self.song_usage_status = create_action(
+ tools_menu, 'songUsageStatus',
text=translate('SongUsagePlugin', 'Toggle Tracking'),
statustip=translate('SongUsagePlugin', 'Toggle the tracking of song usage.'), checked=False,
can_shortcuts=True, triggers=self.toggle_song_usage_state)
# Add Menus together
- self.toolsMenu.addAction(self.song_usage_menu.menuAction())
+ self.tools_menu.addAction(self.song_usage_menu.menuAction())
self.song_usage_menu.addAction(self.song_usage_status)
self.song_usage_menu.addSeparator()
self.song_usage_menu.addAction(self.song_usage_report)
@@ -117,7 +122,7 @@ class SongUsagePlugin(Plugin):
self.song_usage_active_button.hide()
# Signals and slots
QtCore.QObject.connect(self.song_usage_status, QtCore.SIGNAL('visibilityChanged(bool)'),
- self.song_usage_status.setChecked)
+ self.song_usage_status.setChecked)
self.song_usage_active_button.toggled.connect(self.toggle_song_usage_state)
self.song_usage_menu.menuAction().setVisible(False)
@@ -165,8 +170,7 @@ class SongUsagePlugin(Plugin):
def set_button_state(self):
"""
- Keep buttons inline. Turn of signals to stop dead loop but we need the
- button and check box set correctly.
+ Keep buttons inline. Turn of signals to stop dead loop but we need the button and check box set correctly.
"""
self.song_usage_active_button.blockSignals(True)
self.song_usage_status.blockSignals(True)
@@ -186,12 +190,16 @@ class SongUsagePlugin(Plugin):
def display_song_usage(self, item):
"""
Song Usage for which has been displayed
+
+ :param item: Item displayed
"""
self._add_song_usage(translate('SongUsagePlugin', 'display'), item)
def print_song_usage(self, item):
"""
Song Usage for which has been printed
+
+ :param item: Item printed
"""
self._add_song_usage(translate('SongUsagePlugin', 'printed'), item)
@@ -210,15 +218,28 @@ class SongUsagePlugin(Plugin):
self.manager.save_object(song_usage_item)
def on_song_usage_delete(self):
+ """
+ Request the delete form to be displayed
+ """
self.song_usage_delete_form.exec_()
def on_song_usage_report(self):
+ """
+ Display the song usage report generator screen
+
+ """
self.song_usage_detail_form.initialise()
self.song_usage_detail_form.exec_()
def about(self):
+ """
+ The plugin about text
+
+ :return: the text to be displayed
+ """
about_text = translate('SongUsagePlugin',
- 'SongUsage Plugin
This plugin tracks the usage of songs in services.')
+ 'SongUsage Plugin
'
+ 'This plugin tracks the usage of songs in services.')
return about_text
def set_plugin_text_strings(self):