/
exports.py
134 lines (110 loc) · 4.11 KB
/
exports.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# maintainer: Fad
from __future__ import unicode_literals, absolute_import, division, print_function
import shutil
import errno
import os
from datetime import datetime
from PyQt4.QtGui import QFileDialog, QWidget
from Common.models import DB_FILE, Version, Organization
# from configuration import Config
from Common.ui.util import raise_success, raise_error, uopen_file, get_lcse_file
DATETIME = "{}".format(datetime.now().strftime("%m-%d-%Y_%Hh%Mm%Ss"))
# print(DATETIME)
def export_database_as_file():
destination = QFileDialog.getSaveFileName(
QWidget(),
"Sauvegarder la base de Donnée.",
"Sauvegarde du {} {}.db".format(DATETIME, Organization.get(id=1).name_orga),
"*.db",
)
if not destination:
return None
try:
shutil.copyfile(DB_FILE, destination)
Version().get(id=1).update_v()
raise_success(
"Les données ont été exportées correctement.",
"Conservez ce fichier précieusement car il contient toutes vos données.\n"
"Exportez vos données régulièrement.",
)
except IOError:
raise_error(
"La base de données n'a pas pu être exportée.",
"Vérifiez le chemin de destination puis re-essayez.\n\n "
"Demandez de l'aide si le problème persiste.",
)
def export_backup(folder=None, dst_folder=None):
print("Exporting ...")
directory = str(QFileDialog.getExistingDirectory(QWidget(), "Select Directory"))
path_backup = "{path}-{date}-{name}".format(
path=os.path.join(directory, "BACKUP"),
date=DATETIME,
name=Organization.get(id=1).name_orga,
)
if not directory:
return None
try:
# TODO Savegarde version incremat de in db
shutil.copyfile(DB_FILE, os.path.join(path_backup, DB_FILE))
v = Version().get(id=1).update_v()
except IOError:
print("Error of copy database file")
except Exception as e:
print(e)
try:
if folder:
copyanything(folder, os.path.join(path_backup, dst_folder))
raise_success(
"Le backup à été fait correctement.",
"""Conservez le dossier {} précieusement car il contient toutes vos données. Exportez vos données régulièrement.
""".format(
path_backup
),
)
except OSError as e:
raise_error(
"Le backup n'a pas pu être fait correctement.",
"Vérifiez le chemin de destination puis re-essayez.\n"
"\n Demandez de l'aide si le problème persiste.",
)
def import_backup(folder=None, dst_folder=None):
path_db_file = os.path.join(os.path.dirname(os.path.abspath("__file__")), DB_FILE)
shutil.copy(path_db_file, "Avant-{}-{}.db".format(DB_FILE, DATETIME))
name_select_f = QFileDialog.getOpenFileName(
QWidget(), "Open Data File", "", "CSV data files (*.db)"
)
shutil.copy(name_select_f, path_db_file)
raise_success(
"Restoration des Donnée.",
"""Les données ont été correctement restorée
La version actualle de la base de donnée est {}
""".format(
Version().get(id=1).display_name()
),
)
def upload_file(folder=None, dst_folder=None, type_f=None):
path_db_file = os.path.join(folder, DB_FILE)
name_select_f = QFileDialog.getOpenFileName(
QWidget(),
"Open Data File",
"./",
"Image Files (*.png *.jpg *.bmp)".format(type_f),
)
shutil.copy(name_select_f, path_db_file)
raise_success(
"Importation.", "Import du fichier '{}' terminé.".format(name_select_f)
)
def copyanything(src, dest):
try:
shutil.copytree(src, dest, ignore=None)
except OSError as e:
# If the error was caused because the source wasn't a directory
if e.errno == errno.ENOTDIR:
shutil.copy(src, dest)
else:
print("Directory not copied. Error: %s" % e)
def export_license_as_file():
fil = get_lcse_file()
uopen_file(fil)