<div dir="ltr">Thanks Tim for the summary and for the very cool work!<div><br></div><div>I have one comment about APIs, the current /layers /maps API are flat, meaning they don't include data of other database tables then layers_layer and maps_map, the reason of this was to keep (make) them fast to feed the geonode search page. I agree that there should be more comprehensive API even if maybe a bit slower so we can definitely add new ones like *layer-full* and *maps-full*. Actually we have already something like this for resource owners.</div><div><br></div><div>Ciao!</div></div><div class="gmail_extra"><br><div class="gmail_quote">2017-04-26 17:20 GMT+02:00 Tim Sutton <span dir="ltr"><<a href="mailto:tim@kartoza.com" target="_blank">tim@kartoza.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">Hi All<div><br></div><div>I just wanted to show you some of the work we have been doing to integrate QGIS Desktop and GeoNode. I made a little video which illustrates it here:</div><div><br></div><div><a href="https://www.youtube.com/watch?v=z0WYsEUNmg4" target="_blank">https://www.youtube.com/watch?<wbr>v=z0WYsEUNmg4</a></div><div><br></div><div>This work was funded by WorldBank  / GFDRR. We expect to make a pull request against QGIS to merge this work next week some time.</div><div><br></div><div>There have been previous attempts to integrate GeoNode support into QGIS but ours is a bit different as it is implemented in C++ and will be 'native' / baked in code that every QGIS user can make use of without needing to install any plugins etc. We will also create python bindings for the helper classes so that you can use the GeoNode backend logic in your own QGIS plugins if you want to without re-inventing the wheel.</div><div><br></div><div>My colleague, Gavin, has previously written to this list to provide a broad outline of our work plans. One of the pain points we have had while working on this functionality is the GeoNode API. Our implementation basically consisted of hopping around between the GeoNode API and GeoNode's CSW instance. This diagram summarizes the process we follow:<br><div></div></div><div><br></div><div><a href="https://files.gitter.im/kartoza/kartoza/ucRq/GeoNodeArchitecture.png" target="_blank">https://files.gitter.im/<wbr>kartoza/kartoza/ucRq/<wbr>GeoNodeArchitecture.png</a></div><div><br></div><div>We had to do a lot of hoop jumping to get valid layer end points and we would like to implement some changes to the API to make it less of a pain. Our first tentative doodling on how the API can be improved are here:</div><div><br></div><div><a href="https://files.gitter.im/kartoza/kartoza/YxLa/GeoNodeArchitecture-API.png" target="_blank">https://files.gitter.im/<wbr>kartoza/kartoza/YxLa/<wbr>GeoNodeArchitecture-API.png</a></div><div><br></div><div>We would make any changes as non breaking changes (unless people are using really crapping parsing techniques to pull data out of the API responses) - adding to some existing responses, and adding new API end points to support pushing and pulling styles and so on. I expect we will add more to the above diagram, consider it a first draft only. Is anyone else working on things that might affect the API / planning changes to the API? If so could we collaborate with you so that we can see what is coming down the line? Our work will probably be split between:</div><div><br></div><div>a) a few specific changes we need to execute our work.</div><div>b) a proposal of what other things might be improved in the API for future</div><div><br></div><div>I look forward to hearing from anyone else who is interested in QGIS / GeoNode integration and GeoNode API improvements.</div><div><br></div><div>Regards</div><div><br></div><div>Tim</div><div><br></div><div><br></div><div><br></div><div><div><div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;line-height:normal;text-align:center"><span>—</span></div><div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;line-height:normal;text-align:center"><div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:center;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;margin:0px;line-height:normal;min-height:14px"><br></div><br class="m_5460579199130245736Apple-interchange-newline" style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:center;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><span style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:center;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><span><span><span><span><span><img id="m_54605791991302457367ABE600E-F399-462E-ADCD-A607771A550B" src="cid:1A5DF6DE-E302-4C28-BFBD-29663CBF1351"></span><div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:center;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;margin:0px;line-height:normal;min-height:14px"><br class="m_5460579199130245736Apple-interchange-newline"><br class="m_5460579199130245736Apple-interchange-newline"><br class="m_5460579199130245736Apple-interchange-newline"><br class="m_5460579199130245736Apple-interchange-newline"><br class="m_5460579199130245736Apple-interchange-newline"><br></div><div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:center;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;margin:0px;line-height:normal;min-height:14px"><br></div><div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:center;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;margin:0px;line-height:normal"><b>Tim Sutton</b></div><div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:center;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;margin:0px;line-height:normal;min-height:14px"><br></div><div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:center;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;margin:0px;line-height:normal"><b>Co-founder:</b><span class="m_5460579199130245736Apple-converted-space"> </span>Kartoza</div><div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:center;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;margin:0px;line-height:normal"><b>Project chair:</b><span style="font-weight:normal"><span class="m_5460579199130245736Apple-converted-space"> </span><a href="http://QGIS.org" target="_blank">QGIS.org</a></span></div><div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:center;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;margin:0px;line-height:normal;min-height:14px"><br></div><div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:center;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;margin:0px;line-height:normal">Visit <a href="http://kartoza.com/" target="_blank"><span>http://kartoza.com</span></a> to find out about open source:</div><div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:center;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;margin:0px;line-height:normal;min-height:14px"><br></div><div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:center;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;margin:0px;line-height:normal">Desktop GIS programming services</div><div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:center;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;margin:0px;line-height:normal">Geospatial web development</div><div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:center;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;margin:0px;line-height:normal">GIS Training</div><div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:center;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;margin:0px;line-height:normal">Consulting Services</div><div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:center;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;margin:0px;line-height:normal;min-height:14px"><br></div><div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:center;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;margin:0px;line-height:normal"><b>Skype</b>: timlinux </div><div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:center;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;margin:0px;line-height:normal"><b>IRC:</b><span class="m_5460579199130245736Apple-converted-space"> </span>timlinux on #qgis at <a href="http://freenode.net" target="_blank">freenode.net</a></div><div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:center;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;margin:0px;line-height:normal"><br></div><div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:center;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;margin:0px;line-height:normal">Kartoza is a merger between Linfiniti and Afrispatial</div>
</span></span></span></span></span></div>
</div><br></div></div><br>______________________________<wbr>_________________<br>
geonode-devel mailing list<br>
<a href="mailto:geonode-devel@lists.osgeo.org">geonode-devel@lists.osgeo.org</a><br>
<a href="https://lists.osgeo.org/mailman/listinfo/geonode-devel" rel="noreferrer" target="_blank">https://lists.osgeo.org/<wbr>mailman/listinfo/geonode-devel</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">Simone </div>
</div>