http://docs.plone.org/develop/plone/searching_and_indexing/query.html#querying-by-date 내가이 조사 시간을 보냈을 나는 작업 솔루션을 .
먼저 Zope와 ZPT의 작동 방식을 이해해야합니다. 당신은 몇 가지 매개 변수를 변환 할 조프을 말하고있다 created.query:record:list:date
처럼 뭔가 폼 요소의 이름을 때 :
- 기록을 기록 속성
- 목록에 변수를 변환, 파이썬에 변수로 변환 목록
- 날짜은, 자세한 내용은 DateTime 개체
에 문자열로 변환 이에 대한 정보는 Advanced Zope Scripting을 참조하십시오.
그래서, 매개 변수가 자동으로 파이썬이 같은 사전 레코드로 변환됩니다
'created': {'query': [DateTime('2014/07/09 00:00:00 GMT-3')], 'range': 'min'}
내 실수는 내가 하나 개의 요청 변수에 대한 모든 목록 요소를 통과했다는 것을 가정했다.
지금 형태의 끝에 추가 된 코드는 다음과 같습니다
<input type="radio"
id="query-date-range"
name="created.query:record:list:date:ignore_empty"
tal:attributes="value python:'';
checked python:checked=='' and 'checked' or '';"
/>
<label for="query-date-range" i18n:translate="time_range">Time range</label>
<input type="text"
id="range-start"
name="created.query:record:list:date:ignore_empty">
<input type="text"
id="range-end"
name="created.query:record:list:date:ignore_empty">
<script>
var today = new Date();
var yesterday = new Date();
yesterday.setDate(yesterday.getDate() - 1);
var start = yesterday.toLocaleDateString().slice(0, 10);
var end = today.toLocaleDateString().slice(0, 10);
$(document).ready(function() {
$("#range-start").datepicker();
$("#range-end").datepicker();
$('#range-start').hide();
$('#range-end').hide();
});
$('input:radio').change(function() {
var option = $('input:radio:checked', '#searchform').val();
if (option === '') {
$('#range-start').val(start);
$('#range-start').show();
$('#range-end').val(end);
$('#range-end').show();
$('#range').val('min:max');
}
else {
$('#range-start').val('');
$('#range-start').hide();
$('#range-end').val('');
$('#range-end').hide();
$('#range').val('min');
};
});
</script>
다음에 특별한 관심을 가지고 :
'created': {'query': [DateTime('2014/07/15 00:00:00 GMT-3'), DateTime('2014/07/16 00:00:00 GMT-3')], 'range': 'min:max'}
은 우리가 목록에 값 설정이없는 요소를 추가하지 추가 매개 변수 컨버터 (
ignore_empty
)를 설정 (I이 변환을 추가 다른 입력 요소에도 해당).
query-date-range
요소를 클릭하면 날짜 선택기를 초기화해야합니다. 다른 요소 중 하나를 클릭하면 목록에 추가되지 않도록이 값을 지울 필요가 있습니다.
@sdupton에 의해 앞서 언급 한 쿼리 유형에 따라 range
요소의 값도 변경합니다.
코드의 JavaScript 부분을 확실히 향상시킬 수 있습니다. 내 기술은 실제로 제한되어 있습니다.
색인 (이름), 색인 유형은 무엇입니까? – sdupton
내가 참조하고있는 색인은'created'입니다. – hvelarde