“Český” kalendář v administraci

Javascriptového pomocníka pro zadávání datumů v administračních stránkách Djanga všichni dobře známe. Stručně:

  • pokud se na stránce vyskytne datumové políčko, vykreslí se vedle něj ikona
  • kliknutím na ikonku se objeví malé okno pro pohodlný výběr konkrétního dne z kalendáře

Kalendář v Djangu

Pozornému čtenáři jistě neunikl drobný detail: dny v kalendáři začínají nedělí (ano, jde o prazvláštní zvyk našich přátel za velkou louží).

Co s tím? Hacknout!

Otevřete si soubor django/contrib/admin/media/js/calendar.js a proveďte jednoduchou úpravu ve funkci draw, poblíž řádku 60 (změny se týkají pouze tučně zvýrazněných řádků):


...

// Draw days-of-week header
var tableRow = quickElement('tr', tableBody);
for (var i = 1; i < 7; i++) {
    quickElement('th', tableRow, CalendarNamespace.daysOfWeek[i]);
}
quickElement('th', tableRow, CalendarNamespace.daysOfWeek[0]);

var startingPos = new Date(year, month-1, 1).getDay() - 1;
if (startingPos < 0) startingPos = 6;
var days = CalendarNamespace.getDaysInMonth(month, year);

...

Po reloadnutí stránky by jste měli vidět kalendář respektující naše zvyklosti (pondělky v prvním sloupci):

Upravený kalendář v Djangu

Otázka na závěr: opravdu neexistuje pohodlnější způsob, jak kalendář přepnout do “české” podoby? Vyřešili jste tento problém jinak?

Blog comments powered by Disqus