2 votes

Comment supprimer l'exception de date dans OpenERP ?

Je suis en train de fouiller dans le web d'OpenERP pour trouver comment je peux supprimer l'exception de la date. Par exemple, je veux insérer une date comme suit 12/12/1523 . avec la fonctionnalité actuelle, un message d'erreur s'affiche si je saisis une date inférieure à 1900 . Je l'ai vérifié avec _calendar.py, format.py, validates.py. mais je n'ai pas réussi. Si quelqu'un ici peut m'aider à travers Il sera hautement apprécié.

3voto

ScoRpion Points 2924

J'ai trouvé deux problèmes dans openerp-web :

1 - Le calendrier de contrôle de la date est restreint et ne peut pas aller en dessous de

01/01/1900

2 - Il y a des erreurs de validation soulevées par openerp/i18n/format.py quand en essayant d'économiser

Point 1 le widget javascript peut être facilement corrigé en

openerp/static/calandar/calendar.js

=> find:

    param_default("range",[1900,2999])

=> and replace with:

    param_default("range",[1,2999])

Point 2, remplacer dans

openerp/i18n/format.py

=> find the two occurances of:

    return time.strftime(server_format, value)

=> and replace with:

    return mx.DateTime.Date(value[0],value[1],value[2],value[3],value[4],value[5]).strftime(server_format)

0voto

Don Kirkby Points 12671

Le message d'erreur que je reçois lorsque je saisis une date en 1523 est le suivant :

Valeur de date invalide ! L'année doit être supérieure à 1899 !

Si vous cherchez ce message d'erreur dans le code client, vous trouverez ceci dans client/bin/widget/view/form_gtk/calendar.py :

try:
    return date.strftime(DHM_FORMAT)
except ValueError:
    common.message(_('Invalid datetime value! Year must be greater than 1899 !'))

Si vous regardez la documentation pour date.strftime() vous verrez ce qui suit :

La plage exacte d'années pour laquelle strftime() fonctionne varie également selon les plateformes. Quelle que soit la plate-forme, les années antérieures à 1900 ne peuvent pas être utilisées.

En interrogeant M. Google sur "python strftime 1900", on trouve un problème avec un patch et beaucoup de discussions. Il semble que vous ayez quelques options :

  1. N'utilisez pas de dates antérieures à 1900.
  2. Modifier le module de calendrier pour mettre en œuvre votre propre routine de formatage au lieu de strftime() .
  3. Passez à la version 3.2 ou 3.3 de Python (consultez le rapport de problème pour obtenir des détails sur les corrections apportées à chaque version).
  4. Appliquez le correctif à votre propre version de Python.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X