Пример #1
0
    def init_data(self):
        '''
        when called this initiates a dictionary of key value pairs
        where keys are all dates between the start and end values
        and the values are DayDataObjects with only public holiday data loaded
        '''
        q_query = QtSql.QSqlQuery(SETTINGS.psql_conn)

        #due to database constraints, this list will be a
        #set of key value pairs.
        query = '''select dt, event
        from (SELECT dt FROM generate_dates(?, ?, 1) dt) as gen
        left join calendar on dt = date_id'''

        q_query.prepare(query)
        q_query.addBindValue(self.start_date)
        q_query.addBindValue(self.end_date)
        q_query.exec_()
        while q_query.next():
            record = q_query.record()
            day_data = DiaryDayData(record.value("dt").toDate())
            day_data.set_public_hol_text(record.value("event").toString())
            if QtCore.QDate.currentDate() <= day_data.date <= self.last_day:
                day_data.in_bookable_range = True
            ##QDate.__hash__ has a bug.. so have to convert here
            ##this has been fixed in recent PyQt4..
            ##there may be a perfomance benefit here
            self._data[day_data.date.toPyDate()] = day_data

        q_query.finish()
Пример #2
0
    def init_data(self):
        '''
        when called this initiates a dictionary of key value pairs
        where keys are all dates between the start and end values
        and the values are DayDataObjects with only public holiday data loaded
        '''
        q_query = QtSql.QSqlQuery(SETTINGS.psql_conn)

        #due to database constraints, this list will be a
        #set of key value pairs.
        query = '''select dt, event
        from (SELECT dt FROM generate_dates(?, ?, 1) dt) as gen
        left join calendar on dt = date_id'''

        q_query.prepare(query)
        q_query.addBindValue(self.start_date)
        q_query.addBindValue(self.end_date)
        q_query.exec_()
        while q_query.next():
            record = q_query.record()
            day_data = DiaryDayData(record.value("dt").toDate())
            day_data.set_public_hol_text(record.value("event").toString())
            if QtCore.QDate.currentDate() <= day_data.date <= self.last_day:
                day_data.in_bookable_range = True
            ##QDate.__hash__ has a bug.. so have to convert here
            ##this has been fixed in recent PyQt4..
            ##there may be a perfomance benefit here
            self._data[day_data.date.toPyDate()] = day_data

        q_query.finish()
Пример #3
0
    def data(self, date, view_style=_DiarySettings.DAY):
        '''
        returns a 'DayData' object for the date requested
        '''

        ##QDate.__hash__ has a bug.. so have to convert here
        try:
            day_data = self._data[date.toPyDate()]

        except KeyError:
            day_data = DiaryDayData(date)
            self._data[date.toPyDate()] = day_data

        if view_style != self.TASKS:
            if not day_data.sessions_loaded:
                day_data.load_sessions()

        return day_data
Пример #4
0
    def data(self, date, view_style=_DiarySettings.DAY):
        '''
        returns a 'DayData' object for the date requested
        '''

        ##QDate.__hash__ has a bug.. so have to convert here
        try:
            day_data = self._data[date.toPyDate()]

        except KeyError:
            day_data = DiaryDayData(date)
            self._data[date.toPyDate()] = day_data

        if view_style != self.TASKS:
            if not day_data.sessions_loaded:
                day_data.load_sessions()

        return day_data