This campaign covers extending the functionality present in QGIS “Value Relation Widgets”, allowing the implementation of complex, dynamic filters within QGIS attribute forms. The functionality can be used to implement “drill-down” forms within QGIS, where the values available in one field depend on the values of other fields:
When implemented, this feature will allow users to create “value-relation” expressions based on the current value of another field in the same form. When the user modifies a field’s value, the choices available in all related fields are filtered to match the new value – allowing a hierarchical filtering strategy (drill-down, or cascading) inside a form. For a detailed exploration of the feature, a video tour demonstrating a proof-of-concept of the proposed changes can be viewed below.
days remaining (campaign deadline 11 May 2018)
About the feature
For a detailed exploration of the feature, a video tour demonstrating a proof-of-concept of the proposed changes can be viewed below.
A basic version of this functionality was previously available in QGIS 2.x through the “Form Aware Value Relation Widget” plugin. Instead of porting that plugin to make it compatible with changes in QGIS 3.0, North Road are instead running this campaign to add the same functionality out-of-the box with QGIS 3.2. This means that all QGIS users can safely create projects with drill-down forms which will work across all QGIS installs, regardless of which plugins are installed, and we can address some of the deeper limitations and issues in the plugin (for instance, the plugin cannot be used in the attribute table, only in attribute forms).
Hall of fame
Current contributors to this work include:
How it works
Crowd funding operates by multiple organisations (or individuals) each pledging to contribute part of the campaign’s funding goals. In order to make the proposed changes to QGIS form handling, we require 3,500€ to make this feature a reality. You can contribute part (or all) of these funds. If the funding goal is NOT reached, then no contributions are payable and the feature will not be added to QGIS.
We’d love to see this work implemented in time for the the QGIS 3.2 release (scheduled for release in June 2018). However, the timing for inclusion in this release is very tight, so in order to allow time for completion of the work and sufficient user testing prior to release, the deadline for this campaign is May 11 2018. Due to the tight deadline, we reserve the right to defer inclusion of the feature until the 3.4 release (scheduled for October 2018). The faster this campaign is successful, the more likely it is to be implemented in the 3.2 release. (In other words, if you want to see this feature land in QGIS 3.2, don’t wait until the end of the campaign to pledge!).
If you’d like to see this feature extending the power of QGIS’ forms, then your contributions are vital! Pledge, or publicise, this campaign to help it reach the funding goal before the May 19 deadline!
Some important thing to note
- We believe that unit testing leads to stable software, and should be a prerequisite for all sponsored work for QGIS. So it goes without saying that the proposed changes will be soaked in regression unit tests covering the non-GUI portion of the changes to ensure that they are stable and will not break in future QGIS releases! (Seriously – if your developer isn’t implementing regression tests as a standard part of your sponsored features, then you’re only getting half of what you’re paying for and it’s probably time to revisit your contracts)
We understand that it can be difficult for organisations to approve contributing to a crowd-funding effort, so we’re trying to make this process as painless as possible:
- To contribute to the campaign, just email email@example.com and let us know your details and how much you will be contributing to the goal. Due to the administrative burden of processing payments, the minimum pledge we will accept is 100€ (or equivalent).
- We will contact you to discuss payment options – but NO payment is required in advance!
- If (and ONLY if!) the campaign is successful we will invoice you directly for your pledged amount. Payment in full will be required within 14 days of the campaign’s completion. (Please contact us to discuss if you need different payment terms).
- When we have received all pledged funds we will commence the work detailed above, and provide regular updates as we go.
We believe this system will give organisations confidence that contributing to the campaign carries no risk and is compatible with their organisation’s accounting procedures. If however you have concerns or would like to contribute in another way, just contact us to discuss further!
- What happens if contributions exceed the campaign goal?
If contributions are in excess of the stated goal, we will reinvest the excess back into QGIS by using it to fund some of our other ongoing QGIS contributions, such as the ongoing work writing unit tests to ensure QGIS releases are stable and free from regressions. This will be done in a transparent and accountable way, and we will openly report on the ways additional funds are being used.
This work will be undertaken by QGIS core contributor, Alessandro Pasotti. Alessandro has a long established history of very high quality contributions to QGIS development.
At North Road we invest back into the open-source geospatial community. We do large amounts of volunteer fixes and feature additions across the open source geospatial stack, so by investing in us you also help support us improve the open source GIS stack.
We use the software we develop daily, so we take pride in developing stable, polished code with extensive regression testing and refined workflows. We offer long-term support for the code we create, providing proactive fixes and improvements even after a project is complete. Our development record demonstrates the confidence you can place in us for timely delivery of this crowd funding campaign’s product.
Please contact us for any further details on this project or for contributing to this campaign.