diff --git a/sigal/gallery.py b/sigal/gallery.py index 6956331..d8a2351 100644 --- a/sigal/gallery.py +++ b/sigal/gallery.py @@ -488,18 +488,26 @@ class Album: reverse = False root_path = self.path if self.path != '.' else '' - if albums_sort_attr.startswith("meta."): - meta_key = albums_sort_attr.split(".", 1)[1] - def sort_key(s): - album = self.gallery.albums[join(root_path, s)] - return album.meta.get(meta_key, [''])[0] + def sort_key(s): + sort_attr = albums_sort_attr + if not isinstance(sort_attr,list): + sort_attr = [sort_attr] - else: + album = self.gallery.albums[join(root_path, s)] - def sort_key(s): - album = self.gallery.albums[join(root_path, s)] - return getattr(album, albums_sort_attr) + for k in sort_attr: + try: + if k.startswith("meta."): + meta_key = k.split(".", 1)[1] + return album.meta.get(meta_key)[0] + else: + return getattr(album, k) + except AttributeError: + continue + except TypeError: + continue + return '' key = natsort_keygen(key=sort_key, alg=ns.LOCALE) self.subdirs.sort(key=key, reverse=reverse)