00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 from Koo.Common import Common
00030 from Koo.Common import Shortcuts
00031 
00032 from Koo.Common.Calendar import *
00033 from Koo.Search.AbstractSearchWidget import *
00034 from PyQt4.QtGui import *
00035 from PyQt4.QtCore import *
00036 from PyQt4.uic import *
00037 
00038 (DateTimeSearchWidgetUi, DateTimeSearchWidgetBase) = loadUiType( Common.uiPath('search_date.ui') )
00039 
00040 class DateTimeSearchWidget(AbstractSearchWidget, DateTimeSearchWidgetUi):
00041         def __init__(self, name, parent, attrs={}):
00042                 AbstractSearchWidget.__init__(self, name, parent, attrs)
00043                 DateTimeSearchWidgetUi.__init__(self)
00044                 self.setupUi( self )
00045 
00046                 
00047                 self.uiStart.installEventFilter( self )
00048                 self.uiEnd.installEventFilter( self )
00049 
00050                 
00051                 self.scStartSearch = QShortcut( self.uiStart )
00052                 self.scStartSearch.setKey( Shortcuts.SearchInField )
00053                 self.scStartSearch.setContext( Qt.WidgetShortcut )
00054                 self.connect( self.scStartSearch, SIGNAL('activated()'), self.showStartCalendar )
00055 
00056                 self.scEndSearch = QShortcut( self.uiEnd )
00057                 self.scEndSearch.setKey( Shortcuts.SearchInField )
00058                 self.scEndSearch.setContext( Qt.WidgetShortcut )
00059                 self.connect( self.scEndSearch, SIGNAL('activated()'), self.showEndCalendar )
00060 
00061                 self.widget = self
00062                 self.focusWidget = self.uiStart
00063                 self.connect( self.pushStart, SIGNAL('clicked()'), self.showStartCalendar )
00064                 self.connect( self.pushEnd, SIGNAL('clicked()'), self.showEndCalendar )
00065 
00066         def showStartCalendar(self):
00067                 PopupCalendarWidget( self.uiStart )
00068 
00069         def showEndCalendar(self):
00070                 PopupCalendarWidget( self.uiEnd )
00071 
00072         def value(self):
00073                 res = []
00074                 date = textToDate( self.uiStart.text() )
00075                 dateTime = QDateTime( date )
00076                 val = dateTimeToStorage( dateTime )
00077                 if val:
00078                         self.uiStart.setText( dateToText( date ) )
00079                         res.append((self.name, '>=', val ))
00080                 else:
00081                         self.uiStart.clear()
00082                 date = textToDate( self.uiEnd.text() )
00083                 dateTime = QDateTime( date )
00084                 if dateTime.isValid():
00085                         dateTime.setTime( QTime( 23, 59, 59, 99 ) )
00086                 val = dateTimeToStorage( dateTime )
00087                 if val:
00088                         self.uiEnd.setText( dateToText( date ) )
00089                         
00090                         res.append((self.name, '<=', val ))
00091                 else:
00092                         self.uiEnd.clear()
00093                 return res
00094 
00095         def clear(self):
00096                 self.uiStart.clear()
00097                 self.uiEnd.clear()
00098 
00099         def setValue(self, value):
00100                 if value:
00101                         self.uiStart.setText( unicode(value) )
00102                         self.uiEnd.setText( unicode(value) )
00103                 else:
00104                         self.uiStart.clear()
00105                         self.uiEnd.clear()