Papillon has been updated. This new version is mainly to support Django 1.4. To make the upgrade refer to the documentation.
Finally Chimère v2.0 has been released.
A major refactoring of the source code has been made to achieve two main goals:
- make the core application more “Django-ish”,
I hope that these changes will allow more reusability of the Chimère as a Django application and make external contributions easier.
To match with Django evolutions Chimère needs now the version 1.4 of this framework.
Django South has been integrated to Chimère. Keeping trace and applying evolutions in the database model are now very simple.
Beside these main changes many features improvement have been made since the last v1.2 version:
- Import of external data from ShapeFile, KML, GeoRSS, CSV
- Export of Chimère data to ShapeFile, KML, CSV
- Import of OpenStreetMap data and export to OpenStreetMap database, with edit conflicts awareness
- Management of multimedia files and images (several by POI)
- Other map layers (configuration in administration interface). By default MapQuest, OSM Transport and Cyclemap are available
- In admin interface, easier and more complete configuration of areas
- Default configuration of the map easier thanks to the setting of a default area.
Many thanks to all contributors to this v2. Particulary to Yohan Boniface for his initiation of the work on the code refactoring and to Frédéric Léon for his many tests.
This version is mainly a refactoring of the application. There were many dirty patches, they are now removed. It’s not perfect (the “vote” template really needs to be improved) but it is far better. I am also planning to integrate in this version many improvements that have been suggested.
In details, improvements for the different type of users are:
I have made a move from the VCS software Subversion to the decentralized VCS Git. I will not explain all the benefits because many sites detail why Git is better than X (it is always biased but in this site the gain in regards to Subversion is obvious).
Django South has been integrated to Papillon. Evolutions in the database model are now very simple. It is a new dependency but this software is now a classic, well packaged in most distributions.
Most of hard-coded links have been corrected. It is far cleaner and many problems are now avoided.
Administrators also benefit from the integration of Django South. It results in less pain to move from one version to another.
There are fewer variables to set in the settings.py file. It is now easier to install. On the other side the migration to this version is a little bit harder.
The documentation is now really part of the project (integrated in the VCS). It is more simple to correct and improve. Therefore the documentation will probably be more up to date. It is now generated with Sphinx: it is prettier and (also) easier to update.
Next to mod_python, the documentation details the installation using mod_wsgi. It is now the recommended installation: it is lighter and faster.
More specifically for public instances
By setting publics instances I saw that spammers were loving poll’s comments. That’s why it is now possible to limit the number of comments by polls.
Also I saw in these instances that first pages polls, in addition to make life easier to spam robots, exposed polls that fall under the privacy. It annoys me because it can be done despite the user will (people can check the box “Make this poll public” without really understanding it). Even if these polls are exposed knowingly, I don’t want to support the lack of decency of some people on the web. So it is now simple to remove the ability to make polls public.
For the user
If the end-user indirectly benefits of the last improvements by having a more responsive Papillon, the only visible evolution for him is: the new theme.
The new version of Papillon is already installed on many locations. For instance here: papilio@Niadomo.
For those who want to take a look at the source code, git clone is enough:
git clone git://www.peacefrogs.net/git/papillon
A mailing-list for technical questions has been set. To subscribe to this mailing-list, it is here.
While working on a new project (some news about it soon, I hope) I have encountered problems with JQuery UI Autocomplete and JQuery UI DatePicker. The two of them seem to interact badly when used on the same page. Precisely the problem occurs sometimes (it is really erratic) when an autocomplete field is initialized after a datepicker field. This occurs with jQuery 1.4.2 and JQuery-UI 1.8 but I have tried with the latest version of jQuery (1.6.1) and the behavior is the same.
As a small fix I chose to initialize datepicker fields after autocomplete fields by using $(window).load for datapickers instead of $.ready. I’ll try to identify the problem more precisely to submit it but while it’s pending this solution may help.
Just a few news but Chimère has continued its evolution.
First of all there are changes in the tools: a move has been made from SVN to Git.
Two branches have been created:
- A 1.0 branch which is the first stable version of Chimère. Based on Django 1.0 there is only a few people concerned by this branch: no evolutions only corrections on this branch.
- The 1.1 branch is based on Django 1.2. It has received the last improvements.
The new features:
- Events. Now you can easily announce and geo-localize items at a specific date.
- RSS feeds integration (whole site, on a specific area, on a specific category).
- Multiple categories for an item.
- The ability to cut an instance by areas. Each area have got her own categories and a specific URL (the main URL + /the-area-name)
- A dynamic evaluation of categories available on the user screen.
Most of the new features are available on the Carte OuVerte rennaise.
The blog has been updated to WordPress version 3. A new theme has been created: Hokusai. It is available here under license GPL v3.0.
I also corrected the plugin Category show which was displaying twice the items. Now date are displayed before the title. The diff in the file wp-category-show.php (0.4.2 version):
diff wp-category-show.php.origin wp-category-show.php
< if($cat2post = $wpdb->get_results("SELECT po.post_title, po.guid
> if($cat2post = $wpdb->get_results("SELECT distinct po.ID, po.post_date, po.post_title, po.guid
< $html = "t<li><a href="$post->guid" rel="bookmark" title="$post->post_title">$post->post_title</a></li>";
> $html = "t<li><a href="$post->guid" rel="bookmark" title="$post->post_title">".date_i18n("F d, Y",strtotime($post->post_date))." – $post->post_title</a></li>";