X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/a65e6811fed4529789f3c72e2f4d56b81fb71526..18b53f03ffd1620e2f3f5b1c17e7dd12c6a6afa6:/apps/catalogue/helpers.py diff --git a/apps/catalogue/helpers.py b/apps/catalogue/helpers.py index a97a0400..e88c7e24 100644 --- a/apps/catalogue/helpers.py +++ b/apps/catalogue/helpers.py @@ -1,14 +1,17 @@ +# -*- coding: utf-8 -*- +# +# This file is part of MIL/PEER, licensed under GNU Affero GPLv3 or later. +# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. +# from datetime import date from functools import wraps from os.path import join -from os import listdir, stat +from os import listdir from shutil import move, rmtree from django.conf import settings import re import filecmp -from django.db.models import Count - def active_tab(tab): """ @@ -46,8 +49,6 @@ def parse_isodate(isodate): class GalleryMerger(object): def __init__(self, dest_gallery, src_gallery): - assert isinstance(dest_gallery, str) - assert isinstance(src_gallery, str) self.dest = dest_gallery self.src = src_gallery self.dest_size = None @@ -70,6 +71,11 @@ class GalleryMerger(object): m = not always and re.match(r"^([0-9])-", name) return "%1d-%s" % (prefix, m and name[2:] or name) + @property + def was_merged(self): + """Check if we have gallery size recorded""" + return self.dest_size is not None + def merge(self): if not self.dest: return self.src @@ -77,12 +83,13 @@ class GalleryMerger(object): return self.dest files = listdir(self.path(self.dest)) + files.sort() self.dest_size = len(files) files_other = listdir(self.path(self.src)) + files_other.sort() self.src_size = len(files_other) if files and files_other: - print "compare %s with %s" % (files[-1], files_other[0]) if filecmp.cmp( join(self.path(self.dest), files[-1]), join(self.path(self.src), files_other[0]), @@ -101,7 +108,8 @@ class GalleryMerger(object): for f in files: p = self.get_prefix(f) if p: - if p > last_pfx: last_pfx = p + if p > last_pfx: + last_pfx = p else: files_prefixed = False break @@ -117,7 +125,7 @@ class GalleryMerger(object): for f in files_other: pfx = self.get_prefix(f) if pfx is not None: - if not pfx in prefixes: + if pfx not in prefixes: last_pfx += 1 prefixes[pfx] = last_pfx renamed_files_other[f] = self.set_prefix(f, prefixes[pfx]) @@ -132,14 +140,21 @@ class GalleryMerger(object): renamed_files_other[f] = self.set_prefix(f, 1, True) # finally, move / rename files. - from nose.tools import set_trace - # set_trace() for frm, to in renamed_files.items(): move(join(self.path(self.dest), frm), - join(self.path(self.dest), to)) + join(self.path(self.dest), to)) for frm, to in renamed_files_other.items(): move(join(self.path(self.src), frm), - join(self.path(self.dest), to)) + join(self.path(self.dest), to)) rmtree(join(self.path(self.src))) return self.dest + + +# Maybe subclass? +def sstdocument(text): + from librarian.document import Document + + return Document.from_string( + text, + )