Revision 24182db6
[#1418] Filtrage sur la date.
Améliore le formulaire de filtrage concernant les dates :
- Un exemple de date au format attendu est donnée en exemple via un
placeholder pour les navigateurs supportant cette fonctionnalité.
- Il est également disponible au survol du champ par la souris.
- Le format a été rendu plus laxiste : une date sans heure peut être
saisie (ex : "25/12/2015" au lieu de "25/12/2015 00:00:00".
Change-Id: I192e5841c04b1b993d1d31dd197956783adfef91
Refs: #1418.
Reviewed-on: https://vigilo-dev.si.c-s.fr/review/1685
Tested-by: Build system <qa@vigilo-dev.si.c-s.fr>
Reviewed-by: Thomas BURGUIERE <thomas.burguiere@c-s.fr>
vigiboard/controllers/plugins/date.py | ||
---|---|---|
31 | 31 |
from vigiboard.controllers.plugins import VigiboardRequestPlugin, ITEMS |
32 | 32 |
from vigiboard.lib import dateformat |
33 | 33 |
|
34 |
|
|
35 |
class ExampleDateFormat(object): |
|
36 |
""" |
|
37 |
Une classe permettant d'obtenir un exemple de date |
|
38 |
correspondant au format de la locale de l'utilisateur. |
|
39 |
""" |
|
40 |
def __str__(self): |
|
41 |
""" |
|
42 |
Retourne l'heure courante au format attendu, |
|
43 |
encodée en UTF-8. |
|
44 |
|
|
45 |
@return: Heure courante au format attendu (en UTF-8). |
|
46 |
@rtype: C{str} |
|
47 |
""" |
|
48 |
return unicode(self).encode('utf-8') |
|
49 |
|
|
50 |
def __unicode__(self): |
|
51 |
""" |
|
52 |
Retourne l'heure courante au format attendu. |
|
53 |
|
|
54 |
@return: Heure courante au format attendu. |
|
55 |
@rtype: C{unicode} |
|
56 |
""" |
|
57 |
format = dateformat.get_date_format() |
|
58 |
date = datetime.strftime(datetime.now(), format).decode('utf-8') |
|
59 |
return _('Eg. %(date)s') % {'date': date} |
|
60 |
|
|
61 |
|
|
34 | 62 |
class PluginDate(VigiboardRequestPlugin): |
35 | 63 |
"""Plugin pour l'ajout d'une colonne Date.""" |
36 | 64 |
def get_search_fields(self): |
... | ... | |
44 | 72 |
validator=dateformat.DateFormatConverter(if_missing=None), |
45 | 73 |
date_format=dateformat.get_date_format, |
46 | 74 |
calendar_lang=dateformat.get_calendar_lang, |
75 |
attrs={ |
|
76 |
# Affiche un exemple de date au survol |
|
77 |
# et en tant qu'indication (placeholder). |
|
78 |
'title': ExampleDateFormat(), |
|
79 |
'placeholder': ExampleDateFormat() |
|
80 |
}, |
|
47 | 81 |
), |
48 | 82 |
twf.CalendarDateTimePicker( |
49 | 83 |
'to_date', |
... | ... | |
53 | 87 |
validator=dateformat.DateFormatConverter(if_missing=None), |
54 | 88 |
date_format=dateformat.get_date_format, |
55 | 89 |
calendar_lang=dateformat.get_calendar_lang, |
90 |
attrs={ |
|
91 |
# Affiche un exemple de date au survol |
|
92 |
# et en tant qu'indication (placeholder). |
|
93 |
'title': ExampleDateFormat(), |
|
94 |
'placeholder': ExampleDateFormat() |
|
95 |
}, |
|
56 | 96 |
), |
57 | 97 |
] |
58 | 98 |
|
vigiboard/i18n/de/LC_MESSAGES/vigiboard.po | ||
---|---|---|
8 | 8 |
"Project-Id-Version: vigiboard 2.0.0\n" |
9 | 9 |
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" |
10 | 10 |
"POT-Creation-Date: 2010-11-19 10:22+0100\n" |
11 |
"PO-Revision-Date: 2014-09-05 13:41+0200\n"
|
|
11 |
"PO-Revision-Date: 2015-04-21 11:49+0200\n"
|
|
12 | 12 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
13 | 13 |
"Language-Team: de_DE <LL@li.org>\n" |
14 | 14 |
"Plural-Forms: nplurals=2; plural=(n != 1)\n" |
... | ... | |
288 | 288 |
msgid "Silence rule #%s has been successfully deleted." |
289 | 289 |
msgstr "" |
290 | 290 |
|
291 |
#: vigiboard/controllers/plugins/date.py:38 |
|
291 |
#: vigiboard/controllers/plugins/date.py:59 |
|
292 |
#, python-format |
|
293 |
msgid "Eg. %(date)s" |
|
294 |
msgstr "" |
|
295 |
|
|
296 |
#: vigiboard/controllers/plugins/date.py:66 |
|
292 | 297 |
msgid "Last occurrence" |
293 | 298 |
msgstr "" |
294 | 299 |
|
295 |
#: vigiboard/controllers/plugins/date.py:41
|
|
300 |
#: vigiboard/controllers/plugins/date.py:69
|
|
296 | 301 |
msgid "Between" |
297 | 302 |
msgstr "" |
298 | 303 |
|
299 |
#: vigiboard/controllers/plugins/date.py:42
|
|
300 |
#: vigiboard/controllers/plugins/date.py:51
|
|
304 |
#: vigiboard/controllers/plugins/date.py:70
|
|
305 |
#: vigiboard/controllers/plugins/date.py:85
|
|
301 | 306 |
#: vigiboard/controllers/plugins/groups.py:41 |
302 | 307 |
msgid "Choose" |
303 | 308 |
msgstr "Auswählen" |
304 | 309 |
|
305 |
#: vigiboard/controllers/plugins/date.py:50
|
|
310 |
#: vigiboard/controllers/plugins/date.py:84
|
|
306 | 311 |
msgid "And" |
307 | 312 |
msgstr "" |
308 | 313 |
|
314 |
#: vigiboard/controllers/plugins/details.py:195 |
|
315 |
#: vigiboard/controllers/plugins/state.py:47 |
|
316 |
msgid "Current state" |
|
317 |
msgstr "" |
|
318 |
|
|
309 | 319 |
#: vigiboard/controllers/plugins/groups.py:42 |
310 | 320 |
msgid "Clear" |
311 | 321 |
msgstr "Löschen" |
... | ... | |
326 | 336 |
msgid "Priority" |
327 | 337 |
msgstr "Priorität" |
328 | 338 |
|
329 |
#: vigiboard/controllers/plugins/state.py:47 |
|
330 |
msgid "Current state" |
|
331 |
msgstr "" |
|
332 |
|
|
333 | 339 |
#: vigiboard/controllers/plugins/status.py:53 |
334 | 340 |
msgid "All alerts" |
335 | 341 |
msgstr "" |
... | ... | |
360 | 366 |
#. TRANSLATORS: |
361 | 367 |
#. http://www.dynarch.com/static/jscalendar-1.0/doc/html/reference.html#node_sec_5.3.5 |
362 | 368 |
#. TRANSLATORS: http://docs.python.org/release/2.5/lib/module-time.html |
363 |
#: vigiboard/lib/dateformat.py:35 vigiboard/lib/dateformat.py:58 |
|
364 |
#: vigiboard/lib/dateformat.py:70 |
|
369 |
#: vigiboard/lib/dateformat.py:38 |
|
365 | 370 |
#, python-format |
366 | 371 |
msgid "%Y-%m-%d %I:%M:%S %p" |
367 |
msgstr "%Y-%m-%d %I:%M:%S %p" |
|
372 |
msgstr "%d.%m.%Y %H:%M:%S" |
|
373 |
|
|
374 |
#. TRANSLATORS: Format de date Python/JavaScript. |
|
375 |
#. TRANSLATORS: |
|
376 |
#. http://www.dynarch.com/static/jscalendar-1.0/doc/html/reference.html#node_sec_5.3.5 |
|
377 |
#. TRANSLATORS: http://docs.python.org/release/2.5/lib/module-time.html |
|
378 |
#: vigiboard/lib/dateformat.py:67 |
|
379 |
#, python-format |
|
380 |
msgid "%Y-%m-%d" |
|
381 |
msgstr "%d.%m.%Y" |
|
368 | 382 |
|
369 | 383 |
#: vigiboard/public/js/main.js:39 |
370 | 384 |
msgid "Search Event" |
vigiboard/i18n/en/LC_MESSAGES/vigiboard.po | ||
---|---|---|
1 | 1 |
# English translations for vigilo-vigiboard. |
2 |
# Copyright (C) 2014 ORGANIZATION
|
|
2 |
# Copyright (C) 2015 ORGANIZATION
|
|
3 | 3 |
# This file is distributed under the same license as the vigilo-vigiboard |
4 | 4 |
# project. |
5 |
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
|
|
5 |
# FIRST AUTHOR <EMAIL@ADDRESS>, 2015.
|
|
6 | 6 |
# |
7 | 7 |
msgid "" |
8 | 8 |
msgstr "" |
9 | 9 |
"Project-Id-Version: vigilo-vigiboard 3.5\n" |
10 | 10 |
"Report-Msgid-Bugs-To: contact@projet-vigilo.org\n" |
11 |
"POT-Creation-Date: 2014-09-05 13:41+0200\n"
|
|
12 |
"PO-Revision-Date: 2014-09-05 13:41+0200\n"
|
|
11 |
"POT-Creation-Date: 2015-04-21 11:49+0200\n"
|
|
12 |
"PO-Revision-Date: 2015-04-21 11:49+0200\n"
|
|
13 | 13 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
14 | 14 |
"Language-Team: en <LL@li.org>\n" |
15 | 15 |
"Plural-Forms: nplurals=2; plural=(n != 1)\n" |
... | ... | |
304 | 304 |
msgid "Silence rule #%s has been successfully deleted." |
305 | 305 |
msgstr "Silence rule #%s has been successfully deleted." |
306 | 306 |
|
307 |
#: vigiboard/controllers/plugins/date.py:38 |
|
307 |
#: vigiboard/controllers/plugins/date.py:59 |
|
308 |
#, python-format |
|
309 |
msgid "Eg. %(date)s" |
|
310 |
msgstr "Eg. %(date)s" |
|
311 |
|
|
312 |
#: vigiboard/controllers/plugins/date.py:66 |
|
308 | 313 |
msgid "Last occurrence" |
309 | 314 |
msgstr "Last occurrence" |
310 | 315 |
|
311 |
#: vigiboard/controllers/plugins/date.py:41
|
|
316 |
#: vigiboard/controllers/plugins/date.py:69
|
|
312 | 317 |
msgid "Between" |
313 | 318 |
msgstr "Between" |
314 | 319 |
|
315 |
#: vigiboard/controllers/plugins/date.py:42
|
|
316 |
#: vigiboard/controllers/plugins/date.py:51
|
|
320 |
#: vigiboard/controllers/plugins/date.py:70
|
|
321 |
#: vigiboard/controllers/plugins/date.py:85
|
|
317 | 322 |
#: vigiboard/controllers/plugins/groups.py:41 |
318 | 323 |
msgid "Choose" |
319 | 324 |
msgstr "Choose" |
320 | 325 |
|
321 |
#: vigiboard/controllers/plugins/date.py:50
|
|
326 |
#: vigiboard/controllers/plugins/date.py:84
|
|
322 | 327 |
msgid "And" |
323 | 328 |
msgstr "And" |
324 | 329 |
|
330 |
#: vigiboard/controllers/plugins/details.py:195 |
|
331 |
#: vigiboard/controllers/plugins/state.py:47 |
|
332 |
msgid "Current state" |
|
333 |
msgstr "Current state" |
|
334 |
|
|
325 | 335 |
#: vigiboard/controllers/plugins/groups.py:42 |
326 | 336 |
msgid "Clear" |
327 | 337 |
msgstr "Clear" |
... | ... | |
342 | 352 |
msgid "Priority" |
343 | 353 |
msgstr "Priority" |
344 | 354 |
|
345 |
#: vigiboard/controllers/plugins/state.py:47 |
|
346 |
msgid "Current state" |
|
347 |
msgstr "Current state" |
|
348 |
|
|
349 | 355 |
#: vigiboard/controllers/plugins/status.py:53 |
350 | 356 |
msgid "All alerts" |
351 | 357 |
msgstr "All alerts" |
... | ... | |
376 | 382 |
#. TRANSLATORS: |
377 | 383 |
#. http://www.dynarch.com/static/jscalendar-1.0/doc/html/reference.html#node_sec_5.3.5 |
378 | 384 |
#. TRANSLATORS: http://docs.python.org/release/2.5/lib/module-time.html |
379 |
#: vigiboard/lib/dateformat.py:35 vigiboard/lib/dateformat.py:58 |
|
380 |
#: vigiboard/lib/dateformat.py:70 |
|
385 |
#: vigiboard/lib/dateformat.py:38 |
|
381 | 386 |
#, python-format |
382 | 387 |
msgid "%Y-%m-%d %I:%M:%S %p" |
383 | 388 |
msgstr "%Y-%m-%d %I:%M:%S %p" |
384 | 389 |
|
390 |
#. TRANSLATORS: Format de date Python/JavaScript. |
|
391 |
#. TRANSLATORS: |
|
392 |
#. http://www.dynarch.com/static/jscalendar-1.0/doc/html/reference.html#node_sec_5.3.5 |
|
393 |
#. TRANSLATORS: http://docs.python.org/release/2.5/lib/module-time.html |
|
394 |
#: vigiboard/lib/dateformat.py:67 |
|
395 |
#, python-format |
|
396 |
msgid "%Y-%m-%d" |
|
397 |
msgstr "%Y-%m-%d" |
|
398 |
|
|
385 | 399 |
#: vigiboard/public/js/main.js:39 |
386 | 400 |
msgid "Search Event" |
387 | 401 |
msgstr "Search Event" |
vigiboard/i18n/fr/LC_MESSAGES/vigiboard.po | ||
---|---|---|
8 | 8 |
"Project-Id-Version: vigiboard 0.1\n" |
9 | 9 |
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" |
10 | 10 |
"POT-Creation-Date: 2009-07-06 11:19+0200\n" |
11 |
"PO-Revision-Date: 2014-09-05 13:41+0200\n"
|
|
11 |
"PO-Revision-Date: 2015-04-21 11:49+0200\n"
|
|
12 | 12 |
"Last-Translator: Thomas ANDREJAK <thomas.andrejak@c-s.fr>\n" |
13 | 13 |
"Language-Team: fr_FR <LL@li.org>\n" |
14 | 14 |
"Plural-Forms: nplurals=2; plural=(n > 1)\n" |
... | ... | |
288 | 288 |
#, python-format |
289 | 289 |
msgid "An exception has been raised while deleting the silence rules: %s" |
290 | 290 |
msgstr "" |
291 |
"Une exception a été levée lors de la suppression des règles de " |
|
292 |
"silence : %s"
|
|
291 |
"Une exception a été levée lors de la suppression des règles de silence : "
|
|
292 |
"%s" |
|
293 | 293 |
|
294 | 294 |
#: vigiboard/controllers/silence.py:624 |
295 | 295 |
#, python-format |
... | ... | |
317 | 317 |
msgid "Silence rule #%s has been successfully deleted." |
318 | 318 |
msgstr "La règle de silence #%s a été supprimée avec succès." |
319 | 319 |
|
320 |
#: vigiboard/controllers/plugins/date.py:38 |
|
320 |
#: vigiboard/controllers/plugins/date.py:59 |
|
321 |
#, python-format |
|
322 |
msgid "Eg. %(date)s" |
|
323 |
msgstr "P.ex. %(date)s" |
|
324 |
|
|
325 |
#: vigiboard/controllers/plugins/date.py:66 |
|
321 | 326 |
msgid "Last occurrence" |
322 | 327 |
msgstr "Dernière occurrence" |
323 | 328 |
|
324 |
#: vigiboard/controllers/plugins/date.py:41
|
|
329 |
#: vigiboard/controllers/plugins/date.py:69
|
|
325 | 330 |
msgid "Between" |
326 | 331 |
msgstr "Entre" |
327 | 332 |
|
328 |
#: vigiboard/controllers/plugins/date.py:42
|
|
329 |
#: vigiboard/controllers/plugins/date.py:51
|
|
333 |
#: vigiboard/controllers/plugins/date.py:70
|
|
334 |
#: vigiboard/controllers/plugins/date.py:85
|
|
330 | 335 |
#: vigiboard/controllers/plugins/groups.py:41 |
331 | 336 |
msgid "Choose" |
332 | 337 |
msgstr "Choisir" |
333 | 338 |
|
334 |
#: vigiboard/controllers/plugins/date.py:50
|
|
339 |
#: vigiboard/controllers/plugins/date.py:84
|
|
335 | 340 |
msgid "And" |
336 | 341 |
msgstr "Et" |
337 | 342 |
|
343 |
#: vigiboard/controllers/plugins/details.py:195 |
|
344 |
#: vigiboard/controllers/plugins/state.py:47 |
|
345 |
msgid "Current state" |
|
346 |
msgstr "État courant" |
|
347 |
|
|
338 | 348 |
#: vigiboard/controllers/plugins/groups.py:42 |
339 | 349 |
msgid "Clear" |
340 | 350 |
msgstr "Effacer" |
... | ... | |
355 | 365 |
msgid "Priority" |
356 | 366 |
msgstr "Priorité" |
357 | 367 |
|
358 |
#: vigiboard/controllers/plugins/state.py:47 |
|
359 |
msgid "Current state" |
|
360 |
msgstr "État courant" |
|
361 |
|
|
362 | 368 |
#: vigiboard/controllers/plugins/status.py:53 |
363 | 369 |
msgid "All alerts" |
364 | 370 |
msgstr "Toutes les alertes" |
... | ... | |
389 | 395 |
#. TRANSLATORS: |
390 | 396 |
#. http://www.dynarch.com/static/jscalendar-1.0/doc/html/reference.html#node_sec_5.3.5 |
391 | 397 |
#. TRANSLATORS: http://docs.python.org/release/2.5/lib/module-time.html |
392 |
#: vigiboard/lib/dateformat.py:35 vigiboard/lib/dateformat.py:58 |
|
393 |
#: vigiboard/lib/dateformat.py:70 |
|
398 |
#: vigiboard/lib/dateformat.py:38 |
|
394 | 399 |
#, python-format |
395 | 400 |
msgid "%Y-%m-%d %I:%M:%S %p" |
396 | 401 |
msgstr "%d/%m/%Y %H:%M:%S" |
397 | 402 |
|
403 |
#. TRANSLATORS: Format de date Python/JavaScript. |
|
404 |
#. TRANSLATORS: |
|
405 |
#. http://www.dynarch.com/static/jscalendar-1.0/doc/html/reference.html#node_sec_5.3.5 |
|
406 |
#. TRANSLATORS: http://docs.python.org/release/2.5/lib/module-time.html |
|
407 |
#: vigiboard/lib/dateformat.py:67 |
|
408 |
#, python-format |
|
409 |
msgid "%Y-%m-%d" |
|
410 |
msgstr "%d/%m/%Y" |
|
411 |
|
|
398 | 412 |
#: vigiboard/public/js/main.js:39 |
399 | 413 |
msgid "Search Event" |
400 | 414 |
msgstr "Rechercher un événement" |
vigiboard/i18n/vigiboard.pot | ||
---|---|---|
1 | 1 |
# Translations template for vigilo-vigiboard. |
2 |
# Copyright (C) 2014 ORGANIZATION
|
|
2 |
# Copyright (C) 2015 ORGANIZATION
|
|
3 | 3 |
# This file is distributed under the same license as the vigilo-vigiboard |
4 | 4 |
# project. |
5 |
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
|
|
5 |
# FIRST AUTHOR <EMAIL@ADDRESS>, 2015.
|
|
6 | 6 |
# |
7 | 7 |
#, fuzzy |
8 | 8 |
msgid "" |
9 | 9 |
msgstr "" |
10 | 10 |
"Project-Id-Version: vigilo-vigiboard 3.5\n" |
11 | 11 |
"Report-Msgid-Bugs-To: contact@projet-vigilo.org\n" |
12 |
"POT-Creation-Date: 2014-09-05 13:41+0200\n"
|
|
12 |
"POT-Creation-Date: 2015-04-21 11:49+0200\n"
|
|
13 | 13 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
14 | 14 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
15 | 15 |
"Language-Team: LANGUAGE <LL@li.org>\n" |
... | ... | |
284 | 284 |
msgid "Silence rule #%s has been successfully deleted." |
285 | 285 |
msgstr "" |
286 | 286 |
|
287 |
#: vigiboard/controllers/plugins/date.py:38 |
|
287 |
#: vigiboard/controllers/plugins/date.py:59 |
|
288 |
#, python-format |
|
289 |
msgid "Eg. %(date)s" |
|
290 |
msgstr "" |
|
291 |
|
|
292 |
#: vigiboard/controllers/plugins/date.py:66 |
|
288 | 293 |
msgid "Last occurrence" |
289 | 294 |
msgstr "" |
290 | 295 |
|
291 |
#: vigiboard/controllers/plugins/date.py:41
|
|
296 |
#: vigiboard/controllers/plugins/date.py:69
|
|
292 | 297 |
msgid "Between" |
293 | 298 |
msgstr "" |
294 | 299 |
|
295 |
#: vigiboard/controllers/plugins/date.py:42
|
|
296 |
#: vigiboard/controllers/plugins/date.py:51
|
|
300 |
#: vigiboard/controllers/plugins/date.py:70
|
|
301 |
#: vigiboard/controllers/plugins/date.py:85
|
|
297 | 302 |
#: vigiboard/controllers/plugins/groups.py:41 |
298 | 303 |
msgid "Choose" |
299 | 304 |
msgstr "" |
300 | 305 |
|
301 |
#: vigiboard/controllers/plugins/date.py:50
|
|
306 |
#: vigiboard/controllers/plugins/date.py:84
|
|
302 | 307 |
msgid "And" |
303 | 308 |
msgstr "" |
304 | 309 |
|
310 |
#: vigiboard/controllers/plugins/details.py:195 |
|
311 |
#: vigiboard/controllers/plugins/state.py:47 |
|
312 |
msgid "Current state" |
|
313 |
msgstr "" |
|
314 |
|
|
305 | 315 |
#: vigiboard/controllers/plugins/groups.py:42 |
306 | 316 |
msgid "Clear" |
307 | 317 |
msgstr "" |
... | ... | |
322 | 332 |
msgid "Priority" |
323 | 333 |
msgstr "" |
324 | 334 |
|
325 |
#: vigiboard/controllers/plugins/state.py:47 |
|
326 |
msgid "Current state" |
|
327 |
msgstr "" |
|
328 |
|
|
329 | 335 |
#: vigiboard/controllers/plugins/status.py:53 |
330 | 336 |
msgid "All alerts" |
331 | 337 |
msgstr "" |
... | ... | |
354 | 360 |
#. TRANSLATORS: |
355 | 361 |
#. http://www.dynarch.com/static/jscalendar-1.0/doc/html/reference.html#node_sec_5.3.5 |
356 | 362 |
#. TRANSLATORS: http://docs.python.org/release/2.5/lib/module-time.html |
357 |
#: vigiboard/lib/dateformat.py:35 vigiboard/lib/dateformat.py:58 |
|
358 |
#: vigiboard/lib/dateformat.py:70 |
|
363 |
#: vigiboard/lib/dateformat.py:38 |
|
359 | 364 |
#, python-format |
360 | 365 |
msgid "%Y-%m-%d %I:%M:%S %p" |
361 | 366 |
msgstr "" |
362 | 367 |
|
368 |
#. TRANSLATORS: Format de date Python/JavaScript. |
|
369 |
#. TRANSLATORS: |
|
370 |
#. http://www.dynarch.com/static/jscalendar-1.0/doc/html/reference.html#node_sec_5.3.5 |
|
371 |
#. TRANSLATORS: http://docs.python.org/release/2.5/lib/module-time.html |
|
372 |
#: vigiboard/lib/dateformat.py:67 |
|
373 |
#, python-format |
|
374 |
msgid "%Y-%m-%d" |
|
375 |
msgstr "" |
|
376 |
|
|
363 | 377 |
#: vigiboard/public/js/main.js:39 |
364 | 378 |
msgid "Search Event" |
365 | 379 |
msgstr "" |
vigiboard/lib/dateformat.py | ||
---|---|---|
32 | 32 |
def get_date_format(): |
33 | 33 |
# @HACK: nécessaire car l_() retourne un object LazyString |
34 | 34 |
# qui n'est pas sérialisable en JSON. |
35 |
# TRANSLATORS: Format de date et heure Python/JavaScript. |
|
36 |
# TRANSLATORS: http://www.dynarch.com/static/jscalendar-1.0/doc/html/reference.html#node_sec_5.3.5 |
|
37 |
# TRANSLATORS: http://docs.python.org/release/2.5/lib/module-time.html |
|
35 | 38 |
return _('%Y-%m-%d %I:%M:%S %p').encode('utf-8') |
36 | 39 |
|
37 | 40 |
class DateFormatConverter(FancyValidator): |
... | ... | |
52 | 55 |
str_date = str_date.encode('utf-8') |
53 | 56 |
|
54 | 57 |
try: |
55 |
# TRANSLATORS: Format de date et heure Python/JavaScript. |
|
56 |
# TRANSLATORS: http://www.dynarch.com/static/jscalendar-1.0/doc/html/reference.html#node_sec_5.3.5 |
|
57 |
# TRANSLATORS: http://docs.python.org/release/2.5/lib/module-time.html |
|
58 |
date = datetime.strptime(str_date, _('%Y-%m-%d %I:%M:%S %p').encode('utf8')) |
|
58 |
# On tente d'interpréter la saisie de l'utilisateur |
|
59 |
# selon un format date + heure. |
|
60 |
date = datetime.strptime(str_date, get_date_format()) |
|
59 | 61 |
except ValueError: |
60 |
raise Invalid(self.message('invalid', state), value, state) |
|
62 |
try: |
|
63 |
# 2è essai : on essaye d'interpréter uniquement une date. |
|
64 |
# TRANSLATORS: Format de date Python/JavaScript. |
|
65 |
# TRANSLATORS: http://www.dynarch.com/static/jscalendar-1.0/doc/html/reference.html#node_sec_5.3.5 |
|
66 |
# TRANSLATORS: http://docs.python.org/release/2.5/lib/module-time.html |
|
67 |
date = datetime.strptime(str_date, _('%Y-%m-%d').encode('utf8')) |
|
68 |
except ValueError: |
|
69 |
raise Invalid(self.message('invalid', state), value, state) |
|
61 | 70 |
return date |
62 | 71 |
|
63 | 72 |
def _from_python(self, value, state): |
... | ... | |
65 | 74 |
raise Invalid(self.message('invalid', state), value, state) |
66 | 75 |
|
67 | 76 |
# Même format que pour _to_python. |
68 |
return datetime.strftime( |
|
69 |
value, |
|
70 |
_('%Y-%m-%d %I:%M:%S %p').encode('utf8') |
|
71 |
).decode('utf-8') |
|
77 |
return datetime.strftime(value, get_date_format()).decode('utf-8') |
Also available in: Unified diff