Fix service date formats

This commit is contained in:
Tim Bentley 2012-09-16 16:33:05 +01:00
parent 18fc78b9fe
commit 1d881e426a
3 changed files with 13 additions and 9 deletions

View File

@ -612,18 +612,18 @@ class AdvancedTab(SettingsTab):
def generateServiceNameExample(self): def generateServiceNameExample(self):
preset_is_valid = True preset_is_valid = True
if self.serviceNameDay.currentIndex() == 7: if self.serviceNameDay.currentIndex() == 7:
time = datetime.now() local_time = datetime.now()
else: else:
now = datetime.now() now = datetime.now()
day_delta = self.serviceNameDay.currentIndex() - now.weekday() day_delta = self.serviceNameDay.currentIndex() - now.weekday()
if day_delta < 0: if day_delta < 0:
day_delta += 7 day_delta += 7
time = now + timedelta(days=day_delta) time = now + timedelta(days=day_delta)
time = time.replace(hour = self.serviceNameTime.time().hour(), local_time = time.replace(hour = self.serviceNameTime.time().hour(),
minute = self.serviceNameTime.time().minute()) minute = self.serviceNameTime.time().minute())
try: try:
service_name_example = format_time(unicode( service_name_example = format_time(unicode(
self.serviceNameEdit.text())) self.serviceNameEdit.text()), local_time)
except ValueError: except ValueError:
preset_is_valid = False preset_is_valid = False
service_name_example = translate('OpenLP.AdvancedTab', service_name_example = translate('OpenLP.AdvancedTab',

View File

@ -603,7 +603,7 @@ class ServiceManager(QtGui.QWidget):
service_day = Settings().value( service_day = Settings().value(
u'advanced/default service day', 7).toInt()[0] u'advanced/default service day', 7).toInt()[0]
if service_day == 7: if service_day == 7:
time = datetime.now() local_time = datetime.now()
else: else:
service_hour = Settings().value( service_hour = Settings().value(
u'advanced/default service hour', 11).toInt()[0] u'advanced/default service hour', 11).toInt()[0]
@ -614,7 +614,7 @@ class ServiceManager(QtGui.QWidget):
if day_delta < 0: if day_delta < 0:
day_delta += 7 day_delta += 7
time = now + timedelta(days=day_delta) time = now + timedelta(days=day_delta)
time = time.replace(hour=service_hour, minute=service_minute) local_time = time.replace(hour=service_hour, minute=service_minute)
default_pattern = unicode(Settings().value( default_pattern = unicode(Settings().value(
u'advanced/default service name', u'advanced/default service name',
translate('OpenLP.AdvancedTab', 'Service %Y-%m-%d %H-%M', translate('OpenLP.AdvancedTab', 'Service %Y-%m-%d %H-%M',
@ -622,7 +622,7 @@ class ServiceManager(QtGui.QWidget):
'/\\?*|<>\[\]":+\nSee http://docs.python.org/library/' '/\\?*|<>\[\]":+\nSee http://docs.python.org/library/'
'datetime.html#strftime-strptime-behavior for more ' 'datetime.html#strftime-strptime-behavior for more '
'information.')).toString()) 'information.')).toString())
default_filename = format_time(default_pattern) default_filename = format_time(default_pattern, local_time)
else: else:
default_filename = u'' default_filename = u''
directory = unicode(SettingsManager.get_last_dir( directory = unicode(SettingsManager.get_last_dir(

View File

@ -35,7 +35,6 @@ import os
import re import re
from subprocess import Popen, PIPE from subprocess import Popen, PIPE
import sys import sys
import time
import urllib2 import urllib2
from openlp.core.lib.settings import Settings from openlp.core.lib.settings import Settings
@ -471,16 +470,21 @@ def get_uno_instance(resolver):
+ u'urp;StarOffice.ComponentContext') + u'urp;StarOffice.ComponentContext')
def format_time(text): def format_time(text, local_time):
""" """
Workaround for Python built-in time formatting fuction time.strftime(). Workaround for Python built-in time formatting fuction time.strftime().
time.strftime() accepts only ascii characters. This function accepts time.strftime() accepts only ascii characters. This function accepts
unicode string and passes individual % placeholders to time.strftime(). unicode string and passes individual % placeholders to time.strftime().
This ensures only ascii characters are passed to time.strftime(). This ensures only ascii characters are passed to time.strftime().
``text``
The text to be processed.
``local_time``
The time to be used to add to the string. This is a time object
""" """
def match_formatting(match): def match_formatting(match):
return time.strftime(match.group()) return local_time.strftime(match.group())
return re.sub('\%[a-zA-Z]', match_formatting, text) return re.sub('\%[a-zA-Z]', match_formatting, text)