2017-11-23 3 views
1

Odoo 8에서 특정 날짜/시간 필드를 12 시간 형식으로 선택하고 선택하려고합니다. 일반적으로 다음과 같이 수행됩니다. 설정> 번역> 언어> 편집> 시간 형식,하지만 단일 일부 폼보기에서 날짜/시간 필드.Odoo 8의 특정 datetime 필드를 포맷하는 방법은 무엇입니까?

도움이 될 것입니다.

+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의 슬라이더를 변경할 수 있습니다, 자바 스크립트 함수는 또한 유효성 검사를 오버라이드 (override) 할 필요가 /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에서이 유효성 검사를 수행하면 더 쉽게 사용할 수 있습니다.

관련 문제