Skip to content

Commit

Permalink
Fix ControlDecimal and Date filter in ControlQueryList
Browse files Browse the repository at this point in the history
  • Loading branch information
UmSenhorQualquer committed Jun 6, 2019
1 parent 6acdd4b commit f988bed
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 27 deletions.
3 changes: 0 additions & 3 deletions pyforms_web/controls/control_decimal.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,5 @@ def deserialize(self, properties):
:param dict properties: Serialized data to load.
"""
super().deserialize(properties)

str_val = properties.get('value', None)

self.value = decimal.Decimal(str_val) if str_val else None
30 changes: 10 additions & 20 deletions pyforms_web/controls/control_querylist.py
Original file line number Diff line number Diff line change
@@ -1,26 +1,16 @@
from decimal import Decimal
import locale, csv, itertools, simplejson, datetime

from pyforms_web.controls.control_base import ControlBase
from decimal import Decimal
from django.db import models
from django.apps import apps

from pyforms_web.web.middleware import PyFormsMiddleware
from django.core.exceptions import FieldDoesNotExist

from django.utils.dateparse import parse_datetime
from django.db.models import Q
import simplejson, datetime
from django.utils import timezone
from django.conf import settings
from django.db import models
from datetime import timedelta
from calendar import monthrange
from django.utils import timezone
import locale, csv, itertools

from pyforms_web.utils import get_lookup_verbose_name, get_lookup_value, get_lookup_field
from django.http import HttpResponse
from django.db.models.fields.files import FieldFile
from pyforms_web.web.middleware import PyFormsMiddleware
from pyforms_web.controls.control_base import ControlBase
from pyforms_web.utils import get_lookup_verbose_name, get_lookup_value, get_lookup_field

from django.http import HttpResponse

class ControlQueryList(ControlBase):

Expand Down Expand Up @@ -209,10 +199,10 @@ def value(self, value):


def serialize(self, init_form=False):
data = ControlBase.serialize(self)
queryset = self.value
data = ControlBase.serialize(self)
queryset = self.value

rows = []
rows = []

if self._update_list and queryset:
row_start = self.rows_per_page*(self._current_page-1)
Expand Down
7 changes: 4 additions & 3 deletions pyforms_web/web/static/pyforms.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

19 changes: 18 additions & 1 deletion pyforms_web/web/static/pyformsjs/ControlQueryList.js
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,16 @@ class ControlQueryList extends ControlBase{
}
}

pad(number, size){
var s = String(number);
while (s.length < (size || 2)) {s = "0" + s;}
return s;
}

formatdate(date){
return date.getFullYear()+'-'+this.pad(date.getMonth()+1,2)+'-'+this.pad(date.getDate(),2);
}

collect_filters_values(){
var filters = this.properties.filters_list;
this.properties.filter_by = [];
Expand All @@ -151,8 +161,15 @@ class ControlQueryList extends ControlBase{
var end = $(`#${this.control_id()}-filter-${filter.column} .end`).val();
var filter_value = begin?`${filter.column}__gte=${begin}`:'';
filter_value += (begin && end)?`&`:'';
filter_value += end?`${filter.column}__lte=${end}`:'';

if( end ){
end = new Date(end);
end.setDate( end.getDate()+1 );
}else{
end = undefined;
}

filter_value += end?`${filter.column}__lte=${this.formatdate(end)}`:'';
break;
}

Expand Down

0 comments on commit f988bed

Please sign in to comment.