Revision e9ccb711
Légère modification du code empêchant les modifications concurrentes pour éviter un problème d'arrondis liés à la gestion des microsecondes.
git-svn-id: https://vigilo-dev.si.c-s.fr/svn@1669 b22e2e97-25c9-44ff-b637-2e5ceca36478
vigiboard/controllers/root.py | ||
---|---|---|
544 | 544 |
).filter(EventHistory.idevent.in_(event_id_list) |
545 | 545 |
).scalar() |
546 | 546 |
|
547 |
if last_modification_timestamp: |
|
548 |
return last_modification_timestamp |
|
549 |
return datetime.now() |
|
550 |
|
|
551 |
def date_to_timestamp(date): |
|
552 |
""" |
|
553 |
Convertit une date en timestamp (décimal) |
|
554 |
""" |
|
555 |
return mktime(date.timetuple()) + date.microsecond / 1000000.0 |
|
547 |
if not last_modification_timestamp: |
|
548 |
last_modification_timestamp = datetime.now() |
|
549 |
# On élimine la fraction (microsecondes) de l'objet datetime. |
|
550 |
# XXX Dans l'idéal, on devrait gérer les microsecondes. |
|
551 |
# Problème: les erreurs d'arrondis empêchent certaines modifications. |
|
552 |
return datetime.fromtimestamp(mktime( |
|
553 |
last_modification_timestamp.timetuple())) |
|
554 |
|
vigiboard/controllers/vigiboardrequest.py | ||
---|---|---|
18 | 18 |
from vigilo.common.conf import settings |
19 | 19 |
from tg.i18n import get_lang |
20 | 20 |
from pylons.i18n import ugettext as _ |
21 |
from time import mktime |
|
21 | 22 |
|
22 | 23 |
class VigiboardRequest(): |
23 | 24 |
""" |
... | ... | |
454 | 455 |
""" |
455 | 456 |
|
456 | 457 |
from vigiboard.controllers.root import get_last_modification_timestamp |
457 |
from vigiboard.controllers.root import date_to_timestamp |
|
458 | 458 |
|
459 | 459 |
# Dialogue d'édition |
460 | 460 |
tmpl_context.edit_event_form = EditEventForm('edit_event_form', |
461 |
last_modification=date_to_timestamp(
|
|
462 |
get_last_modification_timestamp(self.idevents)),
|
|
461 |
last_modification=mktime(get_last_modification_timestamp(
|
|
462 |
self.idevents).timetuple()),
|
|
463 | 463 |
action=url('/update'), |
464 |
)
|
|
465 |
|
|
464 |
) |
|
465 |
|
|
466 | 466 |
# Dialogue de recherche |
467 | 467 |
tmpl_context.search_form = SearchForm('search_form', lang=self.lang, |
468 | 468 |
# TRANSLATORS: Format de date et heure. |
Also available in: Unified diff