| 592 | def cleanDates(self, startdate, enddate) : |
| 593 | """Clean the dates to create a correct filter.""" |
| 594 | if startdate is None : |
| 595 | startdate = enddate |
| 596 | if enddate is None : |
| 597 | enddate = startdate |
| 598 | if (startdate is None) and (enddate is None) : |
| 599 | return (None, None) |
| 600 | if startdate.isdigit() and enddate.isdigit() : |
| 601 | datedict = { "start" : startdate, "end" : enddate } |
| 602 | for limit in datedict.keys() : |
| 603 | dateval = datedict[limit] |
| 604 | lgdateval = len(dateval) |
| 605 | if lgdateval == 4 : |
| 606 | if limit == "start" : |
| 607 | dateval = "%s0101 00:00:00" % dateval |
| 608 | else : |
| 609 | dateval = "%s1231 23:59:59" % dateval |
| 610 | elif lgdateval == 6 : |
| 611 | if limit == "start" : |
| 612 | dateval = "%s01 00:00:00" % dateval |
| 613 | else : |
| 614 | mxdate = DateTime.ISO.ParseDateTime("%s01 00:00:00" % dateval) |
| 615 | dateval = "%s%02i 23:59:59" % (dateval, mxdate.days_in_month) |
| 616 | elif lgdateval == 8 : |
| 617 | if limit == "start" : |
| 618 | dateval = "%s 00:00:00" % dateval |
| 619 | else : |
| 620 | dateval = "%s 23:59:59" % dateval |
| 621 | elif lgdateval == 10 : |
| 622 | if limit == "start" : |
| 623 | dateval = "%s %s:00:00" % (dateval[:8], dateval[8:]) |
| 624 | else : |
| 625 | dateval = "%s %s:59:59" % (dateval[:8], dateval[8:]) |
| 626 | elif lgdateval == 12 : |
| 627 | if limit == "start" : |
| 628 | dateval = "%s %s:%s:00" % (dateval[:8], dateval[8:10], dateval[10:]) |
| 629 | else : |
| 630 | dateval = "%s %s:%s:59" % (dateval[:8], dateval[8:10], dateval[10:]) |
| 631 | elif lgdateval == 14 : |
| 632 | dateval = "%s %s:%s:%s" % (dateval[:8], dateval[8:10], dateval[10:12], dateval[12:]) |
| 633 | else : |
| 634 | dateval = None |
| 635 | try : |
| 636 | DateTime.ISO.ParseDateTime(dateval) |
| 637 | except : |
| 638 | dateval = None |
| 639 | datedict[limit] = dateval |
| 640 | (start, end) = (datedict["start"], datedict["end"]) |
| 641 | if start > end : |
| 642 | (start, end) = (end, start) |
| 643 | return (start, end) |
| 644 | else : |
| 645 | return (None, None) |
| 646 | |