morlandi / django-ajax-datatable

A Django app which provides the integration of a Django project with the jQuery Javascript library DataTables.net
MIT License
204 stars 64 forks source link

Date-range filter #38

Closed tboulogne closed 2 years ago

tboulogne commented 2 years ago

Hello,

I face with a strange behaviour with date range filter. (native one without change or my custom below) : The table return only on row :-(.

fields are set:

    show_date_filters = True
    latest_by = "ren_departure_date"

ren_departure_date is a DateField.

My custom range-filter (flatpickr)

 AjaxDatatableViewUtils.init({
    search_icon_html: '<i class="fa fa-search"></i>',
    language: {
    },
    fn_daterange_widget_initialize: function(table, data) {
        var wrapper = table.closest('.dataTables_wrapper');
        var toolbar = wrapper.find(".toolbar");
        toolbar.html(
            '<div class="daterange" style="float: left; margin-right: 6px;">' +
            'Du: <input type="date" id="date_from" name="date_from" class="date_from" autocomplete="off">' +
            '&nbsp;&nbsp;' +
            'Au: <input type="date" id="date_to" name="date_to" class="date_to" autocomplete="off">' +
            '</div>'
        );
        var date_pickers = toolbar.find('.date_from, .date_to');
        var dt_to ;
        var dt_from ;
        dict_date = {
            dateFormat: "Y-m-d",
            enableTime: false,
            locale: "fr",
            noCalendar: false,
            altFormat: "Y-m-d",
            //defaultDate: today
            onChange: function(selectedDates, dateStr, instance){
                var id = instance._input.getAttribute("id")
                if(id == 'date_from'){
                    dt_from = moment(dateStr).format("YYYY-MM-DD")
                }
                if(id == 'date_to'){
                    dt_to = moment(dateStr).format("YYYY-MM-DD")
                }
                console.log(dt_from, dt_to)
                if(dt_from != undefined && dt_to != undefined){
                    table.data('date_from', dt_from );
                    table.data('date_to', dt_to);
                    table.api().draw();
                }
            }
        }
        date_pickers.flatpickr(dict_date);
    }
});

Thanks for help.

Regards

tboulogne commented 2 years ago

sorry again, really need holidays :-) !!!!!