Skip to content

Commit

Permalink
V1.2.5
Browse files Browse the repository at this point in the history
  • Loading branch information
jhemmi committed Apr 17, 2020
1 parent 5d2b50a commit 02cc619
Show file tree
Hide file tree
Showing 7 changed files with 82 additions and 20 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@ i18n/
data/MonParcellaire_SAUVEGARDE
data/*gpkg-shm
data/*gpkg-wal
data/signet*
data/exemple_signet*
MonPacellaire.gif
scripts/
.eric6project/
MonParcellaire.e4p
Expand Down
Binary file modified data/MonParcellaire.gpkg
Binary file not shown.
Binary file modified data/MonParcellaire.qgz
Binary file not shown.
18 changes: 9 additions & 9 deletions initialisation_var_exception.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,11 @@

MonParcellaire_EPSG="32631" # faire un dict ou L93
# Nom des flags accompagnant les messages
MonParcellaire_LOG="MonParcellaire"
APPLI_NOM="MonParcellaire"
APPLI_VERSION="V1.2.5"
# Suivi des versions dans metadata.txt

MonParcellaire_LOG=APPLI_NOM
T_INF="Information"
T_ERR="Erreur"
T_OK="Succes"
Expand Down Expand Up @@ -76,10 +80,11 @@
EXTENSIONS_CONNUES=[EXT_txt, EXT_csv, EXT_tsv]
EXT_json=".json"
EXT_qml=".qml"
EXT_xml=".xml"
EXT_geojson=".geojson"

# NOM du GPKG et de ses tables
MonParcellaire_GPKG="MonParcellaire" + EXT_gpkg
MonParcellaire_GPKG=APPLI_NOM + EXT_gpkg
MesFondsDePlan_GPKG="MesFondsDePlan" + EXT_gpkg
GPKG_LAYERNAME = SEP_PIPE + "layername="
# Noms tables gpkg
Expand All @@ -88,18 +93,13 @@
MonParcellaireNomAttribut='nom'
# Autres noms
MonParcellaire_JOI="jointure"
MonParcellaire_PROJET="projet_MonParcellaire.qgs"
MonParcellaire_PROJET=APPLI_NOM+".qgz"
# REPERTOIRE SAUVEGARDE et MODELE
MonParcellaire_SAV="MonParcellaire_SAUVEGARDE" # Repertoire
#MonParcellaire_MOD="MonParcellaire_MODELE" # Repertoire des modele gpkg, projet, QML
MonParcellaire_SAV=APPLI_NOM+"_SAUVEGARDE" # Repertoire

# NOMAGES FIXES
LISTE_FREQUENCE_SAUVEGARDE=[ "Chaque démarrage", "Par jour", "Par semaine", "Par mois"]

APPLI_NOM="MonParcellaire"
APPLI_VERSION="V1.1"
# Suivi des versions

# Exceptions
class MonParcellaireException( BaseException):
def __init__(self, value):
Expand Down
5 changes: 3 additions & 2 deletions metadata.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
name=MonParcellaire
qgisMinimumVersion=3.4
description=Manage your parcels
version=1.1
version=1.2.5
author=jhemmi.eu
[email protected]

Expand All @@ -20,7 +20,8 @@ repository=https://github.com/jhemmi/MonParcellaire

hasProcessingProvider=no
# Uncomment the following line and add your changelog:
changelog=V1.1 GPKGs jointure geoPDF & impression & documents
#changelog=V1.1 GPKGs jointure geoPDF & impression & documents
changelog=V1.2.5 Sauvegarde jointure et projet

# Tags are comma separated with spaces allowed
tags=parcels parcellaire OpenSource OpenData python
Expand Down
58 changes: 50 additions & 8 deletions mon_parcellaire_dockwidget.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,8 @@ def __init__(self, parent=None):
# Slot boutons
self.Prepare_buttonBox.button( QDialogButtonBox.Ok ).pressed.connect(self.slotVerifierRepertoireGPKGJointure)
self.Prepare_buttonBox.button( QDialogButtonBox.Save ).pressed.connect(self.ecrireSettings)
self.TestButton.pressed.connect(self.lireSignets)

# Slot toolbouton
self.Repertoire_toolButton.pressed.connect( self.slotLectureRepertoireGPKG)
self.Jointure_checkBox.stateChanged.connect( self.slotBasculeJointure)
Expand Down Expand Up @@ -183,13 +185,14 @@ def nommagesGPKG( self, Repertoire, nomTable, nomGPKG=MonParcellaire_GPKG, doitE
erreurGPKG( nomGPKG, CHEMIN_GPKG)
return CHEMIN_GPKG, "layer='{}'".format(nomTable), CHEMIN_GPKG + GPKG_LAYERNAME + nomTable

def sauvergardeGPKG(self, repertoireGPKG, nomCourtGPKG, frequence, suiteSauvegarde, nomTable="xxx"):
""" GPKG est sauvés selon la fréquence et si nécessaire"""
REPERTOIRE_SAUVEGARDE = os.path.join( repertoireGPKG, suiteSauvegarde)
def sauvergardeSelonFrequence(self, repertoireASauver, nomCourt, frequence, suiteSauvegarde, nomTable="xxx"):
""" fichier (y compris GPKG) est sauvés selon la fréquence et si nécessaire
nommage detaillé selon la fréquence"""
REPERTOIRE_SAUVEGARDE = os.path.join( repertoireASauver, suiteSauvegarde)
if not os.path.isdir( REPERTOIRE_SAUVEGARDE):
os.mkdir( REPERTOIRE_SAUVEGARDE)
# Déterminer les noms des gpkg pour les copier
CHEMIN_GPKG, _, cheminCompletTable = self.nommagesGPKG( repertoireGPKG, nomTable, nomCourtGPKG)
CHEMIN_GPKG, _, cheminCompletTable = self.nommagesGPKG( repertoireASauver, nomTable, nomCourt)
dateMaintenant = datetime.now()
if frequence == LISTE_FREQUENCE_SAUVEGARDE[0]: # prochain run
dateFormatee=dateMaintenant.strftime("%Y%m%d%H%M")
Expand All @@ -200,7 +203,7 @@ def sauvergardeGPKG(self, repertoireGPKG, nomCourtGPKG, frequence, suiteSauvegar
else: # par mois
assert( frequence == LISTE_FREQUENCE_SAUVEGARDE[3])
dateFormatee=dateMaintenant.strftime("%Y%m")
CHEMIN_GPKG_SAVE = os.path.join( REPERTOIRE_SAUVEGARDE, nomCourtGPKG) + "_SAUVEGARDE_" + dateFormatee
CHEMIN_GPKG_SAVE = os.path.join( REPERTOIRE_SAUVEGARDE, nomCourt) + "_SAUVEGARDE_" + dateFormatee
if not os.path.isfile( CHEMIN_GPKG_SAVE):
shutil.copy( CHEMIN_GPKG, CHEMIN_GPKG_SAVE)
return CHEMIN_GPKG, cheminCompletTable
Expand Down Expand Up @@ -357,6 +360,42 @@ def rechercherExtensionJointure( self, repertoireGPKG):
#monPrint("Extension jointure {}".format( extension))
return CHEMIN_JOINTURE

def lireSignets(self):
import xml.etree.ElementTree as ET

referentielPlugin=os.path.join( self.plugin_dir, "data")
mesSignets=os.path.join( referentielPlugin, "signets"+EXT_xml)
mesSignetsCSV=os.path.join( referentielPlugin, "signets"+EXT_csv)
if not os.path.isfile( mesSignets):
print("Pas de signets {}".format(mesSignets))
return

root = ET.parse(mesSignets).getroot()
if root.tag != "qgis_bookmarks":
print("Signets non QGIS")
return

tags = {"tags":[]}
for bookmark in root.iter('bookmark'):
# name = bookmark.find('name').text
# xmin = bookmark.find('xmin').text
# monPrint( "Name et xmin : {0} {0} ".format( name, xmin))
tag = {}
tag["name"] = bookmark.find('name').text
xmin = bookmark.find('xmin').text
ymin = bookmark.find('ymin').text
xmax = bookmark.find('xmax').text
ymax = bookmark.find('ymax').text
WKT = "MultiPolygon ((({0} {1}, {2} {1}, {2} {3}, {0} {3}, {0} {1})))".\
format( xmin, ymin, xmax, ymax)
tag["WKT"] = WKT

tags["tags"]. append(tag)
df_signets = pd.DataFrame(tags["tags"])
monPrint( "Signet : {}".format( df_signets.head()))
print( df_signets.head())
df_signets.to_csv( mesSignetsCSV, sep=';')

def rechercherDelimiteurJointure( self, CHEMIN_JOINTURE, mode="Pandas"):
""" Traite les différents cas de délimiteurs avec pandas ou QGIS"""
if VERSION_PANDAS != None and mode == "Pandas":
Expand Down Expand Up @@ -423,16 +462,19 @@ def slotVerifierRepertoireGPKGJointure( self):
###############
# Sauvegardes
###############
CHEMIN_VECTEUR_GPKG, cheminCompletParcelle = self.sauvergardeGPKG( REPERTOIRE_GPKG, MonParcellaire_GPKG, FREQUENCE_SAUVEGARDE, MonParcellaire_SAV, MonParcellaire_PAR)
CHEMIN_RASTER_GPKG, _ = self.sauvergardeGPKG( REPERTOIRE_GPKG, MesFondsDePlan_GPKG, LISTE_FREQUENCE_SAUVEGARDE[3], MonParcellaire_SAV)
CHEMIN_VECTEUR_GPKG, cheminCompletParcelle = self.sauvergardeSelonFrequence( REPERTOIRE_GPKG, MonParcellaire_GPKG, FREQUENCE_SAUVEGARDE, MonParcellaire_SAV, MonParcellaire_PAR)
CHEMIN_RASTER_GPKG, _ = self.sauvergardeSelonFrequence( REPERTOIRE_GPKG, MesFondsDePlan_GPKG, LISTE_FREQUENCE_SAUVEGARDE[3], MonParcellaire_SAV)
CHEMIN_PROJET, _ = self.sauvergardeSelonFrequence( REPERTOIRE_GPKG, MonParcellaire_PROJET, LISTE_FREQUENCE_SAUVEGARDE[0], MonParcellaire_SAV)
###############
# Jointure
###############
if CHOIX_JOINTURE == "YES":
CHEMIN_JOINTURE, attributsAJoindreOrdonne = \
self.fusionnerJointure( REPERTOIRE_GPKG, cheminCompletParcelle)
nomJointure = os.path.basename( CHEMIN_JOINTURE)
monPrint( self.tr("Fin : vérification répertoire, sauvegarde GPKG et jointure {0} pour des attributs {1}".\
REPERTOIRE_JOINTURE= os.path.dirname( CHEMIN_JOINTURE)
_, _ = self.sauvergardeSelonFrequence( REPERTOIRE_JOINTURE, nomJointure, LISTE_FREQUENCE_SAUVEGARDE[0], MonParcellaire_SAV)
monPrint( self.tr("Fin : vérification répertoire, sauvegarde GPKGs et jointure {0} pour des attributs {1}".\
format(nomJointure, attributsAJoindreOrdonne)), T_OK)
else:
monPrint( self.tr("Fin : vérification répertoire et sauvegarde GPKG"), T_OK)
18 changes: 17 additions & 1 deletion mon_parcellaire_dockwidget_base.ui
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
</font>
</property>
<property name="windowTitle">
<string>Mon Parcellaire V1.1 - jhemmi.eu</string>
<string>Mon Parcellaire V1.2.5 - jhemmi.eu</string>
</property>
<widget class="QWidget" name="dockWidgetContents">
<property name="sizePolicy">
Expand Down Expand Up @@ -584,6 +584,22 @@
<bool>false</bool>
</property>
</widget>
<widget class="QPushButton" name="TestButton">
<property name="enabled">
<bool>false</bool>
</property>
<property name="geometry">
<rect>
<x>200</x>
<y>240</y>
<width>21</width>
<height>25</height>
</rect>
</property>
<property name="text">
<string>.</string>
</property>
</widget>
</widget>
</widget>
</item>
Expand Down

0 comments on commit 02cc619

Please sign in to comment.