diff --git a/pygtktalog/dbobjects.py b/pygtktalog/dbobjects.py index d1ca174..ccb9b5f 100644 --- a/pygtktalog/dbobjects.py +++ b/pygtktalog/dbobjects.py @@ -28,8 +28,9 @@ class File(Base): note = Column(Text) description = Column(Text) - children = relation('File', backref=backref('parent', - remote_side="File.id")) + children = relation('File', + backref=backref('parent', remote_side="File.id"), + order_by=[type, filename]) tags = relation("Tag", secondary=tags_files) thumbnail = relation("Thumbnail", backref="file") images = relation("Image", backref="file") diff --git a/pygtktalog/models/main.py b/pygtktalog/models/main.py index e5e2816..3990c34 100644 --- a/pygtktalog/models/main.py +++ b/pygtktalog/models/main.py @@ -245,24 +245,23 @@ class MainModel(ModelMT): Arguments: fileob - File object """ - files = self._session.query(File).filter(File.parent_id==fileob.id)\ - .order_by(File.type, File.filename).all() - files = [] - LOG.info("found %d files for root id %s" %(len(files), str(fileob))) + LOG.info("found %d files for File object: %s" % (len(fileob.children), + str(fileob))) self.files.clear() - for fob in files: + for child in fileob.children: myiter = self.files.insert_before(None, None) - self.files.set_value(myiter, 0, fob.id) - self.files.set_value(myiter, 1, fob.parent_id if fob.parent_id!=1 else None) - self.files.set_value(myiter, 2, fob.filename) - self.files.set_value(myiter, 3, fob.filepath) - self.files.set_value(myiter, 4, fob.size) - self.files.set_value(myiter, 5, fob.date) + self.files.set_value(myiter, 0, child.id) + self.files.set_value(myiter, 1, child.parent_id \ + if child.parent_id!=1 else None) + self.files.set_value(myiter, 2, child.filename) + self.files.set_value(myiter, 3, child.filepath) + self.files.set_value(myiter, 4, child.size) + self.files.set_value(myiter, 5, child.date) self.files.set_value(myiter, 6, 1) self.files.set_value(myiter, 7, gtk.STOCK_DIRECTORY \ - if fob.type==1 else gtk.STOCK_FILE) + if child.type==1 else gtk.STOCK_FILE)