1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587
|
WebHelpers ChangeLog
====================
tip (development version)
-------------------------
No changes yet.
1.1 (2010-08-09)
----------------
* webhelpers.paginate:
- Remove stray Routes import. (Other conditional Routes imports remain for
backward compatibility; see module docstring.)
* webhelpers.pylonslib.minify:
- Remove _jsmin module due to licensing issues. Details are in
webhelpers/pylonslib/_jsmin.py . You can install the "jsmin" package in
PyPI (which has the same license), and the helper will use it. If that
package is installed, the helper will use it. Otherwise the helper will
emit a warning and leave the Javascript unchanged. CSS minification is not
affected.
1.0 (2010-06-01)
-----------------
* webhelpers.html.tools:
- Bugfix re URLs surrounded by []. Bug #32.
1.0rc1 (2010-05-24)
-------------------
* webhelpers.html.tags:
- Change 'id' argument to all form field helpers. The default value is now
NotGiven rather than None. NotGiven tells WebHelpers to create an ID
attribute based on the field name (formerly None did this). None suppresses
the ID attribute entirely (formerly "" did this, and still does for backward
compatibility). This behavior of None is consistent with other parts of
WebHelpers.
* webhelpers.misc:
- New ``format_exception`` helper to display an exception as Python would but
without the traceback.
1.0b7 (2010-05-16)
------------------
* webhelpers.containers:
- Bugfix in ``canada_provinces``, reported by rpetrello.
* webhelpers.html.grid / webhelpers.pylonslib.grid:
- Updates by Ergo, mainly styling and CSS classes.
- Rename classes: ObjectGrid, PylonsGrid, PylonsObjectGrid.
* webhelpers.paginate:
- New URL generation algorithm for ``Page.pager()``. You can pass a callback
function to the constructor, or it will fall back to ``pylons.url.current``
or ``routes.url_for`` (in that order). It will raise ``NotImplementedError`` if
none of these are available.
- Don't allow extra positional args in constructor. The implementation does
nothing with them, so it shouldn't allow them.
- Import ``sqlalchemy.orm`` as well as ``sqlalchemy``. User Sybiam reports an
error otherwise.
- Add code to work with other iterable containers, contributed by Marcin
Kuzminski.
* webhelpers.pylonslib.flash:
- New argument ``ignore_duplicate`` to prevent adding the same message
multiple times.
1.0b6 (2010-04-23)
------------------
* webhelpers.containers / webhelpers.misc:
- ``NotGiven`` moved to webhelpers.misc.
* webhelpers.html.grid / webhelpers.pylonslib.grid:
- Updates by Ergo, including SQLAlchemy object grid classes.
* webhelpers.misc:
- New function ``deprecate``.
* webhelpers.number:
- New functions ``format_data_size``, ``format_byte_size``, and
``format_bit_size`` for displaying numbers in SI units
("1.2 kilobytes", "1.2 kB", "1.0 KiB"). Contributed by
Wojciech Malinowski.
1.0b5 (2010-03-18)
------------------
* webhelpers.html.converters:
- Re-add import of ``render`` and ``sanitize`` from
``webhelpers.html.render``. That module is not public.
* webhelpers.misc:
- New exception ``OverwriteError``.
- Add ``exclude`` argument to ``subclasses_only``.
* webhelpers.text:
- Disable ``convert_misc_characters``: it fails its doctests and there's
no consensus on what it should do.
* "number_to_human_size.py" is in unfinished directory. This is an old rails
helper from WebHelpers 0.6.4. It's here pending a more comprehensive helper;
see http://bitbucket.org/bbangert/webhelpers/issue/2/reinstate-number_to_human_size
1.0b4 (2010-01-24)
------------------
* Delete ``webhelpers.string24``. WebHelpers no longer supports Python 2.3.
* webhelpers.feedgenerator:
- Add a basic ``Geometry`` class for the Geo helpers.
* webhelpers.html.grid_demo:
- Demonstrates ``webhelpers.html.grid``. Run as
"python -m webhelpers.html.grid_demo OUTPUT_DIRECTORY".
* webhelpers.html.converters:
- Don't import ``render`` and ``sanitize`` to converters module.
(Reversed in 1.0b5.)
* webhelpers.html.secure_form:
- Move module to ``webhelpers.pylonslib.secure_form`` because it depends
on ``pylons.session``.
* webhelpers.misc:
- New helper ``flatten`` to interpolate embedded lists and tuples.
- New helper ``subclasses_only`` to extract the subclasses of an abstract
base class from a module or iterable.
* webhelpers.pylonslib.flash:
- Moved to its own module.
- Changed ``Flash.__html__()`` implementation.
- Categories may be specified in constructor. Patch by Eli Collins.
* webhelpers.pylonslib.grid:
- Bugfixes.
* webhelpers.pylonslib.minify:
- Bugfix.
* webhelpers.util:
- Bugfix: ``parse_qs`` moved from ``cgi`` to ``urlparse`` in Python 2.6.
Patch by Mike Verdone.
1.0b3 (2009-12-29)
------------------
* webhelpers.feedgenerator:
- Allow either lat-lon and lon-lat formats in geometry data. The default is
lat-lon. For lon-lat, set ``GeoFeedMixin.is_input_latitude_first`` to
false. (You can set in a subclass or instance before writing the output.)
lat-lon is the most common format but GeoDjango and some other libraries
use lon-lat. The XML output is always lat-lon per the GeoRSS spec.
* webhelpers.html.grid:
- New module to create an HTML table from a list of records.
* webhelpers.html.tags:
- New helpers ``Doctype`` (class) and ``xml_declaration``.
- Python 2.5 compatibility fix by Yuen Ho Wong. (#20)
* webhelpers.html.tools:
- New helper ``js_obfuscate`` implements the old rails helpers.
* webhelpers.util:
- New helper ``update_params`` to update query parameters in a URL.
1.0b2 (2009-12-21)
------------------
* webhelpers.constants:
- Fix spelling of Massachusetts.
* webhelpers.feedgenerator:
- Sync with Django rev 11910. This adds GeoRSS and makes the API more
extensible, as well as fixing a few bugs.
(Re-added the Atom1 'published' property.)
(The 'generator' and 'source' properties were lost, but they weren't
working correctly anyway.)
GeoRSS usage: use the Geo\* classes and add ``geometry=(lat, lon)`` to
each news item. Other shapes and a (not yet implemented) Geometry class are
allowed; see the source.
* webhelpers.html:
- New ``HTML.cdata()`` method for producing "<!![CDATA[ ... ]]>" sections.
- The basic tag builders (``HTML.a()`` and ``HTML.tag("a")``) now have a
``_nl`` arg which, if true, inserts a newline between content elements
and at the end of the tag for readability. Example::
HTML.a("A", "B", href="/") => '<a href="/">AB</a>'
HTML.a("A", "B", href="/", _nl=True) => '<a href="/">\nA\nB\n</a>\n'
This does not affect HTML attributes nor the higher-level tag helpers.
The exact spacing is subject to change. The tag building code has been
refactored to accommodate this.
* webhelpers.html.tags:
- ``form()`` puts its hidden "_method" field in a '<div style="display:none">'
to conform to XHTML syntax. The style prevents the div from being displayed
or affecting the layout. A new arg ``hidden_fields`` may be a dict or
iterable of additional hidden fields, which will be added to the div.
- Set magic ID attribute in ``hidden`` helper to match behavior of the other
tag helpers.
- ``image()`` can now calculate the width and height automatically
from an image file, using either the PIL algorithm or the pure Python
algorithm in ``webhelpers.media``. It also logs the dimensions to the
debug log for troubleshooting.
* webhelpers.html.tools:
- Reimplement ``highlight()`` using the HTML builder. New arguments add
flexibility. Deprecate the ``highlighter`` argument, which creates tags
via string interpolation.
- Fixed ``auto_link()`` to parse slash characters in query string.
Patch by hanula; Bitbucket issue #10.
- Fix HTML overescaping and underescaping in auto_link(). Patch by Marius
Gedminas. A parsing bug remains:
http://pylonshq.com/project/pylonshq/ticket/657
* webhelpers.markdown / webhelpers.html.converters:
- ``webhelpers.markdown`` will not be upgraded to the version 2 series but
will remain at 1.7. Users who want the latest bugfixes and extensions
should download the full Markdown package or the alternative Markdown2
from PyPI.
- The ``markdown()`` helper in
``webhelpers.html.converters`` now has support for external Markdown
implementations. You can pass a specific module via the ``markdown``
argument, otherwise it will attempt to import ``markdown`` or fall back
to ``webhelpers.markdown``.
- To see which version is autoloaded,
call ``_get_markdown_module()`` and inspect the ``.__file__``,
``.version``, and/or ``.version_info`` attributes of the return value.
* webhelpers.media:
- Bugfix in ``get_dimensions_pil``.
* webhelpers.paginate:
- Change for SQLAlchemy 0.6. (bug #11)
* webhelpers.pylonslib:
- Fix HTML overescaping. Patch by Marius Gedminas.
1.0b1 (2009-11-20)
------------------
* Delete deprecated subpackage: rails.
These are replaced by new helpers in date, html, misc, number, text.
* Delete other deprecated subpackages: commands, hinclude, htmlgen, pagination.
Pagination is replaced by paginate.
* webhelpers.constants:
- ``uk_counties`` returns tuples rather than strings.
* webhelpers.feedgenerator:
- ``rfc3339_date`` now accepts date objects without crashing.
- Add 'generator' and 'source' properties to RSS2 feeds. Patch by
Vince Spicer. (Removed in 1.0b2 due to bugs.)
- Add 'published' property to Atom1 feeds.
* webhelpers.html.converters:
- New helper ``render()`` formats HTML to text.
- New helper ``sanitize()`` strips HTML tags from user input.
* webhelprs.html.tags:
- New helper ``css_classes()`` to add classes to a tag programmatically.
- Fix bug in tag helpers when passing ``id_`` argument (although ``id`` is
recommended instead).
- Add OptionGroup class and optgroup support to select(). Patch by
Alexandre Bourget.
* webhelpers.html.tools:
- New helper ``strip_tags()`` deletes HTML tags in a string.
* webhelpers.paginate:
- Allow all versions of SQLAlchemy > 0.3.
- convert "_range" and "_pagelink" function to Page class method so that they
can be overridden
- pager "onclick" argument use template string value. So, javascript code can
use "partial_url" or "page" value or any. Backward compatibility is
considered.
- Add presliced list option to avoid slicing when list is already.
* webhelpers.pylonslib:
- is now a package.
- The ``Flash`` class now accepts severity categories, thanks to Wichert
Akkerman. The docstring shows how to set up auto-fading messages using
Javascript a la Mac OSX's "Growl" feature. This is backward compatible
although you should delete existing sessions when upgrading from 0.6.x.
- ``webhelpers.pylonslib.minify`` contains enhanced versions of
``javascript_link`` and ``stylesheet_link`` to minify (shrink) files for
more efficient transmission. (EXPERIMENTAL: tests fail in
unfinished/disabled_test_pylonslib_minify.py; see
http://pylonshq.com/project/pylonshq/ticket/466 .)
* webhelpers.text:
- Port several helpers from Ruby's "stringex" package.
+ ``urlify()`` converts any string to a URL-friendly equivalent.
+ ``remove_formatting()``.
+ If the ``unidecode`` package is installed, these two helpers will also
transliterate non-ASCII characters to their closest pronounciation
equvivalent in ASCII.
+ Four other helpers reduce HTML entities or whitespace.
0.6.4 (12/2/2008)
-----------------
* text(), password(), checkbox(), textarea(), and select() have a
magic 'id attribute. If not specified it defaults to the name. To suppress
the ID entirely, pass ``id=""``. This is to help set the ID for title().
radio() doesn't do this because it generates the ID another way. hidden()
doesn't because hidden fields aren't used with labels.
* Bugfixes in mt.select():
- selected values not being passed as list.
- allow currently-selected value to be a long.
* Delete experimental module webhelpers.html.form_layout.
0.6.3 (10/7/2008)
-----------------
* Bugfix in distribute() found by Randy Syring.
* New helpers title() and required_legend() in webhelpers.html.tags.
* New directory webhelpers/public for static files
* Suggested stylesheet webhelpers/public/stylesheets/webhelpers.css
(You'll have to manually add this to your application.)
0.6.2 (10/2/2008)
-----------------
* nl2br() and format-paragraphs were not literal-safe.
* webhelpers.converters:
- New helper transpose() to turn a 2D list sideways (making the rows columns
and the columns rows).
* webhelpers.markdown:
- Upgrade to Markdown 1.7.
- Add a warning about escaping untrusted HTML to
webhelpers.html.converters.markdown() docstring.
- Did not include Markdown's extensions due to relative import issues.
Use the full Markdown package if you want footnotes or RSS.
* webhelpers.media:
- New module for muiltimedia helpers. Initial functions determine the size
of an image and choose a scaling factor.
* webhelpers.html.tags:
- Options tuple contains Option objects for select/checkbox/radio groups.
select() now uses this automatically.
- checkbox() and radio() now have a ``label`` argument.
* webhelpers.number:
- Population standard deviation contributed by Lorenzo Catucci.
* webhelpers.html.form_layout: form field layout (PRELIMINARY, UNSTABLE).
0.6.1 (7/31/2008)
-----------------
* Include a faster version of cgi.escape for use by the literal object.
* Fixed bug in SimplerXMLGenerator that the FeedGenerator uses, so that
it doesn't use a {} arg.
* New helpers:
- nl2br() and format_paragraphs() in webhelpers.html.converters.
- ul() and ol() in webhelpers.html.tags.
- series() in webhelpers.text.
* HTML.tag() is a synonym for make_tag(), both in webhelpers.html.builder.
* Change default form method to "post" (rather than "POST") to conform to XHTML.
* Add DeprecationWarning for webhelpers.rails package,
webhelpers.rails.url_for(), and webhelpers.pagination.
0.6 (07/08/2008)
----------------
* Add webhelpers.html.builder to generate HTML tags with smart escaping,
along with a literal type to mark preformatted strings.
* Deprecate webhelpers.rails, including its Javascript libraries (Prototype
and Scriptaculous). Wrap all rails helpers in a literal.
* Many new modules:
- constants - countries, states, and provinces.
- containers - high-level collections, including flash messages.
- date - date/time (rails replacement).
- html.converters - text-to-HTML (rails replacement).
- html.tags - HTML tags (rails replacement).
- html.tools - larger HTML chunks (rails replacement).
- mail - sending email.
- misc - helpers that are neither text, numeric, container, nor date.
- number - numeric helpers and number formatters.
- paginate - successor to deprecated pagination module.
- text - non-HTML text formatting (rails replacement).
* Removed dependency on simplejson and normalized quotes. Patch by Elisha
Cook.
COMPATIBILITY CHANGES IN 0.6 DEV VERSION
----------------------------------------
* image(), javascript_link(), stylesheet_link(), and auto_discovery_link()
in webhelpers.html.tags do not add prefixes or suffixes to the URL args
anymore; they output the exact URL given. Same for button_to() in
webhelpers.html.tools.
* webhelpers.html.tags.javascript_path was deleted.
0.3.4 (03/18/08)
----------------
* Fixed missing javascripts dir.
0.3.3 (02/27/08)
----------------
* Fixed strip_unders so that it won't explode during iteration when the size
changes.
* Updated feedgenerator with the latest changes from Django's version (only
a few additional attributes).
0.3.2 (09/05/07)
----------------
* Added capability to pass pagination a SA 0.4 Session object which will be
used for queries. This allows compatibility with Session.mapper'd objects
and normal SA 0.4 mapper relations.
* Updated SQLAlchemy ORM pagination for SA 0.4 Session.mapper objects.
* Updated Scriptaculous to 1.7.1 beta 3 (1.7.0 is incompatible with Prototype
1.5.1). Thanks errcw. Fixes #288.
0.3.1 (07/14/07)
----------------
* Added the secure_form_tag helper module, for generating form tags
including client-specific authorization tokens for preventing CSRF
attacks. Original patch by David Turner. Fixes #157.
* current_url now accepts arguments to pass along to url_for. Fixes #251.
* Updated prototype to 1.5.1.1.
* Added image support to button_to. Patch by Alex Conrad. Fixes #184.
* Fix radio_button and submit_to_remote not handling unicode values.
Fixes #235.
* Added support for the defer attribute to javascript_include_tag. Suggested
by s0undt3ch. Fixes #214.
* Added a distutils command compress_resources, which can combine CSS
and Javascript files, and compress Javascript via ShrinkSafe. Add
"command_packages=webhelpers.commands" in [global] in setup.cfg to
enable this command for your package.
0.3 (03/18/2007)
----------------
* WARNING: paginate now takes arguments intended for the collection object as
query_args. This could affect backwards compatibility. This fixes a common
issue that non-keyword arguments passed into paginate get eaten by
paginate's keyword arguments instead of being in \*args to go on to the
collection.
* Added environ checking with Routes so that page will be automatically pulled
out of the query string, or from the Routes match dict if available.
* Added ability for paginate to check for objects that had SQLAlchemy's
assign_mapper applied to them.
* Added better range checking to paginator to require a positive value that is
less than the total amount of pages available for a page.
* WARNING: Due to a typo, the Text helper highlight function no longer
highlights text with the CSS class name 'hilight' by default: it now uses
the CSS class name 'highlight' instead. The function's 'hilighter' keyword
argument has also been deprecated, use 'highlighter' instead.
* Fixed the broken markdown function.
* Upgraded markdown from 1.5 to 1.6a.
* Sync'd Prototype helper to 6057.
* Sync'd Urls helper to 6070.
* Sync'd Text helper to 6096.
* Sync'd Date helper to 6080.
* Sync'd Tags helper to 5857.
* Sync'd Asset tag helper to 6057.
* Sync'd Rails Number helper to 6045.
* Updated Ajax commands to internally use ``with_`` to avoid name conflicts with
Python 2.5 and beyond. Reported by anilj. Fixes #190.
* Applied patch from David Smith to decode URL parts as Routes does.
Fixes #186.
* Changed pagination to give better response if its passed an invalid object.
Patch from Christoph Haas.
* Fixed scriptaculous helper docs example. Fixes #178.
* Updated scriptaculous/prototype to Prototype 1.5.0 and Scriptaculous 1.7.0.
* Updated scriptaculous javascripts to 1.6.5. Fixes #155.
* Updated remote_function doc-string to more clearly indicate the arguments
it can receive.
* Synced Rails Javascript helper to 5245 (escape_javascript now escaping
backslashes and allow passing html_options to javascript_tag).
0.2.2 (10/20/06)
----------------
* Fixed tag_options function to not str() string and let html_escape handle
it so unicode is properly handled. Reported with fix by Michael G. Noll.
* Added sqlalchemy.Query support to the pagination orm wrappers, patch from
Andrija Zarić
* Fixed python 2.3 compliance in webhelpers.rails (use of sorted()) (Thanks
Jamie Wilkinson)
0.2.1 (9/7/06)
--------------
* Adding counter func to text helpers, patch from Jamie Wilkinson.
* Sync'd Rails Text helper to 4994.
* Sync'd Rails Asset tag helper to 4999.
* Sync'd Rails Form tag helper to 5045, also doesn't apply to our version.
* Sync'd Rails Javascript func to 5039, doesn't apply to us.
* Updated Scriptaculous to 1.6.3.
* Updated Prototype to 1.5.0_rc1.
* Updated radio_button so that id's are unique. Brings up to date with Rails
changeset #4925, also fixes #103.
* More precise distance_of_time_in_words (Follows bottom half of #4989 Rails
changeset)
* button_to accepts method keyword so you can PUT and DELETE with it.
(Follows #4914 Rails changeset)
* Fixed auto_link to parse more valid url formats (Thanks Jamie Wilkinson).
* Sync'd text helper from latest Rails version.
* Fixed form tag's method matching to be case insensitive.
0.2 (8/31/06)
-------------
* Adding simplejson req, adding use of json'ification. Updated scriptaculous
helpers to split out JS generation for use in JS Generation port.
* Finished sync'ing Rails ports (urls, tags) in WebHelpers. Closes #69.
url and prototype tests updated, url helpers updated to handle method
argument.
* Sync'd scriptaculous helper.
* Sync'd javascript, prototype helpers and prototype.js to latest Rails
modifications. Added more prototype tests.
* Sync'd form_options, form_tag helpers. form_tag's form function can now
accept other HTTP methods, and will include a hidden field for them if
its not 'get' or 'post'.
* Sync'd number helper, added number unit tests.
* Added markdown.py (python-markdown) for new markdown support in text helper.
* Added textile.py (PyTextile) for new textilize support in text helper.
* Brought asset/date/text helpers up to date with revision info.
0.1.3 (Release)
---------------
* Brought feedgenerator in line with Django's version, which fixed the missing
support for feed categories and updated classes for new-style. Other minor
feed updates as well. Now synced as of Django r3143.
* Fixed typo in feedgenerator import, reported by tiksin@free.fr.
* Added ``webhelpers.rails.asset_tag``, for generating links to other assets
such as javascripts, stylesheets, and feeds.
|