Skip to content

Commit 37a7a58

Browse files
committed
Possibilité de choisir le nom de la bdd
1 parent bf1bca8 commit 37a7a58

File tree

4 files changed

+72
-28
lines changed

4 files changed

+72
-28
lines changed

badass.pyproject.user

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<!DOCTYPE QtCreatorProject>
3-
<!-- Written by QtCreator 7.0.1, 2022-06-29T09:24:45. -->
3+
<!-- Written by QtCreator 7.0.1, 2022-06-29T12:37:20. -->
44
<qtcreator>
55
<data>
66
<variable>EnvironmentId</variable>

py/create_db.py

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
# Nom par défaut du fichier qgz
1717
DEFAULT_QGZ_NAME = "Badass"
1818
# Nom par défaut de la nouvelle bdd
19-
DEFAULT_DB_NAME = "badass_v2_vierge.sqlite"
19+
DEFAULT_DB_NAME = "badass"
2020

2121
class CreateDB(QtWidgets.QDialog, FORM_CLASS):
2222
"""
@@ -42,21 +42,22 @@ def __generate_files(self):
4242
self.labMsg.setText("Le dossier sélectionné n'existe pas.")
4343
return
4444

45-
name = self.editName.text()
46-
if len(name) == 0:
47-
name = DEFAULT_QGZ_NAME
45+
qgz_name = self.editQgzName.text()
46+
if len(qgz_name) == 0:
47+
qgz_name = DEFAULT_QGZ_NAME
4848

49-
### Création bdd ###
50-
path_db = os.path.join(path_dir, DEFAULT_DB_NAME)
51-
db.exec_sql_file(path_db, db.SQL_MAIN)
52-
# Création extensions
49+
db_name = self.editDbName.text()
50+
if len(db_name) == 0:
51+
db_name = DEFAULT_DB_NAME
52+
53+
sql_files = [db.SQL_MAIN]
5354
if self.checkOfTheDead.isChecked():
54-
db.exec_sql_file(path_db, db.SQL_OF_THE_DEAD)
55+
sql_files.append(db.SQL_OF_THE_DEAD)
5556
if self.checkAtHome.isChecked():
56-
db.exec_sql_file(path_db, db.SQL_AT_HOME)
57+
sql_files.append(db.SQL_AT_HOME)
5758

5859
### Création qgz ###
59-
qgz.create_qgz(os.path.join(path_dir, name) + ".qgz")
60-
60+
qgz.create_project(path_dir, qgz_name + ".qgz", db_name + ".sqlite", sql_files)
61+
6162
self.labMsg.setText("Le projet a été créé avec succès.")
6263

py/create_db.ui

Lines changed: 35 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
<rect>
77
<x>0</x>
88
<y>0</y>
9-
<width>422</width>
10-
<height>207</height>
9+
<width>459</width>
10+
<height>259</height>
1111
</rect>
1212
</property>
1313
<property name="sizePolicy">
@@ -81,22 +81,32 @@
8181
</layout>
8282
</item>
8383
<item>
84-
<widget class="QLabel" name="labName">
84+
<widget class="QLabel" name="labQgzName">
8585
<property name="text">
8686
<string>Nom du nouveau projet</string>
8787
</property>
8888
</widget>
8989
</item>
9090
<item>
91-
<layout class="QHBoxLayout" name="horizontalLayout_3">
92-
<item>
93-
<widget class="QLineEdit" name="editName">
94-
<property name="text">
95-
<string>Badass</string>
96-
</property>
97-
</widget>
98-
</item>
99-
</layout>
91+
<widget class="QLineEdit" name="editQgzName">
92+
<property name="text">
93+
<string>Badass</string>
94+
</property>
95+
</widget>
96+
</item>
97+
<item>
98+
<widget class="QLabel" name="labDbName">
99+
<property name="text">
100+
<string>Nom de la base de données</string>
101+
</property>
102+
</widget>
103+
</item>
104+
<item>
105+
<widget class="QLineEdit" name="editDbName">
106+
<property name="text">
107+
<string>badass</string>
108+
</property>
109+
</widget>
100110
</item>
101111
</layout>
102112
</item>
@@ -126,6 +136,19 @@
126136
</property>
127137
</widget>
128138
</item>
139+
<item>
140+
<spacer name="verticalSpacer">
141+
<property name="orientation">
142+
<enum>Qt::Vertical</enum>
143+
</property>
144+
<property name="sizeHint" stdset="0">
145+
<size>
146+
<width>20</width>
147+
<height>30</height>
148+
</size>
149+
</property>
150+
</spacer>
151+
</item>
129152
</layout>
130153
</item>
131154
</layout>

py/qgz.py

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,42 @@
88
import shutil
99
from zipfile import ZipFile
1010
from . import files
11+
from . import db
1112

1213
ORGINAL_DB_NAME = "badass_v2_vierge.sqlite"
1314

14-
def create_qgz(dest_path: str):
15+
def create_project(dir_path: str, qgz_name: str, db_name: str, sql_files: str):
16+
"""Créer un nouveau projet avec sa base de données.
17+
18+
Args:
19+
dir_path (str): Dossier de destination du projet
20+
qgz_name (str): Nom du fichier .qgz généré
21+
db_name (str): Nom du fichier de la base de données générée
22+
sql_files (str): Liste des fichiers sql à exécuter pour générer la base de données
23+
"""
24+
qgz_path = os.path.join(dir_path, qgz_name)
25+
db_path = os.path.join(dir_path, db_name)
26+
27+
# Création de la bdd
28+
for file in sql_files:
29+
db.exec_sql_file(db_path, file)
30+
31+
# Création du qgz
32+
__create_qgz(qgz_path)
33+
__edit_qgz_db(qgz_path, db_name)
34+
35+
def __create_qgz(dest_path: str):
1536
"""
1637
Permet de créer un nouveau fichier QGZ au chemin indiqué.
1738
Args:
1839
dest_path (str): Chemin du nouveau fichier QGZ.
1940
"""
2041
src_path = files.get_file_path("file/model.qgz")
21-
2242
shutil.copyfile(src_path, dest_path)
2343

2444
def __edit_qgz_db(path: str, new_db_name: str, old_db_name: str = ORGINAL_DB_NAME):
2545
"""
26-
Modifie le nom de la base de données dans le projet qgis.
46+
Modifie le nom de la base de données utilisé par le projet qgis.
2747
2848
Args:
2949
path (str): Chemin du fichier .qgz

0 commit comments

Comments
 (0)