Hi Thomas -

Your suggestion is actually pretty close to the solution I made -

 * Standard installation of QGIS with /standard/ .msi package.
 * After the QGIS installation and before QGIS is started the user do a
   one-time run a Python script from et central network drive -  using
   the Python interpreter installed together with QGIS  which:
     o Unzip a complete profile  with specific plugins and customized
       parameters from a central network based repository. This profile
       replaces the standard "default" profile.
     o Search/replace a couple of "tokenized" values in QGIS.ini with
       actual values based on username

The profile and tokenized QGIS.ini is prepared by the GIS administrator

The Python script is packaged in a .cmd file which is started by the user.

Not a perfect solution, but doable:

 * The It department is happy: No work doing specialized installations
 * The GIS administrator is happy. It's a one-time piece of work for
   each QGIS version to  prepare the profile and tokenize the QGIS.ini
 * The user is - somewhat - happy. To finish the installation is simply
   to double-click once on a file placed in a "highly visible" location.
 * Any subsequent mistakes made by the user (Installation of dodgy
   plugins, strange changes in setups ....) is easily repaired by
   running the Python script again.


Med venlig hilsen / Kind regards

Bo Victor Thomsen

Den 12-07-2021 kl. 03:14 skrev Thomas Gratier:
Hi,

I'm not aware QSettings provided by Qt can do it. Your %APPDATA% is not portable as would only work on Windows

You can always try generate the QGIS.ini file using a templating system

File QGIS.ini.j2 with following content

Configuration\MODELS_FOLDER={{APPDATA}}\\QGIS\\QGIS3\\profiles\\default\\processing\\models
Configuration\SCRIPTS_FOLDERS={{APPDATA}}\\QGIS\\QGIS3\\profiles\\default\\processing\\scripts


File generate_ini.py with following content

import os
import jinja2

templateLoader = jinja2.FileSystemLoader(searchpath="./")
templateEnv = jinja2.Environment(loader=templateLoader)
TEMPLATE_FILE = "QGIS.ini.j2"
template = templateEnv.get_template(TEMPLATE_FILE)
mydict = {
    "APPDATA": os.environ.get("APPDATA")
}
outputText = template.render(**mydict)
with open('QGIS.ini', 'w') as outputfile:
    outputfile.write(outputText)

Then, to write your QGIS.ini file, do


python3 generate_ini.py


The possible deal breakers with this approach are:
- you depend from jinja2, a third party Python library,
- you can't later reuse the mechanism if for instance QGIS changes the QGIS.ini file later on


Regards

Thomas


Le mar. 6 juil. 2021 à 09:18, Bo Victor Thomsen <bo.victor.thom...@gmail.com <mailto:bo.victor.thom...@gmail.com>> a écrit :

    To the list -

    Is there a method to use OS (Linux, Windows...) environment
    variables in the QGIS.ini setup file ?

    I had a number of customers asking for a method to "generalize"
    QGIS.ini, so it doesn't contain any "user" specific file and
    directory references, i.e

    (From qgis.ini)

    Configuration\MODELS_FOLDER=*C:\\Users\\Bo Victor
    
Thomsen\\AppData\\Roaming*\\QGIS\\QGIS3\\profiles\\default\\processing\\models
    Configuration\SCRIPTS_FOLDERS=*C:\\Users\\Bo Victor
    
Thomsen\\AppData\\Roaming*\\QGIS\\QGIS3\\profiles\\default\\processing\\scripts

    could be:

    
Configuration\MODELS_FOLDER=*%APPDATA%*\\QGIS\\QGIS3\\profiles\\default\\processing\\models
    
Configuration\SCRIPTS_FOLDERS=*%APPDATA%*\\QGIS\\QGIS3\\profiles\\default\\processing\\scripts

    or likewise.

    The ultimate reason is to have a method to distribute a "standard"
    setup for QGIS, complete with plugins and specialized setup
    parameters. This can be done by making a standard QGIS
    installation (which the IT departments love, especially with the
    new .msi package) and afterwards replace the "default" profile
    directory with at  directory specific for the organisation.
    However, the process of making the new profile will place a lot of
    file/directory references in QGIS.ini that is specific for the
    super-user developing the new profile.

-- Med venlig hilsen / Kind regards

    Bo Victor Thomsen

    _______________________________________________
    QGIS-Developer mailing list
    QGIS-Developer@lists.osgeo.org <mailto:QGIS-Developer@lists.osgeo.org>
    List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
    <https://lists.osgeo.org/mailman/listinfo/qgis-developer>
    Unsubscribe:
    https://lists.osgeo.org/mailman/listinfo/qgis-developer
    <https://lists.osgeo.org/mailman/listinfo/qgis-developer>

_______________________________________________
QGIS-Developer mailing list
QGIS-Developer@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

Reply via email to