#21693 closed New feature (wontfix)

detaultfilter wordcap converts a string into titlecase but respect the actual uppercase

Reported by: areski Owned by: nobody
Component: Template system Version: 1.6
Severity: Normal Keywords: filter
Cc: areski@… Triage Stage: Unreviewed
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: yes UI/UX: no

Description

The defaultfilter title may in many cases be an issue to obtain a correct titlecase, for instance if the title contains acronyms or abbreviations. For instance, "SMS count"|title will display "Sms Count" which is not the desired result.

The defaultfilter wordcap try to provide a filter for this.
"SMS count"|wordcap -> "SMS Count"

Attachments (1)

patch_ticket_21693.txt (4.7 KB) - added by areski 14 months ago.

Download all attachments as: .zip

Change History (6)

Changed 14 months ago by areski

comment:1 Changed 14 months ago by areski

  • Cc areski@… added
  • Needs documentation unset
  • Needs tests unset
  • Patch needs improvement unset

comment:2 Changed 14 months ago by timo

I think this would be of enough general interest to include it with Django. The lower-casing behavior of the title filter has seemed funny to me. I've wanted to use something like it in the admin, but ended up having to use capfirst in its absence. The name also seems reasonable although I'd want to make sure no one can think of something better. I'll leave this ticket "unreviewed" for a second opinion. I see you've also submitted a pull request.

comment:3 Changed 14 months ago by bmispelon

While I agree that the current implementation can be surprising when it comes to all-caps words, I would argue that:

1) It's basically a thin wrapper over Python's str.title [1] (with just a few extra special-casing for dealing with digits and apostrophes)
2) There's no such thing as "correct titlecase" since it depends on the locale (and even in English, there are different conventions)

So all-in-all, I'm personally -0 on the idea of adding a new add-hoc, English-centric template filter to the builtins.

[1] http://docs.python.org/3/library/stdtypes.html#str.title

comment:4 Changed 14 months ago by areski

The main idea is to deal better with acronyms and abbreviation. This is also valid for many languages, it's not just English-centric, ie Spanish, French, Italian, Dutch, etc...

Yes, you are totally right, there is no such a thing as a correct titlecase.

I would agree for this not living in the core of Django, nevertheless I think this will be a good replacement where we use at the moment "title" in django-admin and for the beginners to try to deal easily with Abbreviation without creating a new templatetag.

comment:5 Changed 12 months ago by timo

  • Resolution set to wontfix
  • Status changed from new to closed
Note: See TracTickets for help on using tickets.
Back to Top