aboutsummaryrefslogtreecommitdiff
path: root/.svn/text-base
diff options
context:
space:
mode:
Diffstat (limited to '.svn/text-base')
-rw-r--r--.svn/text-base/CHANGELOG.txt.svn-base105
-rw-r--r--.svn/text-base/INSTALL.txt.svn-base14
-rw-r--r--.svn/text-base/LICENSE.txt.svn-base55
-rw-r--r--.svn/text-base/MANIFEST.in.svn-base7
-rw-r--r--.svn/text-base/README.txt.svn-base10
-rw-r--r--.svn/text-base/setup.py.svn-base72
6 files changed, 263 insertions, 0 deletions
diff --git a/.svn/text-base/CHANGELOG.txt.svn-base b/.svn/text-base/CHANGELOG.txt.svn-base
new file mode 100644
index 0000000..1a8c360
--- /dev/null
+++ b/.svn/text-base/CHANGELOG.txt.svn-base
@@ -0,0 +1,105 @@
+========================
+Django Tagging Changelog
+========================
+
+
+SVN Trunk Changes:
+------------------
+
+* Added a ``tagging.generic`` module for working with list of objects
+ which have generic relations, containing a ``fetch_content_objects``
+ function for retrieving content objects for a list of ``TaggedItem``s
+ using ``number_of_content_types + 1`` queries rather than the
+ ``number_of_tagged_items * 2`` queries you'd get by iterating over the
+ list and accessing each item's ``object`` attribute.
+
+* Added a ``usage`` method to ``ModelTagManager``.
+
+* ``TaggedItemManager``'s methods now accept a ``QuerySet`` or a
+ ``Model`` class. If a ``QuerySet`` is given, it will be used as the
+ basis for the ``QuerySet``s the methods return, so can be used to
+ restrict results to a subset of a model's instances. The
+ `tagged_object_list`` generic view and ModelTaggedItemManager``
+ manager have been updated accordingly.
+
+* Removed ``tagging\tests\runtests.py``, as tests can be run with
+ ``django-admin.py test --settings=tagging.tests.settings``.
+
+* A ``tagging.TagDescriptor`` is now added to models when registered.
+ This returns a ``tagging.managers.ModelTagManager`` when accessed on a
+ model class, and provide access to and control over tags when used on
+ an instance.
+
+* Added ``tagging.register`` to register models with the tagging app.
+ Initially, a ``tagging.managers.ModelTaggedItemManager`` is added for
+ convenient access to tagged items.
+
+* Moved ``TagManager`` and ``TaggedItemManager`` to ``models.py`` - gets
+ rid of some import related silliness, as ``TagManager`` needs access
+ to ``TaggedItem``.
+
+Version 0.2.1, 16th Jan 2008:
+-----------------------------
+
+* Fixed a bug with space-delimited tag input handling - duplicates
+ weren't being removed and the list of tag names wasn't sorted.
+
+Version 0.2, 12th Jan 2008:
+---------------------------
+
+Packaged from revision 122 in Subversion; download at
+http://django-tagging.googlecode.com/files/tagging-0.2.zip
+
+* Added a ``tag_cloud_for_model`` template tag.
+
+* Added a ``MAX_TAG_LENGTH`` setting.
+
+* Multi-word tags are here - simple space-delimited input still works.
+ Double quotes and/or commas are used to delineate multi- word tags.
+ As far as valid tag contents - anything goes, at least initially.
+
+* BACKWARDS-INCOMPATIBLE CHANGE - ``django.utils.get_tag_name_list`` and
+ related regular expressions have been removed in favour of a new tag
+ input parsing function, ``django.utils.parse_tag_input``.
+
+* BACKWARDS-INCOMPATIBLE CHANGE - ``Tag`` and ``TaggedItem`` no longer
+ declare an explicit ``db_table``. If you can't rename your tables,
+ you'll have to put these back in manually.
+
+* Fixed a bug in calculation of logarithmic tag clouds - ``font_size``
+ attributes were not being set in some cases when the least used tag in
+ the cloud had been used more than once.
+
+* For consistency of return type, ``TaggedItemManager.get_by_model`` now
+ returns an empty ``QuerySet`` instead of an empty ``list`` if
+ non-existent tags were given.
+
+* Fixed a bug caused by ``cloud_for_model`` not passing its
+ ``distribution`` argument to ``calculate_cloud``.
+
+* Added ``TaggedItemManager.get_union_by_model`` for looking up items
+ tagged with any one of a list of tags.
+
+* Added ``TagManager.add_tag`` for adding a single extra tag to an
+ object.
+
+* Tag names can now be forced to lowercase before they are saved to the
+ database by adding the appropriate ``FORCE_LOWERCASE_TAGS`` setting to
+ your project's settings module. This feature defaults to being off.
+
+* Fixed a bug where passing non-existent tag names to
+ ``TaggedItemManager.get_by_model`` caused database errors with some
+ backends.
+
+* Added ``tagged_object_list`` generic view for displaying paginated
+ lists of objects for a given model which have a given tag, and
+ optionally related tags for that model.
+
+
+Version 0.1, 30th May 2007:
+---------------------------
+
+Packaged from revision 79 in Subversion; download at
+http://django-tagging.googlecode.com/files/tagging-0.1.zip
+
+* First packaged version using distutils.
diff --git a/.svn/text-base/INSTALL.txt.svn-base b/.svn/text-base/INSTALL.txt.svn-base
new file mode 100644
index 0000000..7f90cca
--- /dev/null
+++ b/.svn/text-base/INSTALL.txt.svn-base
@@ -0,0 +1,14 @@
+Thanks for downloading django-tagging.
+
+To install it, run the following command inside this directory:
+
+ python setup.py install
+
+Or if you'd prefer you can simply place the included ``tagging``
+directory somewhere on your Python path, or symlink to it from
+somewhere on your Python path; this is useful if you're working from a
+Subversion checkout.
+
+Note that this application requires Python 2.3 or later, and Django
+0.96 or later. You can obtain Python from http://www.python.org/ and
+Django from http://www.djangoproject.com/. \ No newline at end of file
diff --git a/.svn/text-base/LICENSE.txt.svn-base b/.svn/text-base/LICENSE.txt.svn-base
new file mode 100644
index 0000000..1654536
--- /dev/null
+++ b/.svn/text-base/LICENSE.txt.svn-base
@@ -0,0 +1,55 @@
+Django Tagging
+--------------
+
+Copyright (c) 2007, Jonathan Buchanan
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Initially based on code from James Bennett's Cab:
+
+Cab
+---
+
+Copyright (c) 2007, James Bennett
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of the author nor the names of other
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file
diff --git a/.svn/text-base/MANIFEST.in.svn-base b/.svn/text-base/MANIFEST.in.svn-base
new file mode 100644
index 0000000..618270b
--- /dev/null
+++ b/.svn/text-base/MANIFEST.in.svn-base
@@ -0,0 +1,7 @@
+include CHANGELOG.txt
+include INSTALL.txt
+include LICENSE.txt
+include MANIFEST.in
+include README.txt
+recursive-include docs *.txt
+recursive-include tagging/tests *.txt
diff --git a/.svn/text-base/README.txt.svn-base b/.svn/text-base/README.txt.svn-base
new file mode 100644
index 0000000..acb2d47
--- /dev/null
+++ b/.svn/text-base/README.txt.svn-base
@@ -0,0 +1,10 @@
+==============
+Django Tagging
+==============
+
+This is a generic tagging application for Django projects
+
+For installation instructions, see the file "INSTALL.txt" in this
+directory; for instructions on how to use this application, and on
+what it provides, see the file "overview.txt" in the "docs/"
+directory. \ No newline at end of file
diff --git a/.svn/text-base/setup.py.svn-base b/.svn/text-base/setup.py.svn-base
new file mode 100644
index 0000000..66daf3e
--- /dev/null
+++ b/.svn/text-base/setup.py.svn-base
@@ -0,0 +1,72 @@
+"""
+Based entirely on Django's own ``setup.py``.
+"""
+import os
+from distutils.command.install import INSTALL_SCHEMES
+from distutils.core import setup
+
+def fullsplit(path, result=None):
+ """
+ Split a pathname into components (the opposite of os.path.join) in a
+ platform-neutral way.
+ """
+ if result is None:
+ result = []
+ head, tail = os.path.split(path)
+ if head == '':
+ return [tail] + result
+ if head == path:
+ return result
+ return fullsplit(head, [tail] + result)
+
+# Tell distutils to put the data_files in platform-specific installation
+# locations. See here for an explanation:
+# http://groups.google.com/group/comp.lang.python/browse_thread/thread/35ec7b2fed36eaec/2105ee4d9e8042cb
+for scheme in INSTALL_SCHEMES.values():
+ scheme['data'] = scheme['purelib']
+
+# Compile the list of packages available, because distutils doesn't have
+# an easy way to do this.
+packages, data_files = [], []
+root_dir = os.path.dirname(__file__)
+tagging_dir = os.path.join(root_dir, 'tagging')
+pieces = fullsplit(root_dir)
+if pieces[-1] == '':
+ len_root_dir = len(pieces) - 1
+else:
+ len_root_dir = len(pieces)
+
+for dirpath, dirnames, filenames in os.walk(tagging_dir):
+ # Ignore dirnames that start with '.'
+ for i, dirname in enumerate(dirnames):
+ if dirname.startswith('.'): del dirnames[i]
+ if '__init__.py' in filenames:
+ packages.append('.'.join(fullsplit(dirpath)[len_root_dir:]))
+ elif filenames:
+ data_files.append([dirpath, [os.path.join(dirpath, f) for f in filenames]])
+
+# Dynamically calculate the version based on tagging.VERSION
+version_tuple = __import__('tagging').VERSION
+if version_tuple[2] is not None:
+ version = "%d.%d_%s" % version_tuple
+else:
+ version = "%d.%d" % version_tuple[:2]
+
+setup(
+ name = 'tagging',
+ version = version,
+ description = 'Generic tagging application for Django',
+ author = 'Jonathan Buchanan',
+ author_email = 'jonathan.buchanan@gmail.com',
+ url = 'http://code.google.com/p/django-tagging/',
+ packages = packages,
+ data_files = data_files,
+ classifiers = ['Development Status :: 4 - Beta',
+ 'Environment :: Web Environment',
+ 'Framework :: Django',
+ 'Intended Audience :: Developers',
+ 'License :: OSI Approved :: BSD License',
+ 'Operating System :: OS Independent',
+ 'Programming Language :: Python',
+ 'Topic :: Utilities'],
+)