forked from openlp/openlp
Fix bug with service item edit ids missing
Fix name format error Add debugging to help with service load and song edit bugs. Need to see what is happening when we hit them. bzr-revno: 1120
This commit is contained in:
commit
ea88d082d7
|
@ -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'),
|
||||||
|
|
|
@ -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):
|
||||||
|
|
|
@ -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):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -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):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue