def shifts(self, start=None, end=None, limit=25, filter=False, query=None): from server.models.shift import Shift db = core.connect("shiftspace/shared") if not filter: if not start: start = [self.id] if not end: end = [self.id, {}] results = Shift.by_user_and_created(db, limit=limit) return Shift.joinData(core.objects(results[start:end])) else: lucene = core.lucene() queryString = "createdBy:%s" % self.id theFilter = core.dictToQuery(query) if theFilter: queryString = queryString + " AND " + theFilter try: print ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" print queryString rows = lucene.search(db, "shifts", q=queryString, include_docs=True, sort="\modified") except Exception, err: print err return [] shifts = [row["doc"] for row in rows] return Shift.joinData(shifts, self.id)
def unfavorite(self, aShift): from server.models.favorite import Favorite from server.models.shift import Shift Favorite.readByUserAndShift(self.id, aShift.id).delete() return Shift.joinData(Shift.read(aShift.id), self.id)
def favorite(self, aShift): from server.models.favorite import Favorite from server.models.shift import Shift Favorite.create(self.id, aShift.id) return Shift.joinData(Shift.read(aShift.id), self.id)