django-antichaos

Django application for easy tag manipulation.It's addon to django-tagging or django-taggin-ng applications.


Keywords
django, apps, tagging, tags, jquery, javascript
License
BSD-3-Clause
Install
pip install django-antichaos==0.2.0

Documentation

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 [django-tagging][] (>=0.3_pre) or
[django-tagging-ng][] (>=0.3.2).

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`.

Management command
------------------

django-antichaos allows to save actions in a plain text files and to replay them
using management command `antichaos_process_rules`. This can be useful, when you
want to experiment on the preproduction site, and then apply these changes to a
production.

To save all actions, add in the settings.py following option: `ANTICHAOS_SAVE_DIR='/some/directory'`.

These file can contian comments and rules. Comment line must be started with #, any other lines
considered as rules for antichaos.

To play rules, just enter `./django antichaos_process_rules --model blog.entry rules.sql`, for example.

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/