This release offers new features that make working with advanced capabilities of INTERLIS even more enjoyable, such as with **advanced models** and using **validation configurations**. Furthermore, it offers some enhancements and fixes, like **clearing the cache**, a pleasant **log** and the support of drag'n'drop of **extra meta attribute files**.
Improvements
Optimized Project Generation of extended INTERLIS Models
The problem
If a model or topic contains extended classes, the inclusive base classes are implemented in the physical database what leaded to a confusing layer tree, messy forms and lots of unused relations.
![image](https://github.com/opengisch/QgisModelBaker/assets/28384354/c4374c22-fe86-4013-88a3-598d551ad312)
While the you only want to see, what is relevant for you, Model Baker detects the ***irrelevant*** layers and lets you to apply an optimization to the project.
The solution
When generating a project you can now choose one of the following strategies to optimize your project:
![image](https://github.com/opengisch/QgisModelBaker/assets/28384354/f0655dd2-998a-4884-b49d-e0800e41c8bb)
Hide strategy
Base class layers with extensions of the same name are **_hidden_** and base class layers with multiple extensions **_also_**. Unless the extension is in the same model, then it's _**not hidden**_ but renamed.
![image](https://github.com/opengisch/QgisModelBaker/assets/28384354/533392a0-6277-4e8a-ad7d-57a58b96576d)
Relations of hidden layers are **_not created_** and thus the widgets for them _**neither**_.
Group strategy
Base class layers with extensions of the same name are ***grouped***, base class layers with multiple extensions ***also***. Unless the extension is in the same model, then it's ***not grouped*** but ***renamed***.
![image](https://github.com/opengisch/QgisModelBaker/assets/28384354/3a655661-c436-42de-8d42-c11e51743ed9)
Relationships of grouped layers are ***created***, but widgets are ***not applied*** to the form.
None strategy
Independently from extended models (but pretty much connected to it), we eliminate ambiguous layer naming in general. This means:
- If layername is ambiuous append topic name as suffix.
- If layername is still ambiguous append model name as suffix.
![image](https://github.com/opengisch/QgisModelBaker/assets/28384354/23d7031c-50bf-4df7-8a01-b4e304073372)
Sponsors
This feature has been financed by [QGIS Anwendergruppe Schweiz - Groupe d'utilisateurs QGIS Suisse - Swiss QGIS User Group](https://qgis.ch)
Persistent Logging Functionality
Warning and information messages are printed to the log panel of the wizard dialog. This is good to see the information immediately, but to track down a problem, users and developers require the information of past actions. The new logging functionality saves each log output to a daily file (in the plugin directory, i.e. the QGIS profile folder) and keeps the last ten files accessible via the Model Baker menu.
![image](https://github.com/opengisch/QgisModelBaker/assets/28384354/0d68786f-2d21-4acd-a083-a89ea9c98f76)
Error dialog
If Java is not installed, a barely visible log line used to be output. For people using Model Baker (and thus ili2db) for the first time, this was quite confusing. Now a popup appears indicating that Java is not installed and pointing to a possible [download source](https://adoptium.net/download/).
Clear Ilicache Button
In several places, but especially on the Source Selection Page, the user can select and use a model from the network of [Swiss Geodata Repositories](https://opengisch.github.io/QgisModelBaker/background_info/repositories/). These files are downloaded and cached locally. In case of immediate changes - which is not often the case, but can be if the model is in a test phase - the problem can occur that a different file (the one from the cache instead of the one from the repository) is used. Users had to delete the cache folder manually, which was usually too advanced and inconvenient. This is now solved by having a button do it for you.
![clearcache](https://github.com/opengisch/QgisModelBaker/assets/28384354/3584b318-460d-4b2c-84d5-10eae30665d5)
Store Validator Config File in Project Variable
Since some time you have the possibility to select a [config file](https://opengisch.github.io/QgisModelBaker/user_guide/validation/#using-of-meta-attributes-in-the-validation) in the validator and pass it to ili2db. Since it is meaningful to use this multiple times, it is handy that you can now store the path in the QGIS project variables. The path is stored relatively (so that the project can be exchanged to other systems), but passed absolutely to ili2db. Likewise, it is possible to pass (and store) a key to the ilidata repository, like `ilidata:<key>`.
![image](https://github.com/opengisch/QgisModelBaker/assets/28384354/039f5fef-165c-4feb-8a53-830d6529195b)
Drag&Drop Support for Extra Meta Attribute Files (toml/ini)
While Model Baker claims to do everything for you when dragging and dropping files into QGIS, the Extra Meta Attribute Files (the file formerly known as the toml file) were not considered. This is now fixed. When you drop an additional Extra Meta Attribute File, it is automatically set in the advanced schema import settings.
Other Improvements and Fixes
* Possibility to validate schemas based on ili2db 3.x.x
* Fix missing port parsing from layer to use in validator
* COMPOSITION strength relation on STRUCTURE childs: A `STRUCTURE` object cannot exist without a parent. This means when the parent is deleted the entry in the linking table (the structure) needs to be deleted. Means, every relation with a child that is a structure, shall have composition as strength.
* Better default size for Layer Style Categories Dialog
* Add the icon for the main menu entry
* Remove old unused files
ili2db
Using ili2db version 5.0.0 fixing this https://github.com/opengisch/QgisModelBaker/issues/779
Library
Using modelbaker library [1.5.0](https://github.com/opengisch/QgisModelBakerLibrary/releases/tag/v1.5.0)