11from pathlib import Path
22
3- from django .contrib .admin import site
3+ from django .contrib .admin import site as admin_site
4+ from django .contrib .sites .models import Site
45from django .core .management .base import BaseCommand
6+ from easy_thumbnails .conf import settings
57
68from filer .models .filemodels import Folder as FilerFolder
79from filer .models .imagemodels import Image as FilerImage
810
11+ from finder .contrib .image .models import ImageFileModel as FinderImage
912from finder .models .file import FileModel as FinderFile
1013from finder .models .folder import FolderModel as FinderFolder
11- from finder .contrib . image . models import ImageFileModel as FinderImage
14+ from finder .models . realm import RealmModel as FinderRealmModel
1215
1316
1417class Command (BaseCommand ):
@@ -20,13 +23,20 @@ def handle(self, verbosity, *args, **options):
2023 self .forward ()
2124
2225 def forward (self ):
26+ site = Site .objects .get (id = settings .SITE_ID )
27+ owner = FilerFolder .objects .filter (parent__isnull = True , owner__isnull = False ).first ().owner
28+ try :
29+ realm = FinderRealmModel .objects .get (site = site , slug = admin_site .name )
30+ except FinderRealmModel .DoesNotExist :
31+ root_folder = FinderFolder .objects .create (name = '__root__' , owner = owner )
32+ realm = FinderRealmModel .objects .create (site = site , slug = admin_site .name , root_folder = root_folder )
33+
2334 for filer_folder in FilerFolder .objects .filter (parent__isnull = True ):
24- self .migrate_folder (filer_folder , FinderFolder .objects .get_root_folder (site ))
35+ self .migrate_folder (filer_folder , FinderFolder .objects .get_root_folder (realm ))
2536
2637 def migrate_folder (self , filer_folder , finder_parent ):
27- try :
28- finder_folder = next (finder_parent .listdir (name = filer_folder .name , is_folder = True ))
29- except StopIteration :
38+ finder_folder = finder_parent .listdir (name = filer_folder .name , is_folder = True ).first ()
39+ if finder_folder is None :
3040 finder_folder = FinderFolder .objects .create (
3141 name = filer_folder .name ,
3242 parent = finder_parent ,
@@ -50,8 +60,8 @@ def migrate_file(self, filer_file, finder_parent):
5060 path = Path (filer_file .file .name )
5161 inode_id = path .parent .stem
5262 try :
53- finder_file = next ( FinderFile .objects .filter_inodes (id = inode_id ) )
54- except StopIteration :
63+ finder_file = FinderFile .objects .get_inode (id = inode_id )
64+ except FinderFile . DoesNotExist :
5565 FinderFile .objects .create (
5666 id = inode_id ,
5767 name = filer_file .name if filer_file .name else filer_file .original_filename ,
@@ -88,8 +98,8 @@ def migrate_image(self, filer_image, finder_parent):
8898 except ValueError :
8999 pass
90100 try :
91- finder_image = next ( FinderImage .objects .filter_inodes (id = inode_id ) )
92- except StopIteration :
101+ finder_image = FinderImage .objects .get_inode (id = inode_id )
102+ except FinderFile . DoesNotExist :
93103 FinderImage .objects .create (
94104 id = inode_id ,
95105 name = filer_image .name if filer_image .name else filer_image .original_filename ,
@@ -106,7 +116,7 @@ def migrate_image(self, filer_image, finder_parent):
106116 meta_data = meta_data ,
107117 )
108118 else :
109- if True or filer_image .modified_at > finder_image .last_modified_at :
119+ if filer_image .modified_at > finder_image .last_modified_at :
110120 finder_image .name = filer_image .name if filer_image .name else filer_image .original_filename
111121 finder_image .file_name = path .name
112122 finder_image .last_modified_at = filer_image .modified_at
0 commit comments