Add debugging for Servie editing and fix edit_id bug

This commit is contained in:
Tim Bentley 2010-11-20 18:14:43 +00:00
parent 948cb57d59
commit f900980eef
6 changed files with 21 additions and 9 deletions

View File

@ -514,7 +514,7 @@ class MediaManagerItem(QtGui.QWidget):
self.parent.serviceManager.addServiceItem(service_item, self.parent.serviceManager.addServiceItem(service_item,
replace=True) replace=True)
else: else:
#Turn off the remote edit update message indicator # Turn off the remote edit update message indicator
QtGui.QMessageBox.information(self, QtGui.QMessageBox.information(self,
translate('OpenLP.MediaManagerItem', translate('OpenLP.MediaManagerItem',
'Invalid Service Item'), 'Invalid Service Item'),

View File

@ -100,6 +100,7 @@ class ServiceItem(object):
self.bg_image_bytes = None self.bg_image_bytes = None
self.search_string = u'' self.search_string = u''
self.data_string = u'' self.data_string = u''
self.edit_id = None
self._new_item() self._new_item()
def _new_item(self): def _new_item(self):

View File

@ -308,7 +308,7 @@ class ServiceManager(QtGui.QWidget):
self.maintainAction.setVisible(False) self.maintainAction.setVisible(False)
self.notesAction.setVisible(False) self.notesAction.setVisible(False)
if serviceItem[u'service_item'].is_capable(ItemCapabilities.AllowsEdit)\ if serviceItem[u'service_item'].is_capable(ItemCapabilities.AllowsEdit)\
and hasattr(serviceItem[u'service_item'], u'editId'): and serviceItem[u'service_item'].edit_id:
self.editAction.setVisible(True) self.editAction.setVisible(True)
if serviceItem[u'service_item']\ if serviceItem[u'service_item']\
.is_capable(ItemCapabilities.AllowsMaintain): .is_capable(ItemCapabilities.AllowsMaintain):
@ -864,7 +864,7 @@ class ServiceManager(QtGui.QWidget):
editId, uuid = message.split(u':') editId, uuid = message.split(u':')
for item in self.serviceItems: for item in self.serviceItems:
if item[u'service_item']._uuid == uuid: if item[u'service_item']._uuid == uuid:
item[u'service_item'].editId = editId item[u'service_item'].edit_id = editId
def replaceServiceItem(self, newItem): def replaceServiceItem(self, newItem):
""" """
@ -873,7 +873,7 @@ class ServiceManager(QtGui.QWidget):
""" """
newItem.render() newItem.render()
for itemcount, item in enumerate(self.serviceItems): for itemcount, item in enumerate(self.serviceItems):
if item[u'service_item'].editId == newItem.editId and \ if item[u'service_item'].edit_id == newItem.edit_id and \
item[u'service_item'].name == newItem.name: item[u'service_item'].name == newItem.name:
newItem.merge(item[u'service_item']) newItem.merge(item[u'service_item'])
item[u'service_item'] = newItem item[u'service_item'] = newItem
@ -983,7 +983,7 @@ class ServiceManager(QtGui.QWidget):
.is_capable(ItemCapabilities.AllowsEdit): .is_capable(ItemCapabilities.AllowsEdit):
Receiver.send_message(u'%s_edit' % Receiver.send_message(u'%s_edit' %
self.serviceItems[item][u'service_item'].name.lower(), u'L:%s' % self.serviceItems[item][u'service_item'].name.lower(), u'L:%s' %
self.serviceItems[item][u'service_item'].editId ) self.serviceItems[item][u'service_item'].edit_id )
def findServiceItem(self): def findServiceItem(self):
""" """

View File

@ -942,7 +942,7 @@ class SlideController(QtGui.QWidget):
""" """
self.songEdit = True self.songEdit = True
Receiver.send_message(u'%s_edit' % self.serviceItem.name.lower(), Receiver.send_message(u'%s_edit' % self.serviceItem.name.lower(),
u'P:%s' % self.serviceItem.editId) u'P:%s' % self.serviceItem.edit_id)
def onGoLive(self): def onGoLive(self):
""" """

View File

@ -165,7 +165,7 @@ class CustomMediaItem(MediaManagerItem):
customSlide = self.parent.manager.get_object(CustomSlide, item_id) customSlide = self.parent.manager.get_object(CustomSlide, item_id)
title = customSlide.title title = customSlide.title
credit = customSlide.credits credit = customSlide.credits
service_item.editId = item_id service_item.edit_id = item_id
theme = customSlide.theme_name theme = customSlide.theme_name
if theme: if theme:
service_item.theme = theme service_item.theme = theme

View File

@ -192,6 +192,7 @@ class SongMediaItem(MediaManagerItem):
Handle the exit from the edit dialog and trigger remote updates Handle the exit from the edit dialog and trigger remote updates
of songs of songs
""" """
log.debug(u'onSongListLoad')
# Called to redisplay the song list screen edit from a search # Called to redisplay the song list screen edit from a search
# or from the exit of the Song edit dialog. If remote editing is active # or from the exit of the Song edit dialog. If remote editing is active
# Trigger it and clean up so it will not update again. # Trigger it and clean up so it will not update again.
@ -259,6 +260,7 @@ class SongMediaItem(MediaManagerItem):
Receiver.send_message(u'songs_load_list') Receiver.send_message(u'songs_load_list')
def onNewClick(self): def onNewClick(self):
log.debug(u'onNewClick')
self.edit_song_form.newSong() self.edit_song_form.newSong()
self.edit_song_form.exec_() self.edit_song_form.exec_()
@ -266,6 +268,7 @@ class SongMediaItem(MediaManagerItem):
self.song_maintenance_form.exec_() self.song_maintenance_form.exec_()
def onRemoteEditClear(self): def onRemoteEditClear(self):
log.debug(u'onRemoteEditClear')
self.remoteTriggered = None self.remoteTriggered = None
self.remoteSong = -1 self.remoteSong = -1
@ -275,6 +278,7 @@ class SongMediaItem(MediaManagerItem):
the Song Id in the payload along with an indicator to say which the Song Id in the payload along with an indicator to say which
type of display is required. type of display is required.
""" """
log.debug(u'onRemoteEdit %s' % songid)
fields = songid.split(u':') fields = songid.split(u':')
valid = self.parent.manager.get_object(Song, fields[1]) valid = self.parent.manager.get_object(Song, fields[1])
if valid: if valid:
@ -287,6 +291,7 @@ class SongMediaItem(MediaManagerItem):
""" """
Edit a song Edit a song
""" """
log.debug(u'onEditClick')
if check_item_selected(self.listView, if check_item_selected(self.listView,
translate('SongsPlugin.MediaItem', translate('SongsPlugin.MediaItem',
'You must select an item to edit.')): 'You must select an item to edit.')):
@ -324,6 +329,7 @@ class SongMediaItem(MediaManagerItem):
self.onSearchTextButtonClick() self.onSearchTextButtonClick()
def generateSlideData(self, service_item, item=None): def generateSlideData(self, service_item, item=None):
log.debug(u'generateSlideData (%s:%s)' % (service_item, item))
raw_footer = [] raw_footer = []
author_list = u'' author_list = u''
author_audit = [] author_audit = []
@ -345,7 +351,7 @@ class SongMediaItem(MediaManagerItem):
service_item.add_capability(ItemCapabilities.AddIfNewItem) service_item.add_capability(ItemCapabilities.AddIfNewItem)
song = self.parent.manager.get_object(Song, item_id) song = self.parent.manager.get_object(Song, item_id)
service_item.theme = song.theme_name service_item.theme = song.theme_name
service_item.editId = item_id service_item.edit_id = item_id
if song.lyrics.startswith(u'<?xml version='): if song.lyrics.startswith(u'<?xml version='):
songXML = SongXMLParser(song.lyrics) songXML = SongXMLParser(song.lyrics)
verseList = songXML.get_verses() verseList = songXML.get_verses()
@ -357,7 +363,7 @@ class SongMediaItem(MediaManagerItem):
service_item.add_from_text( service_item.add_from_text(
verse[1][:30], unicode(verse[1]), verseTag) verse[1][:30], unicode(verse[1]), verseTag)
else: else:
#Loop through the verse list and expand the song accordingly. # Loop through the verse list and expand the song accordingly.
for order in song.verse_order.upper().split(u' '): for order in song.verse_order.upper().split(u' '):
if len(order) == 0: if len(order) == 0:
break break
@ -397,6 +403,7 @@ class SongMediaItem(MediaManagerItem):
""" """
Triggered by a song being loaded by the service item Triggered by a song being loaded by the service item
""" """
log.debug(u'serviceLoad')
if item.data_string: if item.data_string:
search_results = self.parent.manager.get_all_objects(Song, search_results = self.parent.manager.get_all_objects(Song,
Song.search_title.like(u'%' + Song.search_title.like(u'%' +
@ -408,9 +415,13 @@ class SongMediaItem(MediaManagerItem):
if search_results: if search_results:
for song in search_results: for song in search_results:
count = 0 count = 0
# temp debug to find why service items do not edit
log.debug(u'author list %s' % author_list)
for author in song.authors: for author in song.authors:
log.debug(u'author %s' % author.display_name)
if author.display_name in author_list: if author.display_name in author_list:
count += 1 count += 1
log.debug(u'found %s : %s' % (count, len(author_list)))
if count == len(author_list): if count == len(author_list):
editId = song.id editId = song.id
uuid = item._uuid uuid = item._uuid