#1 Thu 16 November 2023 17:08
- Liline38
- Participant occasionnel
- Date d'inscription: 7 Apr 2023
- Messages: 13
QGIS: Projet deja ouvert par un autre utilisateur
Bonjour,
Existe t'il un moyen de savoir si un projet QGIS est déjà ouvert par un autre utilisateur ?
Est il possible par exemple de générer un fichier lock ou d'avoir une alerte à l'ouverture du projet qui indique que le projet est déjà ouvert ?
Merci d'avance.
Hors ligne
#2 Mon 20 November 2023 09:16
- Vincent Vauchey
- Participant assidu
- Lieu: saint jean de braye
- Date d'inscription: 24 Jan 2006
- Messages: 288
Re: QGIS: Projet deja ouvert par un autre utilisateur
Bonjour
De mémoire, il existe un plugin qui fait cela, mais à condition de le mettre sur tous les postes concernés, et avec une stabilité sans plus.
Cordialement
Hors ligne
#3 Mon 20 November 2023 11:45
- Liline38
- Participant occasionnel
- Date d'inscription: 7 Apr 2023
- Messages: 13
Re: QGIS: Projet deja ouvert par un autre utilisateur
Bonjour,
Merci pour votre retour. Après recherche, je n'ai pas trouvé de plugin qui ferait ce job. Par contre, j'ai trouvé une macro qui permet de notifier à l'utilisateur que le projet est déjà ouvert en générant un fichier lock et un message.
Ce script fonctionne pour moi et répond à mes attentes.
Voici le lien pour y accéder:
https://gis.stackexchange.com/questions … ady-in-use
Cordialement.
Dernière modification par Liline38 (Mon 20 November 2023 11:45)
Hors ligne
#4 Mon 20 November 2023 13:50
- GlaDal
- Participant assidu
- Date d'inscription: 30 Aug 2013
- Messages: 1088
Re: QGIS: Projet deja ouvert par un autre utilisateur
Bonjour,
Vous est-il possible de corriger le lien, il renvoie sur une page 404. Merci
Hors ligne
#5 Mon 20 November 2023 14:05
- Liline38
- Participant occasionnel
- Date d'inscription: 7 Apr 2023
- Messages: 13
Re: QGIS: Projet deja ouvert par un autre utilisateur
Bonjour, si le lien ne fonctionne pas pour vous, voici l'adresse complète :
https://gis.stackexchange.com/questions … ady-in-use
Hors ligne
#6 Mon 20 November 2023 17:01
- Vincent Vauchey
- Participant assidu
- Lieu: saint jean de braye
- Date d'inscription: 24 Jan 2006
- Messages: 288
Re: QGIS: Projet deja ouvert par un autre utilisateur
Re
Je rebondis sur le sujet, car la macro et top, mais je voudrais savoir s'il est possible en changeant le paramètre "copyfile" par un autre, que je ne trouve pas, de fermer le projet au lieu de faire une copie.
je joins le code pour les amateurs de défis
Code:
def openProject(): pass def saveProject(): pass def closeProject(): pass import os import socket from qgis.core import QgsProject from PyQt5.QtWidgets import QMessageBox ### utility functions ### # get the executing machine and process id # def _getId(): return socket.getfqdn()+'.'+str(os.getpid()) # read machine and process id holding lock from lock file # def _getLockerId(file): try: with open(file) as _file: return _file.readline() except: return # create lock file path # def _getLockFile(): _path, _file = __getProjectPath() return os.path.join(_path,'.'+_file+'.lock') # create current project file path root and name # def __getProjectPath(): return os.path.split(QgsProject.instance().absoluteFilePath()) ### QGIS macros ### def openProject(): lockfile = _getLockFile() try: with open(lockfile, "x") as _file: _file.write(_getId()) except OSError: _path, _file = __getProjectPath() copyfile = os.path.join(_path, _getId() + "__" + _file) QMessageBox.warning( None, "Project déja ouvert", "Impossible d'ouvrir le projet, il est en cours d'utilisation par: "+ "\n\n"+_getLockerId(lockfile)+ "\nUne copie automatique va être généré\n\n"+copyfile ) QgsProject.instance().write(copyfile) QgsProject.instance().read() QgsProject.instance().setDirty() def saveProject(): pass def closeProject(): lockfile = _getLockFile() if _getId() == _getLockerId(lockfile): os.remove(lockfile)
Par avance merci
Hors ligne
#7 Tue 28 November 2023 09:27
- Vincent Vauchey
- Participant assidu
- Lieu: saint jean de braye
- Date d'inscription: 24 Jan 2006
- Messages: 288
Re: QGIS: Projet deja ouvert par un autre utilisateur
Bonjour
Je relance le sujet, car je ne trouve pas du tout.
Y aurait-il une personne qui aurait une idée.
Merci
Hors ligne
#8 Tue 28 November 2023 09:28
- Vincent Vauchey
- Participant assidu
- Lieu: saint jean de braye
- Date d'inscription: 24 Jan 2006
- Messages: 288
Re: QGIS: Projet deja ouvert par un autre utilisateur
ou alors mettre un bouton annule
Dernière modification par Vincent Vauchey (Tue 28 November 2023 09:29)
Hors ligne