cookbook.git
9 years agoCreate the static directory if it is missing
W. Trevor King [Fri, 23 Jul 2010 11:45:48 +0000 (07:45 -0400)]
Create the static directory if it is missing

Since we don't have any files in it at the moment, and Git doesn't
track empty directories.

9 years agoPython 2.5 doesn't allow fn(*args, imap=value)
W. Trevor King [Fri, 23 Jul 2010 01:25:29 +0000 (21:25 -0400)]
Python 2.5 doesn't allow fn(*args, imap=value)

9 years agoAdded digest authentication for cookbook editing
W. Trevor King [Thu, 22 Jul 2010 16:42:58 +0000 (12:42 -0400)]
Added digest authentication for cookbook editing

The example .htaccess file sets up the user
  user: guest
  pass: guest
or, if you're running CherryPy < 3.2
  user: guest
  pass: 8eb3d4841608f011af3dd4bdc4c8b340

9 years agoAdded recipe removal link and replaced ' />' -> '/>'
W. Trevor King [Thu, 22 Jul 2010 16:10:57 +0000 (12:10 -0400)]
Added recipe removal link and replaced ' />' -> '/>'

9 years agoAdded recipe editing pages.
W. Trevor King [Thu, 22 Jul 2010 11:58:16 +0000 (07:58 -0400)]
Added recipe editing pages.

Specifically:
* Added "add new recipe" link to recipes.html template.
* Added "edit recipe" link to recipe.html template.
* Added new template: edit-recipe.html
* Added new Server.edit() and sub-functions.
* Moved Cookbook's save dir definition to Cookbook.save_dir.
* Moved Recipe.path name generation to Cookbook._free_path().
* Cookbook.make_index() now adds paths to Recipes with .path == None.
* In-memory updates for everything.
* Add/remove ingredient blocks with index mapping.

Along the way, I fixed up some random bugs:
* recipe.html was failing if there were no ingredient_blocks or directions.
* Amount.__unicode__ was failing if some attributes were None.
* Ingredient.__unicode__ was failing if .amount was None.
* Allow printing of recipes when .directions == None.

I also made a few style fixes:
* Server.tag_regexp -> ._tag_regexp, since it's internal data.

9 years agoCleanup base.html template comments
W. Trevor King [Thu, 22 Jul 2010 11:53:50 +0000 (07:53 -0400)]
Cleanup base.html template comments

9 years agoUse CherryPy decoding tool to decode GET/POST arguments
W. Trevor King [Thu, 22 Jul 2010 11:52:33 +0000 (07:52 -0400)]
Use CherryPy decoding tool to decode GET/POST arguments

9 years agoEncode URLs into ASCII.
W. Trevor King [Wed, 21 Jul 2010 19:12:19 +0000 (15:12 -0400)]
Encode URLs into ASCII.

URL encoding is undefined.  See
  http://www.cherrypy.org/ticket/825
  http://www.w3schools.com/TAGS/ref_urlencode.asp
  http://www.rfc-editor.org/rfc/rfc2396.txt
Therefore, safe URLs should be in a subset of ASCII.  We convert our
URLs to UTF-8, and then use urllib.quote_plus() to escape the UTF-8
into ASCII.

9 years agoUse dropdowns (with textbox option for new tags) for tag manipulation.
W. Trevor King [Wed, 21 Jul 2010 18:58:51 +0000 (14:58 -0400)]
Use dropdowns (with textbox option for new tags) for tag manipulation.

9 years agoRedirect for invalid tags too (just don't manipulate the data)
W. Trevor King [Wed, 21 Jul 2010 18:38:02 +0000 (14:38 -0400)]
Redirect for invalid tags too (just don't manipulate the data)

9 years agoFix bugs typos in _clean_tag()
W. Trevor King [Wed, 21 Jul 2010 18:35:31 +0000 (14:35 -0400)]
Fix bugs typos in _clean_tag()

9 years agoMerge branch 'master' of ssh://einstein/~/public_html/code/git/cookbook
W. Trevor King [Wed, 21 Jul 2010 18:29:12 +0000 (14:29 -0400)]
Merge branch 'master' of ssh://einstein/~/public_html/code/git/cookbook

9 years agoMerge branch 'master' of ssh://einstein/~/public_html/code/git/cookbook
W. Trevor King [Wed, 21 Jul 2010 18:29:47 +0000 (14:29 -0400)]
Merge branch 'master' of ssh://einstein/~/public_html/code/git/cookbook

9 years agoSanitize input tags
W. Trevor King [Wed, 21 Jul 2010 18:28:54 +0000 (14:28 -0400)]
Sanitize input tags

9 years agoUse POST for data-changing forms, GET otherwise
W. Trevor King [Wed, 21 Jul 2010 18:20:16 +0000 (14:20 -0400)]
Use POST for data-changing forms, GET otherwise

Also float the recipe list tag-selection form to the right.

9 years agoImport with statement so recent server.py changes work with Python 2.5
W. Trevor King [Wed, 21 Jul 2010 16:25:00 +0000 (12:25 -0400)]
Import with statement so recent server.py changes work with Python 2.5

9 years agoAdd ability to filter recipe lists by tag
W. Trevor King [Wed, 21 Jul 2010 16:19:50 +0000 (12:19 -0400)]
Add ability to filter recipe lists by tag

9 years agoAdded tag display to the recipe page with tag-editing forms
W. Trevor King [Wed, 21 Jul 2010 15:56:32 +0000 (11:56 -0400)]
Added tag display to the recipe page with tag-editing forms

9 years agoAdd defaults to `bin/cook.py --help` output, where appropriate.
W. Trevor King [Wed, 21 Jul 2010 15:30:31 +0000 (11:30 -0400)]
Add defaults to `bin/cook.py --help` output, where appropriate.

9 years agoFix missing <td> typo in recipe.html template
W. Trevor King [Mon, 21 Jun 2010 19:53:56 +0000 (15:53 -0400)]
Fix missing <td> typo in recipe.html template

9 years agoAdded link to cookbook.git and trailing slashes to footer
W. Trevor King [Mon, 21 Jun 2010 19:53:29 +0000 (15:53 -0400)]
Added link to cookbook.git and trailing slashes to footer

9 years agoAdd backlinks recipe->index
W. Trevor King [Mon, 21 Jun 2010 19:48:26 +0000 (15:48 -0400)]
Add backlinks recipe->index

9 years agoUse relative index->recipe links
W. Trevor King [Mon, 21 Jun 2010 19:48:02 +0000 (15:48 -0400)]
Use relative index->recipe links

9 years agoAssorted fixes to work with Python 2.5 and CherryPy 2.3
W. Trevor King [Mon, 21 Jun 2010 19:20:35 +0000 (15:20 -0400)]
Assorted fixes to work with Python 2.5 and CherryPy 2.3

The earlier version worked in Python 2.6 and CherryPy 3.x.

9 years agoRan update_copyright.py
W. Trevor King [Mon, 21 Jun 2010 18:02:11 +0000 (14:02 -0400)]
Ran update_copyright.py

9 years agoBegan versioning
W. Trevor King [Mon, 21 Jun 2010 18:01:10 +0000 (14:01 -0400)]
Began versioning