def slots(adate, apptix, start, apdata, fin): ''' takes data like 830 ((830, 845), (900, 915), (1115, 1130), (1300, 1400), (1400, 1420), (1600, 1630)) 1800 and returns a tuple of results like (FreeSlot, FreeSlot, ....) ''' #--slotlength is required appt length, in minutes #-- modified this on 18_11_2009, for the situation when a clinician's day #-- start may be later than any first appointment in that book #-- this facilitates having lunch etc.. already in place for a non used #-- day. aptstart = localsettings.minutesPastMidnight(start) dayfin = localsettings.minutesPastMidnight(fin) if dayfin <= aptstart: return () results = [] for ap in apdata: sMin = localsettings.minutesPastMidnight(ap[0]) fMin = localsettings.minutesPastMidnight(ap[1]) slength = sMin - aptstart if slength > 0: date_time = datetime.datetime.combine(adate, localsettings.minutesPastMidnightToPyTime(aptstart)) slot = FreeSlot(date_time, apptix, slength) results.append(slot) if fMin > aptstart: aptstart = fMin if aptstart >= dayfin: break slength = dayfin - aptstart if slength > 0: date_time = datetime.datetime.combine(adate, localsettings.minutesPastMidnightToPyTime(aptstart)) slot = FreeSlot(date_time, apptix, slength) results.append(slot) return results
def slots(adate, apptix, start, apdata, fin): ''' takes data like 830 ((830, 845), (900, 915), (1115, 1130), (1300, 1400), (1400, 1420), (1600, 1630)) 1800 and returns a tuple of results like (FreeSlot, FreeSlot, ....) ''' #--slotlength is required appt length, in minutes #-- modified this on 18_11_2009, for the situation when a clinician's day #-- start may be later than any first appointment in that book #-- this facilitates having lunch etc.. already in place for a non used #-- day. aptstart = localsettings.minutesPastMidnight(start) dayfin = localsettings.minutesPastMidnight(fin) if dayfin <= aptstart: return () results = [] for ap in apdata: sMin = localsettings.minutesPastMidnight(ap[0]) fMin = localsettings.minutesPastMidnight(ap[1]) slength = sMin - aptstart if slength > 0: date_time = datetime.datetime.combine( adate, localsettings.minutesPastMidnightToPyTime(aptstart)) slot = FreeSlot(date_time, apptix, slength) results.append(slot) if fMin > aptstart: aptstart = fMin if aptstart >= dayfin: break slength = dayfin - aptstart if slength > 0: date_time = datetime.datetime.combine( adate, localsettings.minutesPastMidnightToPyTime(aptstart)) slot = FreeSlot(date_time, apptix, slength) results.append(slot) return results
def dropEvent(self, event): if not self.is_dragging: event.ignore() LOGGER.debug("%s was dropped at %s", self.drag_appt, self.dropPos) date_time = datetime.datetime.combine( self.date.toPyDate(), localsettings.minutesPastMidnightToPyTime(self.drop_time())) dent = self.mouse_drag_rect[0] slot = appointments.FreeSlot(date_time, dent, self.drag_appt.length) self.appt_dropped_signal.emit(self.drag_appt, slot) self.mouse_drag_rect = None self.drag_appt = None event.accept()
def dropEvent(self, event): if not self.is_dragging: event.ignore() # print "TODO - dropEvent" # print "%s was dropped at %s"% (self.drag_appt, self.dropPos) date_time = datetime.datetime.combine(self.date.toPyDate(), localsettings.minutesPastMidnightToPyTime(self.drop_time())) dent = self.mouse_drag_rect[0] slot = appointments.FreeSlot(date_time, dent, self.drag_appt.length) self.emit(QtCore.SIGNAL("ApptDropped"), self.drag_appt, slot) self.mouse_drag_rect = None self.drag_appt = None event.accept()
def getTime_from_Cell(self, row): ''' you know the row.. what time is that ''' mpm = self.slotDuration * row + self.dayStartTime return localsettings.minutesPastMidnightToPyTime(mpm)