From 1d881e426aef32185b182402fe563d3baa315bf0 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sun, 16 Sep 2012 16:33:05 +0100 Subject: [PATCH] Fix service date formats --- openlp/core/ui/advancedtab.py | 6 +++--- openlp/core/ui/servicemanager.py | 6 +++--- openlp/core/utils/__init__.py | 10 +++++++--- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/openlp/core/ui/advancedtab.py b/openlp/core/ui/advancedtab.py index 0276fcebc..1c2ea884c 100644 --- a/openlp/core/ui/advancedtab.py +++ b/openlp/core/ui/advancedtab.py @@ -612,18 +612,18 @@ class AdvancedTab(SettingsTab): def generateServiceNameExample(self): preset_is_valid = True if self.serviceNameDay.currentIndex() == 7: - time = datetime.now() + local_time = datetime.now() else: now = datetime.now() day_delta = self.serviceNameDay.currentIndex() - now.weekday() if day_delta < 0: day_delta += 7 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()) try: service_name_example = format_time(unicode( - self.serviceNameEdit.text())) + self.serviceNameEdit.text()), local_time) except ValueError: preset_is_valid = False service_name_example = translate('OpenLP.AdvancedTab', diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 0dc4ef864..a3d9692f5 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -603,7 +603,7 @@ class ServiceManager(QtGui.QWidget): service_day = Settings().value( u'advanced/default service day', 7).toInt()[0] if service_day == 7: - time = datetime.now() + local_time = datetime.now() else: service_hour = Settings().value( u'advanced/default service hour', 11).toInt()[0] @@ -614,7 +614,7 @@ class ServiceManager(QtGui.QWidget): if day_delta < 0: day_delta += 7 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( u'advanced/default service name', translate('OpenLP.AdvancedTab', 'Service %Y-%m-%d %H-%M', @@ -622,7 +622,7 @@ class ServiceManager(QtGui.QWidget): '/\\?*|<>\[\]":+\nSee http://docs.python.org/library/' 'datetime.html#strftime-strptime-behavior for more ' 'information.')).toString()) - default_filename = format_time(default_pattern) + default_filename = format_time(default_pattern, local_time) else: default_filename = u'' directory = unicode(SettingsManager.get_last_dir( diff --git a/openlp/core/utils/__init__.py b/openlp/core/utils/__init__.py index 393916408..602c48728 100644 --- a/openlp/core/utils/__init__.py +++ b/openlp/core/utils/__init__.py @@ -35,7 +35,6 @@ import os import re from subprocess import Popen, PIPE import sys -import time import urllib2 from openlp.core.lib.settings import Settings @@ -471,16 +470,21 @@ def get_uno_instance(resolver): + u'urp;StarOffice.ComponentContext') -def format_time(text): +def format_time(text, local_time): """ Workaround for Python built-in time formatting fuction time.strftime(). time.strftime() accepts only ascii characters. This function accepts unicode string and passes individual % placeholders 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): - return time.strftime(match.group()) + return local_time.strftime(match.group()) return re.sub('\%[a-zA-Z]', match_formatting, text)