[med-svn] [gnumed-server] 05/09: Imported Upstream version 21.6

Andreas Tille tille at debian.org
Fri May 27 13:05:59 UTC 2016


This is an automated email from the git hooks/post-receive script.

tille pushed a commit to branch master
in repository gnumed-server.

commit 4cbe5d63324276683bbfd81c40e1ef9cf38e1549
Author: Andreas Tille <tille at debian.org>
Date:   Fri May 27 13:39:29 2016 +0200

    Imported Upstream version 21.6
---
 server/bootstrap/fixup_db-v22.conf                 |  91 -------
 server/bootstrap/update_db-v21_v22.conf            | 276 ---------------------
 server/doc/schema/gnumed-entire_schema.html        |   2 +-
 server/pycommon/gmI18N.py                          | 103 +++++---
 server/pycommon/gmTools.py                         |   7 +-
 .../v20-v21/dynamic/v21-release_notes-dynamic.sql  |  29 +--
 6 files changed, 94 insertions(+), 414 deletions(-)

diff --git a/server/bootstrap/fixup_db-v22.conf b/server/bootstrap/fixup_db-v22.conf
deleted file mode 100644
index 5d2995e..0000000
--- a/server/bootstrap/fixup_db-v22.conf
+++ /dev/null
@@ -1,91 +0,0 @@
-# GNUmed database system bootstrapping config file
-#-------------------------------------------------
-# license: GPL v2 or later
-# author: Karsten Hilbert at gmx.net
-
-#----------------------------------
-[installation]
-interactive = yes
-
-keep temp files = no
-
-description = $description$
-This will update an existing GNUmed database.
-
-It does so by applying all fixup SQL scripts
-appropriate to the version of the database.
-
-$description$
-
-bundles = $bundles$
-v22-fixups
-$bundles$
-
-#----------------------------------
-[bundle v22-fixups]
-database alias = gnumed_v22
-minimum postgresql version = 9.2
-schema base directory = ../sql/v21-v22/fixups/
-schema = $schema$
-../dynamic/v22-release_notes-dynamic.sql
-$schema$
-
-#----------------------------------
-[database gnumed_v22]
-name = gnumed_v22
-override name by = GM_CORE_DB
-drop target database = 0
-use existing target database = 1
-target version = v22
-transfer users = 0
-
-template database = template1
-server alias = local host
-audit disable = 1
-audit trail parent table = audit.audit_trail
-audit trail table prefix = log_
-audit fields table = audit.audit_fields
-schema base directory = ../sql/v21-v22/
-schema = $schema$
-$schema$
-
-superuser schema = $superuser schema$
-$superuser schema$
-
-upgrade plausibility checks = $upgrade plausibility checks$
-$upgrade plausibility checks$
-
-script base directory = ../sql/v21-v22/python/
-data import scripts = $data import scripts$
-$data import scripts$
-
-#----------------------------------
-[server local host]
-name = 
-port = 5432
-template database = template1
-super user alias = postgres
-schema base directory = ../sql/v21-v22/
-schema = $schema$
-$schema$
-
-#----------------------------------
-[user GNUmed owner]
-name = gm-dbo
-password = 
-
-[user postgres]
-name = postgres
-#password =
-
-#----------------------------------
-# these really shouldn't be changed
-#----------------------------------
-[GnuMed defaults]
-
-database owner alias = GNUmed owner
-
-groups = $groups$
-$groups$
-
-#----------------------------------
diff --git a/server/bootstrap/update_db-v21_v22.conf b/server/bootstrap/update_db-v21_v22.conf
deleted file mode 100644
index ba1460c..0000000
--- a/server/bootstrap/update_db-v21_v22.conf
+++ /dev/null
@@ -1,276 +0,0 @@
-# GNUmed database system bootstrapping config file
-#-------------------------------------------------
-# license: GPL v2 or later
-# author: Karsten Hilbert at gmx.net
-
-#----------------------------------
-[revision control]
-file = /home/ncq/Projekte/cvs2git/vcs-mirror/gnumed/gnumed/server/bootstrap/update_db-v21_v22.conf
-version = 1.0
-
-#----------------------------------
-[installation]
-interactive = yes
-
-keep temp files = no
-
-description = $description$
-This will update an existing GNUmed version 20
-database to the version 21 schema. It does not do
-any harm to the data contained within.
-
-The existing database will be cloned first. The copy is
-then modified. The original database remains unchanged.
-$description$
-
-
-bundles = $bundles$
-v21_fixups-pre_v22
-v21-v22-static
-v21-v22-dynamic
-$bundles$
-
-
-#----------------------------------
-[bundle v21_fixups-pre_v22]
-database alias = gnumed_v22
-minimum postgresql version = 9.2
-schema base directory = ../sql/v20-v21/fixups/
-schema = $schema$
-v21-dem-view_grants-fixup.sql
-../dynamic/v21-release_notes-dynamic.sql
-v21-ref-auto_hint-tetanus_STIKO.sql
-$schema$
-
-#----------------------------------
-[bundle v21-v22-static]
-database alias = gnumed_v22
-minimum postgresql version = 9.2
-schema base directory = ../sql/v21-v22/static/
-schema = $schema$
-v22-ref-chemical_substance-static.sql
-v22-ref-lnk_substance2loinc-static.sql
-$schema$
-
-#----------------------------------
-[bundle v21-v22-dynamic]
-database alias = gnumed_v22
-minimum postgresql version = 9.2
-schema base directory = ../sql/v21-v22/dynamic/
-schema = $schema$
-$schema$
-
-#----------------------------------
-[bundle v22-fixups]
-database alias = gnumed_v22
-minimum postgresql version = 9.2
-schema base directory = ../sql/v21-v22/fixups/
-schema = $schema$
-$schema$
-
-#----------------------------------
-[bundle v22-test_data]
-database alias = gnumed_v22
-minimum postgresql version = 9.2
-schema base directory = ../sql/test-data/
-schema = $schema$
-$schema$
-
-#----------------------------------
-[database gnumed_v22]
-name = gnumed_v22
-override name by = GM_CORE_DB
-drop target database = 1
-target version = devel
-#target version = v22
-transfer users = 1
-template database = gnumed_v21
-template version = v21
-server alias = local host
-audit disable = 0
-audit trail parent table = audit.audit_trail
-audit trail table prefix = log_
-audit fields table = audit.audit_fields
-schema base directory = ../sql/v21-v22/
-schema = $schema$
-$schema$
-
-superuser schema = $superuser schema$
-$superuser schema$
-
-script base directory = ../sql/v21-v22/python/
-data import scripts = $data import scripts$
-$data import scripts$
-
-
-
-
-# line 1: old database
-# line 2: new database
-upgrade plausibility checks = $upgrade plausibility checks$
-identities::::select count(1) from dem.identity
-	select count(1) from dem.identity			-- new
-names::::select count(1) from dem.names
-	select count(1) from dem.names	-- new
-v_all_persons::::select count(1) from dem.v_persons
-	select count(1) from dem.v_all_persons	-- new
-v_active_persons::::select count(1) from dem.v_active_persons
-	select count(1) from dem.v_active_persons	-- new
-staff::::select count(1) from dem.staff								-- old
-	select count(1) from dem.v_staff where not person_is_deleted	-- new
-v_staff::::select count(1) from dem.v_staff
-	select count(1) from dem.v_staff	-- new
-addresses::::select count(1) from dem.address
-	select count(1) from dem.address	-- new
-episodes::::select count(1) from clin.episode where not summary ilike '%[substance use]%'
-	select count(1) from clin.episode where not summary ilike '%[substance use]%'
-denormalized episodes::::select count(1) from clin.v_pat_episodes where not summary ilike '%[substance use]%'
-	select count(1) from clin.v_pat_episodes where not summary ilike '%[substance use]%'
-encounters::::select count(1) from clin.encounter
-	select count(1) from clin.v_pat_encounters
-issues::::select count(1) from clin.health_issue
-	select count(1) from clin.health_issue
-issues view::::select count(1) from clin.v_health_issues
-	select count(1) from clin.v_health_issues
-procedures::::select count(1) from clin.procedure
-	select count(1) from clin.procedure
-documents::::select count(1) from blobs.doc_med
-	select count(1) from blobs.doc_med
-document pages::::select count(1) from blobs.doc_obj
-	select count(1) from blobs.doc_obj
-allergies::::select count(1) from clin.allergy
-	select count(1) from clin.allergy
-communication channels::::select count(1) from dem.lnk_identity2comm
-	select count(1) from dem.lnk_identity2comm
-test results::::select count(1) from clin.test_result
-	select count(1) from clin.test_result
-unmatched test results::::select count(1) from clin.incoming_data_unmatched
-	select count(1) from clin.incoming_data_unmatched
-unmatchable test results::::select count(1) from clin.incoming_data_unmatchable
-	select count(1) from clin.incoming_data_unmatchable
-denormalized test results::::select count(1) from clin.v_test_results
-	select count(1) from clin.v_test_results
-allergy states::::select count(1) from clin.allergy_state
-	select count(1) from clin.allergy_state
-waiting list entries::::select count(1) from clin.waiting_list
-	select count(1) from clin.waiting_list
-waiting list view entries::::select count(1) from clin.v_waiting_list
-	select count(1) from clin.v_waiting_list
-waiting list integrity::::select((select count(1) from clin.v_waiting_list) = (select count(1) from clin.waiting_list))
-	select((select count(1) from clin.v_waiting_list) = (select count(1) from clin.waiting_list))
-messages::::select count(1) from dem.message_inbox
-	select count(1) from dem.message_inbox
-test orgs::::select count(1) from clin.test_org
-	select count(1) from clin.test_org
-branded drug component intakes::::select count(1) from clin.substance_intake where fk_drug_component is not null
-	select count(1) from clin.substance_intake where fk_drug_component is not null
-substance intakes::::select count(1) from clin.substance_intake
-	select count(1) from clin.substance_intake
-vaccines::::select count(1) from clin.vaccine
-	select count(1) from clin.vaccine
-vaccines (must have indications)::::select 0
-	select count(1) from clin.v_vaccines where indications is NULL
-vaccinations::::select count(1) from clin.vaccination
-	select count(1) from clin.vaccination
-vaccinations per indication::::select count(1) from clin.v_pat_vaccs4indication
-	select count(1) from clin.v_pat_vaccs4indication
-latest vaccinations::::select count(1) from clin.v_pat_last_vacc4indication
-	select count(1) from clin.v_pat_last_vacc4indication
-latest vaccinations - patients::::select count(1) from clin.v_pat_last_vacc4indication group by pk_patient
-	select count(1) from clin.v_pat_last_vacc4indication group by pk_patient
-latest vaccinations - shots::::select count(1) from clin.v_pat_last_vacc4indication group by pk_vaccination
-	select count(1) from clin.v_pat_last_vacc4indication group by pk_vaccination
-latest vaccinations - indications::::select count(1) from clin.v_pat_last_vacc4indication group by pk_indication
-	select count(1) from clin.v_pat_last_vacc4indication group by pk_indication
-requests on results::::select count(1) from clin.test_result where fk_request is not NULL
-	select count(1) from clin.test_result where fk_request is not NULL
-clinical code links (total) - internal consistency::::select True
-	select ((select count(1) from clin.lnk_code2item_root) = (select ((select count(1) from clin.lnk_code2procedure) + (select count(1) from clin.lnk_code2rfe) + (select count(1) from clin.lnk_code2aoe) + (select count(1) from clin.lnk_code2episode) + (select count(1) from clin.lnk_code2h_issue) + (select count(1) from clin.lnk_code2narrative))))
-paperwork templates::::select count(1) from ref.paperwork_templates
-	select count(1) from ref.paperwork_templates
-automatic hints::::select count(1) from ref.auto_hint
-	select count(1) from ref.auto_hint
-suppressed hints::::select count(1) from clin.suppressed_hint
-	select count(1) from clin.suppressed_hint
-raw keyword expansions::::select count(1) from ref.keyword_expansion
-	select count(1) from ref.keyword_expansion
-mapped keyword expansions::::select count(1) from ref.v_keyword_expansions
-	select count(1) from ref.v_keyword_expansions
-organisations::::select count(1) from dem.org
-	select count(1) from dem.org
-organisational units::::select count(1) from dem.org_unit
-	select count(1) from dem.org_unit
-data sources::::select count(1) from ref.data_source
-	select count(1) from ref.data_source
-bills with invoices but without VAT status::::select 0
-	select count(1) from bill.bill where (apply_vat is null) and (fk_doc is not null)
-clinical items::::select count(1) from clin.clin_root_item
-	select count(1) from clin.clin_root_item
-export items::::select count(1) from clin.export_item
-	select count(1) from clin.export_item
-export items view::::select count(1) from clin.v_export_items
-	select count(1) from clin.v_export_items
-export items integrity::::select ((select count(1) from clin.export_item) = (select count(1) from clin.v_export_items))
-	select ((select count(1) from clin.export_item) = (select count(1) from clin.v_export_items))
--- ------------------
--- commented out:
---latest vaccinations - vaccine::::select count(1) from clin.v_pat_last_vacc4indication group by pk_vaccine
---	select count(1) from clin.v_pat_last_vacc4indication group by pk_vaccine
---v_pat_addresses::::select ((select count(1) from dem.v_pat_addresses) - (select count(1) from dem.lnk_person_org_address l join dem.identity i on (i.pk = l.id_identity) where i.deleted is true))
---	select count(1) from dem.v_pat_addresses
---unique URBs with ZIP::::select count(1) from dem.v_uniq_zipped_urbs
---	select count(1) from dem.v_uniq_zipped_urbs
---ATC codes::::select count(1) from (select distinct on (code, term, fk_data_source) 1 from ref.atc) as uniq_atc
---	select count(1) from ref.atc
---ATC vs generic codes - internal consistency::::select 0
---	select code, term, fk_data_source from ref.atc except select code, term, fk_data_source from ref.generic_coding_system
---LOINC codes::::select count(1) from ref.loinc
---	select count(1) from ref.loinc
---LOINC vs generic codes - internal consistency::::select 0
---	select code, term, fk_data_source from ref.loinc except select code, term, fk_data_source from ref.generic_coding_system
---generic codes (total) - internal consistency::::select True
---	select ((select count(1) from ref.coding_system_root) = (select ((select count(1) from ref.atc) + (select count(1) from ref.loinc))))
--- ------------------
--- for debugging:
---skipped check::::select 'skipped in old'		-- old
---	select 'skipped in new'						-- new
---check definition error::select 1				-- old
---	select 1									-- new
---syntax error (old)::::selec 1 				-- old
---	select 1									-- new
---syntax error (new)::::select 1 				-- old
---	selec 1										-- new
---data mismatch error::::select 1 				-- old
---	select 2 -- new
-$upgrade plausibility checks$
-
-#----------------------------------
-[server local host]
-name = 
-port = 5432
-template database = template1
-super user alias = postgres
-schema base directory = ../sql/v21-v22/
-schema = $schema$
-$schema$
-
-#----------------------------------
-[user GNUmed owner]
-name = gm-dbo
-password = 
-
-[user postgres]
-name = postgres
-#password =
-
-#----------------------------------
-# these really shouldn't be changed
-#----------------------------------
-[GnuMed defaults]
-
-database owner alias = GNUmed owner
-
-groups = $groups$
-$groups$
-
-#----------------------------------
diff --git a/server/doc/schema/gnumed-entire_schema.html b/server/doc/schema/gnumed-entire_schema.html
index c421c7c..1bd1ec2 100644
--- a/server/doc/schema/gnumed-entire_schema.html
+++ b/server/doc/schema/gnumed-entire_schema.html
@@ -112,7 +112,7 @@
   <body>
 
     <!-- Primary Index -->
-	<p><br><br>Dumped on 2016-04-25</p>
+	<p><br><br>Dumped on 2016-05-26</p>
 <h1><a name="index">Index of database - gnumed_v21</a></h1>
 <ul>
     
diff --git a/server/pycommon/gmI18N.py b/server/pycommon/gmI18N.py
index 0bc32eb..c1508f2 100644
--- a/server/pycommon/gmI18N.py
+++ b/server/pycommon/gmI18N.py
@@ -132,12 +132,12 @@ def __log_locale_settings(message=None):
 		_log.debug(message)
 
 	_log.debug('current locale settings:')
-	_log.debug('locale.get_locale(): %s' % str(locale.getlocale()))
+	_log.debug('locale.getlocale(): %s' % str(locale.getlocale()))
 	for category in _getlocale_categories.keys():
-		_log.debug('locale.get_locale(%s): %s' % (category, locale.getlocale(_getlocale_categories[category])))
+		_log.debug('locale.getlocale(%s): %s' % (category, locale.getlocale(_getlocale_categories[category])))
 
 	for category in _setlocale_categories.keys():
-		_log.debug('(locale.set_locale(%s): %s)' % (category, locale.setlocale(_setlocale_categories[category])))
+		_log.debug('(locale.setlocale(%s): %s)' % (category, locale.setlocale(_setlocale_categories[category])))
 
 	try:
 		_log.debug('locale.getdefaultlocale() - default (user) locale: %s' % str(locale.getdefaultlocale()))
@@ -286,42 +286,91 @@ def install_domain(domain=None, language=None, prefer_local_catalog=False):
 	# http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap08.html
 	_log.debug('searching message catalog file for system locale [%s]' % system_locale)
 
+	_log.debug('checking process environment:')
 	for env_var in ['LANGUAGE', 'LC_ALL', 'LC_MESSAGES', 'LANG']:
 		tmp = os.getenv(env_var)
 		if env_var is None:
-			_log.debug('${%s} not set' % env_var)
+			_log.debug(' ${%s} not set' % env_var)
 		else:
-			_log.debug('${%s} = [%s]' % (env_var, tmp))
-
+			_log.debug(' ${%s} = [%s]' % (env_var, tmp))
+
+	# language codes to try
+	lang_candidates = []
+	# first: explicit language or default system language
+	# language=None: unadulterated default language for user (locale.getlocale()[0] value)
+	# language != None: explicit language setting as passed in by the caller
+	lang_candidates.append(language)
 	if language is not None:
-		_log.info('explicit setting of ${LANG} requested: [%s]' % language)
-		_log.info('this will override the system locale language setting')
-		os.environ['LANG'] = language
+		_log.info('explicit request for target language [%s]' % language)
+		# next: try default language for user if explicit language fails
+		lang_candidates.append(None)
+
+	# next try locale.getlocale()[0], if different (this can be strange on, say, Windows: Hungarian_Hungary)
+	if locale.getlocale()[0] not in lang_candidates:
+		lang_candidates.append(locale.getlocale()[0])
+
+	# next try locale.get*default*locale()[0], if different
+	if locale.getdefaultlocale()[0] not in lang_candidates:
+		lang_candidates.append(locale.getdefaultlocale()[0])
+
+	_log.debug('languages to try for translation: %s (None: implicit system default)', lang_candidates)
+	initial_lang = os.getenv('LANG')
+	_log.info('initial ${LANG} setting: %s', initial_lang)
+
+	# loop over language candidates
+	for lang_candidate in lang_candidates:
+		# setup baseline
+		_log.debug('resetting ${LANG} to initial user default [%s]', initial_lang)
+		if initial_lang is None:
+			del os.environ['LANG']
+			lang2log = u'$LANG=<>'
+		else:
+			os.environ['LANG'] = initial_lang
+			lang2log = u'$LANG(default)=%s' % initial_lang
+		# setup candidate language
+		if lang_candidate is not None:
+			_log.info('explicitely overriding system locale language [%s] by setting ${LANG} to [%s]', initial_lang, lang_candidate)
+			os.environ['LANG'] = lang_candidate
+			lang2log = u'$LANG(explicit)=%s' % lang_candidate
+
+		if __install_domain(domain = domain, prefer_local_catalog = prefer_local_catalog, language = lang2log):
+			return True
+
+	# install a dummy translation class
+	_log.warning("falling back to NullTranslations() class")
+	# this shouldn't fail
+	dummy = gettext.NullTranslations()
+	dummy.install()
+	return True
+
+#---------------------------------------------------------------------------
+def __install_domain(domain, prefer_local_catalog, language=u'?'):
+	# <language> only used for logging
 
 	# search for message catalog
-	candidates = []
+	candidate_PO_dirs = []
 
 	# - locally
 	if prefer_local_catalog:
-		_log.debug('preferring local message catalog')
+		_log.debug('prioritizing local message catalog')
 		# - one level above path to binary
 		#    last resort for inferior operating systems such as DOS/Windows
 		#    strip one directory level
 		#    this is a rather neat trick :-)
 		loc_dir = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), '..', 'po'))
 		_log.debug('looking above binary install directory [%s]' % loc_dir)
-		candidates.append(loc_dir)
+		candidate_PO_dirs.append(loc_dir)
 		# - in path to binary
 		loc_dir = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), 'po'))
 		_log.debug('looking in binary install directory [%s]' % loc_dir)
-		candidates.append(loc_dir)
+		candidate_PO_dirs.append(loc_dir)
 
 	# - standard places
 	if os.name == 'posix':
 		_log.debug('system is POSIX, looking in standard locations (see Python Manual)')
 		# if this is reported to segfault/fail/except on some
 		# systems we may have to assume "sys.prefix/share/locale/"
-		candidates.append(gettext.bindtextdomain(domain))
+		candidate_PO_dirs.append(gettext.bindtextdomain(domain))
 	else:
 		_log.debug('No use looking in standard POSIX locations - not a POSIX system.')
 
@@ -331,7 +380,7 @@ def install_domain(domain=None, language=None, prefer_local_catalog=False):
 	if env_key in os.environ:
 		loc_dir = os.path.abspath(os.path.join(os.environ[env_key], 'po'))
 		_log.debug('${%s} = "%s" -> [%s]' % (env_key, os.environ[env_key], loc_dir))
-		candidates.append(loc_dir)
+		candidate_PO_dirs.append(loc_dir)
 	else:
 		_log.info("${%s} not set" % env_key)
 
@@ -343,21 +392,22 @@ def install_domain(domain=None, language=None, prefer_local_catalog=False):
 		#    this is a rather neat trick :-)
 		loc_dir = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), '..', 'po'))
 		_log.debug('looking above binary install directory [%s]' % loc_dir)
-		candidates.append(loc_dir)
+		candidate_PO_dirs.append(loc_dir)
 		# - in path to binary
 		loc_dir = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), 'po' ))
 		_log.debug('looking in binary install directory [%s]' % loc_dir)
-		candidates.append(loc_dir)
+		candidate_PO_dirs.append(loc_dir)
 
 	# now try to actually install it
-	for candidate in candidates:
-		_log.debug('trying [%s](/%s/LC_MESSAGES/%s.mo)', candidate, system_locale, domain)
-		if not os.path.exists(candidate):
+	for candidate_PO_dir in candidate_PO_dirs:
+		_log.debug('trying with (%s, %s, %s)', candidate_PO_dir, language, domain)
+		_log.debug(' -> %s/%s/LC_MESSAGES/%s.mo', candidate_PO_dir, language, domain)
+		if not os.path.exists(candidate_PO_dir):
 			continue
 		try:
-			gettext.install(domain, candidate, unicode=1)
+			gettext.install(domain, candidate_PO_dir, unicode = 1)
 		except:
-			_log.exception('installing text domain [%s] failed from [%s]', domain, candidate)
+			_log.exception('installing text domain [%s] failed from [%s]', domain, candidate_PO_dir)
 			continue
 		global _
 		# does it translate ?
@@ -372,12 +422,7 @@ def install_domain(domain=None, language=None, prefer_local_catalog=False):
 			__builtin__._ = _translate_protected
 			return True
 
-	# 5) install a dummy translation class
-	_log.warning("falling back to NullTranslations() class")
-	# this shouldn't fail
-	dummy = gettext.NullTranslations()
-	dummy.install()
-	return True
+	return False
 
 #===========================================================================
 _encoding_mismatch_already_logged = False
@@ -471,7 +516,7 @@ if __name__ == "__main__":
 	print("system locale: ", system_locale, "; levels:", system_locale_level)
 	print("likely encoding:", get_encoding())
 
-	if len(sys.argv) > 1:
+	if len(sys.argv) > 2:
 		install_domain(domain = sys.argv[2])
 	else:
 		install_domain()
diff --git a/server/pycommon/gmTools.py b/server/pycommon/gmTools.py
index 9e5fb8b..8c574d1 100644
--- a/server/pycommon/gmTools.py
+++ b/server/pycommon/gmTools.py
@@ -278,14 +278,15 @@ class gmPaths(gmBorg.cBorg):
 			self.__tmp_dir_already_set
 			_log.debug(u'temp dir already set')
 		except AttributeError:
-			_log.info(u'initial temp dir: %s', tempfile.gettempdir())
+			_log.info(u'initial (user level) temp dir: %s', tempfile.gettempdir())
 			# $TMP/gnumed-$USER/
 			tmp_base = os.path.join(tempfile.gettempdir(), app_name + r'-' + getpass.getuser())
 			mkdir(tmp_base, 0o700)
 			tempfile.tempdir = tmp_base
-			_log.info(u'intermediate temp dir: %s', tempfile.gettempdir())
+			_log.info(u'intermediate (app level) temp dir: %s', tempfile.gettempdir())
 			# $TMP/gnumed-$USER/g$UNIQUE/
 			self.tmp_dir = tempfile.mkdtemp(prefix = r'g')
+			_log.info(u'final (app instance level) temp dir: %s', tempfile.gettempdir())
 
 		self.__log_paths()
 		if wx is None:
@@ -416,7 +417,7 @@ class gmPaths(gmBorg.cBorg):
 		_log.debug('previous temp dir: %s', tempfile.gettempdir())
 		self.__tmp_dir = path
 		tempfile.tempdir = self.__tmp_dir
-		_log.debug('current temp dir: %s', tempfile.gettempdir())
+		_log.debug('new temp dir: %s', tempfile.gettempdir())
 		self.__tmp_dir_already_set = True
 
 	def _get_tmp_dir(self):
diff --git a/server/sql/v20-v21/dynamic/v21-release_notes-dynamic.sql b/server/sql/v20-v21/dynamic/v21-release_notes-dynamic.sql
index 820e480..f83e454 100644
--- a/server/sql/v20-v21/dynamic/v21-release_notes-dynamic.sql
+++ b/server/sql/v20-v21/dynamic/v21-release_notes-dynamic.sql
@@ -17,24 +17,25 @@ INSERT INTO dem.message_inbox (
 ) VALUES (
 	(select pk from dem.staff where db_user = 'any-doc'),
 	(select pk_type from dem.v_inbox_item_type where type = 'memo' and category = 'administrative'),
-	'Release Notes for GNUmed 1.6.5 (database v21.5)',
-	'GNUmed 1.6.5 Release Notes:
+	'Release Notes for GNUmed 1.6.6 (database v21.6)',
+	'GNUmed 1.6.6 Release Notes:
 
-	1.6.5
+	1.6.6
 
-IMPROVED: list context menu: operate on _selected_ rows
+FIX: error when running gm-import_incoming as root
+FIX: failure to show entries with soap_cat=NULL in EMR list journal
+FIX: copy-pasto "nicotine" -> "ethanol"
 
-	1.6.4
+IMPROVED: clear metadata panel after importing new document
+IMRPOVED: enable editing of document source org
+IMPROVED: list context menu layout
+IMPROVED: handling of Windows locale names like Hungarian_Hungary [thanks Attila]
+IMPROVED: AppData file
+IMRPOVED: OOo/LO/SO detection [thanks John]
+IMRPOVED: tree display of documents
 
-FIX: EMR journal exporter on Windows [thanks Marc]
-
-IMPROVED: by-org sort mode in document tree
-IMPROVED: file describer script
-IMPROVED: STIKO tetanus auto hint
-IMPROVED: ES translation [thanks Uwe]
-
-NEW: gm-import_incoming script for external use
+NEW: calculate distance of patient address to your praxis
 ');
 
 -- --------------------------------------------------------------
-select gm.log_script_insertion('v21-release_notes-dynamic.sql', '21.5');
+select gm.log_script_insertion('v21-release_notes-dynamic.sql', '21.6');

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/gnumed-server.git



More information about the debian-med-commit mailing list