django-antichaos
================

Introduction
------------

This is a django application for visual editing your messy tag clouds.
It adds a new section to you 'tagging' admin page. Usually, this page
has address http://127.0.0.1:8000/admin/tagging/ or something like that.

Take look at the bottom part of the page. If you have any objects with tags,
then you should see list of tag clouds, available for viewing and editing.
Just click on one of these links.

Tag cloud show as usual, but there are small numbers above each tag. They are
object counters.

There are few major features of django-antichaos:

* You can merge tags, using Drag&Drop.
* You can rename tag, double clicking on it.
* You can see helpful tooltip, pointing on some tag and waiting 3 seconds.
* Remember, nothing changed until "Apply" button pressed! :)


Dependencies
------------

This project depends on latest (>=0.3_pre) version of [django-tagging][] or
[django-tagging-ng][].

To load data into example application, you need install BeautifulSoup.


Installation
------------

To run example application, follow these steps:

* checkout sources;
* run `buildout bootstrap`;
* run `bin/buildout -v` to get all neccessary packages together. You can specify
  additional options to buildout either from command line or using config inheritance;
* create `local_settings.py` if your want to override some default settings.;
* run `bin/django syncdb`;
* add data from Netscape Bookmarks file:
    * export your bookmarks from delicios;
    * upload file with bookmarks using command `bin/django upload_bookmarks delicios-bookmarks.html`;
* or load fixture:
    * `bin/django loaddata djangodash_fixture`;
* run `bin/django runserver` or `bin/django runfcgi <params>`;
* point your browser to http://127.0.0.1:8000;
* have a fun!

Use this app in your own project
--------------------------------

* add django_antichaos to INSTALLED_APPS.
* add line `(r'^antichaos/', include('django_antichaos.urls'))` to your urlpatterns.
* have a fun again!

Also, you can modify look of the tag cloud and tooltips. Just override following templates:

* antichaos/tag_cloud.html -- tag cloud rendering.
* antichaos/tag_cloud_list.html -- list of available tag clouds.
* antichaos/tag_preview.html -- list of tagged objects (for tooltip).

By the way, you can override tag_preview.html and tag_cloud.html for particular
application or even model. Just create `antichaos/app_label/tag_preview.html` or
`antichaos/app_label/model_name/tag_preview.html`.

TODO
----

DONE
----

* Created example application.
* Added code to visualize tag cloud.
* Added jQuery support and Drag&Drop
* Added collection of user actions in a queue.
* Added backend code to process actions and merge TagItems.
* Added tag preview.
* Added tag renaming.
* Added ability to load bookmarks from a file in Netscape Bookmarks format.
* Added Undo/Redo.
* Added progress indicator while tag cloud loaded.


Contacts
--------

Author: Alexander Artemenko <svetlyak.40wt at gmail>
Site:   http://aartemenko.com

[django-tagging]: http://code.google.com/p/django-tagging/
[django-tagging-ng]: http://github.com/svetlyak40wt/django-tagging-ng/

