Hi,<div><br></div><div>I&#39;ve just uploaded the first working version of the new Python plugins Django app.</div><div><br></div><div>Implementation is hopefully complete but it still needs testing, authentication is also missing since it should be handled by an external provider (ldap ?) but for testing as a logged in user you can log in through the admin panel.</div>

<div><br></div><div>A few open questions still remain:</div><div><br></div><div>1 - metadata are read from the zip file on plugin creation and that is fine, but what happens when a new version of an existing plugin is uploaded and there is a conflict in metadata plugin&#39;s name ? Should the plugin name name be updated with the new plugin name or just fail? I guess that updating description is just fine but changing plugin&#39;s name it isn&#39;t, so I put some validation in place to avoid name mismatch or (worse) having different names in the DB and in the zip packages.</div>
<div><br></div>
<div>2 - according to specs, the users are initially untrusted and they cannot publish their plugins. When a staff member grants the &quot;trust&quot; to the user, he can publish all his plugins. Plugins have a creator and 0 or more &quot;owners&quot; who can manage the plugin exactly as if they were the original author. Common sense says that if a user i not &quot;trusted&quot; and he uploads a new versions, the whole plugin should be unpublished (remember the published flag is in the Version model)</div>
<div><br></div><div>3 - &quot;last&quot; version in the two &quot;branches&quot; stable/experimental i somewhat tricky (and IMHO the name is misleading, since if &quot;last&quot; has to do with time, the upload time should suffice to determine which version is the last one). I did not put too much magic in the code and this part can be improved for sure.</div>
<div><br></div><div>So, I&#39;m not sure that the workflow I have implemented is what you had in your mind.</div><div><br></div><div>I need your help in </div><div>* testing the application</div><div>* check the english strings (I&#39;m not sure about them)</div>
<div>* ldap authentication</div><div>* styles: I&#39;ve stolen the CSS from main QGIS site, ponies are warmly welcome!</div><div><br></div><div>last note: the app was built to be &quot;portable&quot;, so moving it around and changing the routing (urls.py) should work without problems. I also resisted to the temptation to use custom triggers in the DB.</div>
<div><br></div><div>See the Makefile for some useful dev targets and the docs folder for a (very short) introduction.</div><div><br></div>
<div>Happy testing !</div><div><br></div><div><a href="https://github.com/qgis/qgis-django/">https://github.com/qgis/qgis-django/</a></div><div><br>-- <br>Alessandro Pasotti<br>w3:   <a href="http://www.itopen.it" target="_blank">www.itopen.it</a><br>

</div>