Merge branch 'master' into gilbert
authorJoseph Spiros <joseph.spiros@ithinksw.com>
Wed, 16 Feb 2011 20:15:46 +0000 (15:15 -0500)
committerJoseph Spiros <joseph.spiros@ithinksw.com>
Wed, 16 Feb 2011 20:15:46 +0000 (15:15 -0500)
* master: (135 commits)
  Added db_index to Contentlet/ContentReference names, AttributeValue fields, and Navigation keys. Added related_lookup_fields to shipherd admins and corrected its use on NodeAdmin/RedirectAdmin. Corrected TargetURLModel.get_target_url call of get_reverse_params. Corrected typo in BlogView feed creation.
  Minor fixes and additions to better_feeds following testing.
  Added indices to all Attribute fields to improve lookup speed. Added related_lookup_fields to NodeAdmin for grappelli forward-compatibility.
  Moved FeedMultiViewMixin to models.py and renamed to FeedView. Improved feed type support and clarified the API (based heavily on django.contrib.syndication.views.Feed). Adjusted NewsletterView and BlogView to use the new API.
  Tweaked LazyNode to handle trailing slashes. Corrected missing import in models/nodes.py.
  Corrected shipherd handling of the navigation_items related_name following commit 6ac457d4ac226a474e988dfb898682ae04a86eb0.
  Removed trailing_pathsep support from TreeManager.get_with_path. Set nodes to have URLs without a trailing slash, and set node_view to redirect node urls with a trailing slash to the same url, but without the slash. Resolves issue 75 completely.
  Added an abstract TargetURLModel to handle issues related to targeting a node, a node's subpaths, a url, or a reversable view. Addresses issue 79 and issue 76.
  Minor correction to LazyNode's use of subpath to avoid NameErrors.
  Minor cleanup to penfield.utils after get_absolute_url refactor.
  Refactored Node.get_absolute_url and related functions (such as MultiView.reverse) to use a new Node.construct_url function, which handles constructing any type of url involving a node or raises an appropriate error if this is not possible. Moved MultiView.reverse to View and merged View.get_subpath into it. Added APPEND_SLASH support to node_view, including support for resolving non-philo targets (resolves issue 75). Made urlpatterns for penfield and waldo MultiViews unambiguous. Altered LazyNode to always return a subpath of at least "/". Added handles_subpath methods to View and MultiView.
  Registered Tag as a value model.
  Corrected EntityAdminMetaclass handling of inherited vs. declared readonly_fields.
  Clarified error messages and docstrings in models/nodes.py. Removed an extraneous argument to MultiView.urlpatterns.
  Added navigation key to shipherd's has_navigation filter.
  Merged cowell back into core.
  Added support for DateTime information being stored in a JSONAttribute. Switched ForeignKeyAttribute and M2MAttribute to store the related model in self.to instead of overwriting self.model.
  Initial raw_id_fields support for proxy fields. Involves hacks to bypass model validation for things like raw_id_fields, where validation depends on model._meta.get_field(). Renamed EntityForm to ProxyFieldForm to more accurately reflect its purpose. Removed extraneous code from ProxyFieldForm that didn't belong there.
  Ungenericized get_item_queryset and added tag/issue queryset fetching methods to BlogView and NewsletterView, respectively. Re-added the tag_archive_view and issue_archive_view methods and set them up to use these methods.
  Added get_item_queryset method to BlogView and NewsletterView so that subclasses can replace this functionality. Moved get_context hook onto the MultiView base class and added a basic_view method which provides a simple way to add a view method to a multiview's urlpatterns for a related View subclass instance.
  ...

Conflicts:
README

1  2 
README

diff --cc README
--- 1/README
--- 2/README
+++ b/README
@@@ -3,7 -3,21 +3,22 @@@ Philo is a foundation for developing we
  Prerequisites:
        * Python 2.5.4+ <http://www.python.org/>
        * Django 1.2+ <http://www.djangoproject.com/>
 +      * django-staticmedia 0.2+ <http://pypi.python.org/pypi/django-staticmedia/>
+       * django-mptt e734079+ <https://github.com/django-mptt/django-mptt/> 
        * (Optional) django-grappelli 2.0+ <http://code.google.com/p/django-grappelli/>
+       * (Optional) recaptcha-django r6 <http://code.google.com/p/recaptcha-django/>
+       * (Optional) south 0.7.2+ <http://south.aeracode.org/>
  
- To contribute, please visit the project website <http://philo.ithinksw.org/>.
+ To contribute, please visit the project website <http://philo.ithinksw.org/>. Feel free to join us on IRC at irc://irc.oftc.net/#philo.
+ ====
+ Using philo
+ ====
+ After installing philo and mptt on your python path, make sure to complete the following steps:
+ 1. add 'philo.middleware.RequestNodeMiddleware' to settings.MIDDLEWARE_CLASSES.
+ 2. add 'philo' and 'mptt' to settings.INSTALLED_APPS.
+ 3. include 'philo.urls' somewhere in your urls.py file.
+ 4. Optionally add a root node to your current Site.
+ Philo should be ready to go!