+# -*- coding: utf-8 -*-
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):
"""
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
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
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:
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
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])
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))
+ move(join(self.path(self.dest), frm), 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))
+ move(join(self.path(self.src), frm), join(self.path(self.dest), to))
rmtree(join(self.path(self.src)))
return self.dest