Skip to content

widmerc/team-kit

Repository files navigation

TeamKit (QGIS Processing Provider Plugin)

Team toolkit foundation that bundles your graphical models and Python scripts and exposes them in the Processing toolbox under your own, nameable provider with a company/team logo. Runs on QGIS 3.16+ and QGIS 4 (Qt5/Qt6). UI available in German and English (follows the QGIS locale automatically).

Core idea: simple script management for teams

You maintain models/scripts in one central place (a server URL or a network folder). Every QGIS installation on the team syncs with it automatically, so everyone always has the same, current set - without anyone copying files by hand or reinstalling the plugin.

Features

  • Automatically loads all *.model3 and *.py from:
    1. the bundled folders models/ and scripts/ (shipped with the plugin)
    2. a writable data folder in the QGIS profile (filled via sync)
  • Automatic sync every X days with an external source:
    • an HTTPS URL pointing to a ZIP file, OR
    • a local/network folder (e.g. \\server\share\tools)
    • Syncing mirrors: new/changed files are copied, files deleted from the source disappear locally too, so it's always current.
    • Runs delayed after startup, never blocks QGIS from starting.
  • Settings dialog under Plugins ▸ TeamKit ▸ Settings…: team/company name (= provider name), logo (= provider icon), source, sync interval, and a "Sync now" button.

Setting up a central source (recommended)

  1. Put models/scripts in one place: either as a ZIP under an HTTPS URL or in a network folder. Any subfolder structure works - *.model3 and *.py are searched recursively.
  2. In the Settings dialog, enter the URL or folder path under Source.
  3. Set the sync interval (e.g. 7 days; 0 = never automatically).
  4. Done - clients sync themselves; manual sync is always available via the button.

Folder structure

teamkit/
├── __init__.py          <- entry point, do not touch
├── plugin.py             <- menu, provider, auto-sync
├── provider.py            <- loading logic
├── settings.py            <- settings/paths
├── settings_dialog.py     <- settings dialog
├── updater.py             <- sync (URL/folder, mirroring)
├── metadata.txt           <- version + QGIS compatibility
├── icon.png               <- plugin/provider logo
├── i18n/                  <- translations (.ts/.qm)
├── models/                <- bundled *.model3
└── scripts/               <- bundled *.py

Distributing to the team

  • Zip the teamkit/ folder.
  • Plugins ▸ Install from ZIP → select the ZIP → install.
  • Tip: default values (team name, source, interval) can be hardcoded as defaults in settings.py so nobody has to fill anything in.

QGIS compatibility

metadata.txt: qgisMinimumVersion=3.16, qgisMaximumVersion=4.99, supportsQt6=yes. All Qt imports go through qgis.PyQt → works on both Qt5 and Qt6.

Notes

  • Scripts must use the class format (class … (QgsProcessingAlgorithm)); the decorator style (@alg.from_function) is not auto-detected.
  • Errors show up in the log: View ▸ Panels ▸ Log Messages ▸ "TeamKit".

Translating

Source strings are English. To update the German translation:

pylupdate5 plugin.py settings_dialog.py updater.py -ts i18n/teamkit_de.ts
# edit i18n/teamkit_de.ts (Qt Linguist or by hand), then:
lrelease i18n/teamkit_de.ts

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages