2017-11-23 16 views
1

私はOdoo 8で12時間形式の特定の日時フィールドを表示し、選択可能にしたいと思っています。設定>翻訳>言語>編集>時間フォーマットですが、フォームビューのdatetimeフィールド。Odoo 8で特定の日時フィールドをフォーマットする方法は?

ご協力いただければ幸いです。

+0

QWebビューまたはXMLビューですか? –

+0

xmlビューです。私はqwebビューでそれを行う方法を知っています。 –

+0

回避策を使用するには、時間を特定の形式で計算する依存フィールドを作成し、ビューでそのフィールドを使用できます。 これを行うと、レコードの作成と更新中に発生する値に注意する必要があります。 –

答えて

0

私はあなたには、いくつかのオプションがあり数える:

  • ソリューション0、簡単に。 writeまたはcreate ormメソッドのdatetimeフィールドを変換します。たとえば、25/11/2017 16:41:51がフィールドに挿入されている場合は、25/11/2017 4:41:51に変換する必要があります。これはOdooがデフォルトで12時間形式で行うものです。

  • 解決策1、簡単

    <field name="date" widget="date"/> 
    

    そして、あなたは時間を設定するために、別のフィールドを作成することができます:このような日付のみを選択するようにフィールドを変更し

    time = fields.Float(
        string='Time' 
    ) 
    

    フォームで時刻の形式を表示するfloat_timeウィジェットを使用することができます:あなたがしたい場合

    <field name="time" widget="float_time" /> 
    

    またwriteまたはcreate方法で検証や変換を行うことができます。

  • 解決策2、難しい。あなたは、新しいウィジェットを作成することができたり、DateTimePickerののスライダーを変更することができ、JavaScript関数あなたはまた、検証をオーバーライドする必要があり/addons_path/web/static/lib/jquery.ui.timepicker/js/jquery-ui-timepicker-addon.js

    $.extend(Timepicker.prototype, { 
    
        // [...] 
    
        _injectTimePicker: function() { 
    
         // [...] 
    
         this.hour_slider = $tp.find('#ui_tpicker_hour_'+ dp_id).slider({ 
          orientation: "horizontal", 
          value: this.hour, 
          min: o.hourMin, 
          max: hourMax,  // this is the value to change 
          step: o.stepHour, 
          slide: function(event, ui) { 
           tp_inst.hour_slider.slider("option", "value", ui.value); 
           tp_inst._onTimeChange(); 
          } 
         }); 
    

    ファイルであり、私はそれを見つけるための簡単な方法がないと思います。この確認はwritecreateのmehtodでも簡単に行うことができます。

関連する問題