def reorderFile(self, id, position): f = self.getFileData(id) f = f[id] e = RemoveEvent( "file", id, "collector" if not self.getPackage(f["package"]).queue else "queue") self.core.pullManager.addEvent(e) self.db.reorderLink(f, position) pyfiles = self.cache.values() for pyfile in pyfiles: if pyfile.packageid != f["package"] or pyfile.order < 0: continue if f["order"] > position: if pyfile.order >= position and pyfile.order < f["order"]: pyfile.order += 1 pyfile.notifyChange() elif f["order"] < position: if pyfile.order <= position and pyfile.order > f["order"]: pyfile.order -= 1 pyfile.notifyChange() if id in self.cache: self.cache[id].order = position self.db.commit() e = InsertEvent( "file", id, position, "collector" if not self.getPackage(f["package"]).queue else "queue") self.core.pullManager.addEvent(e)
def setPackageLocation(self, id, queue): """push package to queue""" p = self.db.getPackage(id) oldorder = p.order e = RemoveEvent("pack", id, "collector" if not p.queue else "queue") self.core.pullManager.addEvent(e) self.db.clearPackageOrder(p) p = self.db.getPackage(id) p.queue = queue self.db.updatePackage(p) self.db.reorderPackage(p, -1, True) packs = self.packageCache.values() for pack in packs: if pack.queue != queue and pack.order > oldorder: pack.order -= 1 pack.notifyChange() self.db.commit() self.releasePackage(id) p = self.getPackage(id) e = InsertEvent("pack", id, p.order, "collector" if not p.queue else "queue") self.core.pullManager.addEvent(e)
def reorderPackage(self, id, position): p = self.getPackage(id) e = RemoveEvent("pack", id, "collector" if not p.queue else "queue") self.core.pullManager.addEvent(e) self.db.reorderPackage(p, position) packs = self.packageCache.values() for pack in packs: if pack.queue != p.queue or pack.order < 0 or pack == p: continue if p.order > position: if pack.order >= position and pack.order < p.order: pack.order += 1 pack.notifyChange() elif p.order < position: if pack.order <= position and pack.order > p.order: pack.order -= 1 pack.notifyChange() p.order = position self.db.commit() e = InsertEvent("pack", id, position, "collector" if not p.queue else "queue") self.core.pullManager.addEvent(e)
def addPackage(self, name, folder, queue=0): """adds a package, default to link collector""" lastID = self.db.addPackage(name, folder, queue) p = self.db.getPackage(lastID) e = InsertEvent("pack", lastID, p.order, "collector" if not queue else "queue") get_pull_manager().addEvent(e) return lastID