Accepting request 661850 from Application:ERP:GNUHealth:Factory
New version GNU Health client 3.4.2 OBS-URL: https://build.opensuse.org/request/show/661850 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gnuhealth-client?expand=0&rev=4
This commit is contained in:
commit
f0ef7ce932
2
_service
2
_service
@ -1,4 +1,4 @@
|
||||
<services>
|
||||
|
||||
<service name="download_files" mode="disabled" />
|
||||
<service name="download_files" mode="localonly" />
|
||||
</services>
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f0228792549fcad898019320c6ebed5de6784970645146f350eaf0c07e516624
|
||||
size 14371
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:74d193aa6abb74de73ce913a5f19ea429e8f7ae9c34aced0762e2670c6c22e0d
|
||||
size 847918
|
3
gnuhealth-client-3.4.1.tar.gz
Normal file
3
gnuhealth-client-3.4.1.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7969b60d87013952833bbbc663eeac63c01143100b7ba089ab3f94f930790402
|
||||
size 665124
|
3
gnuhealth-client-3.4.2.tar.gz
Normal file
3
gnuhealth-client-3.4.2.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5e86441b2d816b2b8734fbbe82733a65e43caa19cfaaf73d2dbf62d279661eb3
|
||||
size 667267
|
@ -1,3 +1,21 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri Dec 28 17:15:08 UTC 2018 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- version 3.4.2 with many bugfixes
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Dec 11 17:34:32 UTC 2018 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- New client for the GNU Health 3.4 series based on Tryton 4.6 series
|
||||
* Enhanced support for Calendar and WebDAV system
|
||||
* Native client has a command line interface
|
||||
* Over 30 new commands for the main daily tasks
|
||||
* Enhanced GNU Health camera plugin, including zoom
|
||||
* gnuhealth_crypto.patch replaced by plugin
|
||||
* Activity Log window on the client
|
||||
* SYSINFO command to retrieve the information about client and server
|
||||
* Customize the banner on the client
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Mar 16 06:52:23 UTC 2018 - axel.braun@gmx.de
|
||||
|
||||
|
@ -13,22 +13,23 @@
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
%define majorver 3.2
|
||||
%define majorver 3.4
|
||||
Name: gnuhealth-client
|
||||
Version: %{majorver}.6
|
||||
Version: %{majorver}.2
|
||||
Release: 0
|
||||
Summary: The client of the GNU Health Hospital system
|
||||
License: GPL-3.0
|
||||
License: GPL-3.0-only
|
||||
Group: Productivity/Office/Management
|
||||
Url: http://health.gnu.org/
|
||||
Source: https://ftp.gnu.org/gnu/health/%{name}-%{version}.tar.gz
|
||||
Source1: ftp://ftp.gnu.org/gnu/health/plugins/gnuhealth-camera-plugin-latest.tar.gz
|
||||
Source2: %{name}.desktop
|
||||
Patch0: gnuhealth_crypto.patch
|
||||
Source: https://files.pythonhosted.org/packages/source/g/%{name}/%{name}-%{version}.tar.gz
|
||||
Source1: ftp://ftp.gnu.org/gnu/health/plugins/gnuhealth_plugin_camera-latest.tar.gz
|
||||
Source2: ftp://ftp.gnu.org/gnu/health/plugins/gnuhealth_plugin_crypto-latest.tar.gz
|
||||
Source3: ftp://ftp.gnu.org/gnu/health/plugins/gnuhealth_plugin_frl-latest.tar.gz
|
||||
Source4: %{name}.desktop
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: python-Babel
|
||||
BuildRequires: python-Sphinx
|
||||
@ -39,7 +40,7 @@ BuildRequires: python-python-dateutil
|
||||
BuildRequires: python-setuptools
|
||||
BuildRequires: python-simplejson
|
||||
BuildRequires: update-desktop-files
|
||||
Requires: librsvg
|
||||
#Requires: librsvg
|
||||
#for the plugins:
|
||||
Requires: opencv
|
||||
Requires: python-GooCalendar
|
||||
@ -62,12 +63,17 @@ The client of the GNU Health Hospital application
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch0 -p1
|
||||
cp %{SOURCE2} .
|
||||
cp %{SOURCE4} .
|
||||
|
||||
pwd
|
||||
cd %{name}/plugins/
|
||||
tar --strip-components 1 -xzvf %{SOURCE1}
|
||||
cd tryton/plugins/
|
||||
#tar --strip-components 1 -xzvf %{SOURCE1}
|
||||
#tar --strip-components 1 -xzvf %{SOURCE2}
|
||||
#tar --strip-components 1 -xzvf %{SOURCE3}
|
||||
|
||||
tar -xzvf %{SOURCE1}
|
||||
tar -xzvf %{SOURCE2}
|
||||
tar -xzvf %{SOURCE3}
|
||||
|
||||
%build
|
||||
:
|
||||
@ -82,8 +88,8 @@ desktop-file-install --dir %{buildroot}%{_datadir}/applications %{name}.desktop
|
||||
mkdir -p %{buildroot}%{_datadir}/pixmaps
|
||||
cp %{buildroot}%{python_sitelib}/tryton/data/pixmaps/tryton/gnuhealth-icon.png %{buildroot}%{_datadir}/pixmaps/gnuhealth.png
|
||||
|
||||
%fdupes %{buildroot}%{_datadir}
|
||||
%fdupes %{buildroot}%{_prefix}/lib
|
||||
##%fdupes %{buildroot}%{_datadir}
|
||||
##%fdupes %{buildroot}%{_prefix}/lib
|
||||
|
||||
%post
|
||||
%desktop_database_post
|
||||
@ -96,7 +102,8 @@ cp %{buildroot}%{python_sitelib}/tryton/data/pixmaps/tryton/gnuhealth-icon.png %
|
||||
%files
|
||||
%{_bindir}/%{name}
|
||||
%{_datadir}/applications/%{name}.desktop
|
||||
%doc COPYRIGHT COPYING COPYRIGHT Changelog
|
||||
%doc Changelog
|
||||
%license COPYRIGHT COPYING
|
||||
%{_datadir}/pixmaps/*
|
||||
%{python_sitelib}/*
|
||||
|
||||
|
@ -1,220 +0,0 @@
|
||||
diff -U 6 -H -d -r -N -- a/gnuhealth-client/plugins/crypto/__init__.py b/gnuhealth-client/plugins/crypto/__init__.py
|
||||
--- a/gnuhealth-client/plugins/crypto/__init__.py 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ b/gnuhealth-client/plugins/crypto/__init__.py 2014-07-15 10:33:53.000000000 +0200
|
||||
@@ -0,0 +1,179 @@
|
||||
+# -*- coding: utf-8 -*-
|
||||
+##############################################################################
|
||||
+#
|
||||
+# GNU Health: The Free Health and Hospital Information System
|
||||
+# Copyright (C) 2008-2014 Luis Falcon <lfalcon@gnusolidario.org>
|
||||
+# Copyright (C) 2011-2014 GNU Solidario <health@gnusolidario.org>
|
||||
+#
|
||||
+#
|
||||
+# This program is free software: you can redistribute it and/or modify
|
||||
+# it under the terms of the GNU General Public License as published by
|
||||
+# the Free Software Foundation, either version 3 of the License, or
|
||||
+# (at your option) any later version.
|
||||
+#
|
||||
+# This program is distributed in the hope that it will be useful,
|
||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+# GNU General Public License for more details.
|
||||
+#
|
||||
+# You should have received a copy of the GNU General Public License
|
||||
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+#
|
||||
+##############################################################################
|
||||
+
|
||||
+import tryton.rpc as rpc
|
||||
+from tryton.common import RPCExecute, warning, message
|
||||
+from tryton.gui.window.form import Form
|
||||
+import gettext
|
||||
+
|
||||
+try:
|
||||
+ import gnupg
|
||||
+except:
|
||||
+ warning(
|
||||
+ ('Document Encryption / Signing disabled'
|
||||
+ '\nPlease install the gnupg library '),
|
||||
+ ('No GNU Privacy Guard library found !'),
|
||||
+ )
|
||||
+
|
||||
+
|
||||
+_ = gettext.gettext
|
||||
+
|
||||
+def sign_document(data):
|
||||
+ """ Retrieve the hash value of the serialized document and
|
||||
+ generates a clearsign signature using the user's private key
|
||||
+ on the client side via GNU Privacy Guard - GPG -"""
|
||||
+
|
||||
+ gpg = gnupg.GPG()
|
||||
+
|
||||
+ document_model = data['model']
|
||||
+
|
||||
+ """ Don't allow signing more than one document at a time
|
||||
+ To avoid signing unwanted / unread documents
|
||||
+ """
|
||||
+
|
||||
+ if (len(data['ids']) > 1):
|
||||
+ warning(
|
||||
+ _('For security reasons, Please sign one document at a time'),
|
||||
+ _('Multiple records selected !'),
|
||||
+ )
|
||||
+ return
|
||||
+
|
||||
+ """ Verify that the document handles digital signatures """
|
||||
+
|
||||
+ try:
|
||||
+ record_vals = rpc.execute(
|
||||
+ 'model', document_model, 'read',
|
||||
+ data['ids'],
|
||||
+ ['document_digest', 'digital_signature'], rpc.CONTEXT)
|
||||
+
|
||||
+ except:
|
||||
+ warning(
|
||||
+ _('Please enable the model for digital signature'),
|
||||
+ _('No Digest or Digital Signature fields found !'),
|
||||
+ )
|
||||
+ return
|
||||
+
|
||||
+ digest = record_vals[0]['document_digest']
|
||||
+
|
||||
+ """ Check that the document hasn't been signed already """
|
||||
+
|
||||
+ if record_vals[0]['digital_signature']:
|
||||
+ warning(
|
||||
+ _('Document already signed'),
|
||||
+ _('This record has been already signed'),
|
||||
+ )
|
||||
+ return
|
||||
+
|
||||
+ try:
|
||||
+ gpg_signature = gpg.sign(digest, clearsign=True)
|
||||
+
|
||||
+ except:
|
||||
+ warning(
|
||||
+ _('Error when signing the document'),
|
||||
+ _('Please check your encryption settings'),
|
||||
+ )
|
||||
+
|
||||
+ """
|
||||
+ Set the clearsigned digest
|
||||
+ """
|
||||
+ try:
|
||||
+ RPCExecute(
|
||||
+ 'model', document_model, 'set_signature',
|
||||
+ data, str(gpg_signature))
|
||||
+
|
||||
+ except:
|
||||
+ warning(
|
||||
+ _('Error when saving the digital signature'),
|
||||
+ _('The signature was generated but NOT saved !'),
|
||||
+ )
|
||||
+
|
||||
+ else:
|
||||
+ message(_('Document digitally signed'))
|
||||
+
|
||||
+ # TODO
|
||||
+ # Reload the record view after storing the digital signature
|
||||
+ # sig_reload or other method to check.
|
||||
+ # a = Form(document_model, data['ids'])
|
||||
+ # a.sig_reload()
|
||||
+ # a.message_info(_('Document digitally signed'), color='blue')
|
||||
+
|
||||
+
|
||||
+def verify_document(data):
|
||||
+ """ Verify the digital signature of the document """
|
||||
+
|
||||
+ gpg = gnupg.GPG()
|
||||
+
|
||||
+ document_model = data['model']
|
||||
+
|
||||
+ """ Verify that the document handles digital signatures """
|
||||
+
|
||||
+ try:
|
||||
+ record_vals = rpc.execute(
|
||||
+ 'model', document_model, 'read',
|
||||
+ data['ids'],
|
||||
+ ['document_digest', 'digital_signature'], rpc.CONTEXT)
|
||||
+
|
||||
+ except:
|
||||
+ warning(
|
||||
+ _('Please enable the model for digital signature'),
|
||||
+ _('No Digest or Digital Signature fields found !'),
|
||||
+ )
|
||||
+ return
|
||||
+
|
||||
+
|
||||
+ """ Verify signature """
|
||||
+ digital_signature = record_vals[0]['digital_signature']
|
||||
+
|
||||
+ """ Check that the document has been signed """
|
||||
+ if not digital_signature:
|
||||
+ warning(
|
||||
+ _('Unsigned document'),
|
||||
+ _('This document has not been signed yet'),
|
||||
+ )
|
||||
+ return
|
||||
+
|
||||
+ try:
|
||||
+ verify_signature = gpg.verify(digital_signature)
|
||||
+
|
||||
+ except:
|
||||
+ warning(
|
||||
+ _('Error when verifying Digital Signature'),
|
||||
+ _('Please check your GNU Privacy Guard Settings'),
|
||||
+ )
|
||||
+
|
||||
+ else:
|
||||
+ """ Show message of warning boxes depending on the verification """
|
||||
+ if (verify_signature.valid):
|
||||
+ message(_("Valid Signature !\n\n" + verify_signature.stderr))
|
||||
+ else:
|
||||
+ warning(
|
||||
+ _(str(verify_signature.stderr)),
|
||||
+ _(str("Error !")),
|
||||
+ )
|
||||
+
|
||||
+
|
||||
+def get_plugins(model):
|
||||
+ return [
|
||||
+ (_('Digitally Sign Document'), sign_document),
|
||||
+ (_('Verify Digital Signature'), verify_document),
|
||||
+ ]
|
||||
diff -U 6 -H -d -r -N -- a/tryton/plugins/crypto/doc/index.rst b/tryton/plugins/crypto/doc/index.rst
|
||||
--- a/tryton/plugins/crypto/doc/index.rst 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ b/tryton/plugins/crypto/doc/index.rst 2014-07-15 10:33:53.000000000 +0200
|
||||
@@ -0,0 +1,33 @@
|
||||
+Tryton Crytpo Plugin
|
||||
+####################
|
||||
+
|
||||
+This plugin has been developed as part of GNU Health [1], but you should
|
||||
+be able to use it with any model in Tryton[2]
|
||||
+
|
||||
+Functionality :
|
||||
+The Tryton crypto plugin interacts with GNU Privacy Guard [3] to digitally
|
||||
+sign and encrypt documents.
|
||||
+
|
||||
+OS Requirements:
|
||||
+
|
||||
+Model attributes :
|
||||
+The plugin requires - as a minimum - the following attributes on the model
|
||||
+in order to be able to sign the document.
|
||||
+
|
||||
+ "document_digest" of type fields.Char
|
||||
+ "digital_signature" of type fields.Text
|
||||
+
|
||||
+
|
||||
+In real life, you will need others to make it meaningful. Please take a look
|
||||
+at the Prescription model on the health_crypto module for an example and
|
||||
+other fields used.
|
||||
+
|
||||
+
|
||||
+
|
||||
+Usage:
|
||||
+
|
||||
+References:
|
||||
+
|
||||
+1.- GNU Health : http://health.gnu.org
|
||||
+2.- Tryton : http://www.tryton.org
|
||||
+3.- GNU Privacy Guard : http://www.gnupg.org
|
3
gnuhealth_plugin_camera-latest.tar.gz
Normal file
3
gnuhealth_plugin_camera-latest.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:4012eed15bc9da865c553a2122cf2547a5e5e741f22c43f2044ef8a2f920b998
|
||||
size 14516
|
3
gnuhealth_plugin_crypto-latest.tar.gz
Normal file
3
gnuhealth_plugin_crypto-latest.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:3de543edfaa8aa9060cc2f82fb8bfc408689859926e2104758897390caa01fb2
|
||||
size 2814
|
3
gnuhealth_plugin_frl-latest.tar.gz
Normal file
3
gnuhealth_plugin_frl-latest.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9d6cfff08175ca88b901f38e957e2083407675c897c1d31f5a856538f1a9425c
|
||||
size 11042
|
Loading…
Reference in New Issue
Block a user