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 (DateSearchWidgetUi, DateSearchWidgetBase) = loadUiType( Common.uiPath('search_date.ui') )
00039 
00040 class DateSearchWidget(AbstractSearchWidget, DateSearchWidgetUi):
00041         def __init__(self, name, parent, attrs={}):
00042                 AbstractSearchWidget.__init__(self, name, parent, attrs)
00043                 DateSearchWidgetUi.__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                 val = dateToStorage( date )
00076                 if val:
00077                         self.uiStart.setText( dateToText( date ) )
00078                         res.append((self.name, '>=', val ))
00079                 else:
00080                         self.uiStart.clear()
00081                 date = textToDate( self.uiEnd.text() )
00082                 val = dateToStorage( date )
00083                 if val:
00084                         self.uiEnd.setText( dateToText( date ) )
00085                         res.append((self.name, '<=', val ))
00086                 else:
00087                         self.uiEnd.clear()
00088                 return res
00089 
00090         def clear(self):
00091                 self.uiStart.clear()
00092                 self.uiEnd.clear()
00093 
00094         def setValue(self, value):
00095                 if value:
00096                         self.uiStart.setText( unicode(value) )
00097                         self.uiEnd.setText( unicode(value) )
00098                 else:
00099                         self.uiStart.clear()
00100                         self.uiEnd.clear()