]> git.parisson.com Git - diggersdigest.git/commitdiff
Add Pocast handle in populate_db management command
authorThomas Fillon <thomas@parisson.com>
Thu, 3 Sep 2015 07:52:06 +0000 (09:52 +0200)
committerThomas Fillon <thomas@parisson.com>
Thu, 3 Sep 2015 07:52:06 +0000 (09:52 +0200)
diggersdigest/records/management/commands/populate_db.py

index 9f543ad22487c74dcbed9e2ad9ae614d156c94df..e0c1b8ac149911f656a295756b47d9659efe7a88 100644 (file)
@@ -21,6 +21,18 @@ parser = HTMLParser.HTMLParser()
 
 import mezzanine.blog.models as blog_models
 
+# Check mp3 in media upload path
+def check_mp3(file_list, file_path):
+    file_exists = [os.path.exists(os.path.join(file_path, file_name))
+                   for file_name in file_list]
+
+    missing_files = [file_name for (file_name, ok) in zip(file_list, file_exists) if not ok]
+    if missing_files:
+        print "Missing files in path : %s\n" % file_path
+        print '\n'.join(missing_files)
+    else:
+        print "No missing MP3 Mix files"
+    return missing_files
 
 class Command(BaseCommand):
     help = 'Populate the new database from the original backup'
@@ -68,6 +80,68 @@ class Command(BaseCommand):
         self.stdout.write("\t%d new country objects" % count)
         self.stdout.write("\t%d countries in DB ( %d in old DB)" % (len(Country.objects.all()), len(old_country)))
 
+        
+
+
+    # PODCAST FROM MIX
+    def populate_podcast(self, user):
+        MIX_CATEGORY = 'Podcast'
+        blog_models.BlogCategory.objects.get_or_create(title=MIX_CATEGORY)
+        
+        PODCAST_IMG_PATH = os.path.join('uploads/blog/mixes')
+        PODCAST_AUDIO_PATH = os.path.join('uploads/audio/mixes')
+
+        self.stdout.write('Podcast\n-------\n')
+
+        # MP3 for mix
+        mp3_mix_list = [mix.mp3 for mix in rec_models.Mix.objects.all()]
+
+        check_mp3(mp3_mix_list, PODCAST_AUDIO_PATH)
+
+        ordered_mix_list = sorted(rec_models.Mix.objects.all(), key=lambda mix: mix.ordre)
+        count = 0
+        for mix in ordered_mix_list:
+            if mix.visu1:
+                img_file = str(mix.id) + '.jpg'
+                img_path = os.path.join(PODCAST_IMG_PATH, img_file)
+            else:
+                img_path = ''
+
+            audio_path = os.path.join(PODCAST_AUDIO_PATH, mix.mp3)
+            #status=mix.published+1,
+            #featured_image=img_path,
+            #user=digger)
+            if mix.titre:
+                obj, created = rec_models.Podcast.objects.get_or_create(pk=mix.pk,
+                                                                        title=parser.unescape(mix.titre),
+                                                                        user=user)
+                if created:
+                    count += 1
+                    obj.audio=audio_path
+                    obj.genre=mix.genre
+                    obj.old_date=mix.date
+                    desc = parser.unescape(mix.desc)
+                    obj.description=desc
+                    obj.content=desc # duplicate description in content
+                    obj.status=mix.published+1
+                    obj.featured_image=img_path
+                    obj.save()
+                
+        self.stdout.write("\t%d new Podcast objects" % count)
+        self.stdout.write("\t%d Podcast in DB ( %d in old DB)" % (len(rec_models.Podcast.objects.all()), len(ordered_mix_list)))
+
+            ## audio =  FileField(verbose_name=_("Audio File"), max_length=200, format="audio",
+            ##                    upload_to=upload_to("records.Podcast.audio", "audio/mixes"))
+            ## genre = models.CharField(max_length=128)
+            ## # titre --> title
+            ## date = models.CharField(max_length=64)
+            ## # desc --> description
+            ## # mp3 --> audio
+            ## #visu1 = models.IntegerField() si 1 --> featured_image
+            ## # ordre : on laisse tombĂ© ?
+            ## # published --> status / 0 --> CONTENT_STATUS_DRAFT = 1 / 1 CONTENT_STATUS_PUBLISHED = 2
+
+
 
     def handle(self, *args, **options):
         ## for poll_id in options['poll_id']:
@@ -80,9 +154,16 @@ class Command(BaseCommand):
         ##     poll.save()
 
         ##     self.stdout.write('Successfully closed poll "%s"' % poll_id)
+        from django.contrib.auth import models as auth_models
+        digger, created = auth_models.User.objects.get_or_create(username=u'digger',
+                                                                 password=u'admin',
+                                                                 is_staff=True,
+                                                                 email=u'') 
+
         self.populate_label()
         self.populate_artist()
         self.populate_country()
+        self.populate_podcast(user=digger)
 
 
 
@@ -94,89 +175,12 @@ class Command(BaseCommand):
 # MP3
 mp3_shop_list = [shop.mp3 for shop in rec_models.Shop.objects.all()]
 
-# MP3 for mix
-mp3_mix_list = [mix.mp3 for mix in rec_models.Mix.objects.all()]
 
 AUDIO_PATH = os.path.join(settings.MEDIA_ROOT, 'uploads/audio/')
 MIX_PATH = os.path.join(AUDIO_PATH, 'mixes')
 RECORDS_PATH = os.path.join(AUDIO_PATH, "records")
 
 
-# Check mp3 in media upload path
-def check_mp3(file_list, file_path):
-    file_exists = [os.path.exists(os.path.join(file_path, file_name))
-                   for file_name in file_list]
-
-    missing_files = [file_name for (file_name, ok) in zip(file_list, file_exists) if not ok]
-    if missing_files:
-        print "Missing files in path : %s\n" % file_path
-        print '\n'.join(missing_files)
-    else:
-        print "No missing MP3 Mix files"
-    return missing_files
-
-
-# check_mp3(mp3_mix_list, MIX_PATH)
-
-
-# PODCAST FROM MIX
-def populate_podcast(self):
-    MIX_CATEGORY = 'Podcast'
-    blog_models.BlogCategory.objects.get_or_create(title=MIX_CATEGORY)
-
-    PODCAST_IMG_PATH = os.path.join('uploads/blog/mixes')
-    PODCAST_AUDIO_PATH = os.path.join('uploads/audio/mixes')
-    from django.contrib.auth import models as auth_models
-    digger, created = auth_models.User.objects.get_or_create(username=u'digger',
-                                                    password=u'admin',
-                                                    is_staff=True,
-                                                    email=u'')
-
-
-
-
-    for mix in rec_models.Mix.objects.all():
-        if mix.visu1:
-            img_file = str(mix.id) + '.jpg'
-            img_path = os.path.join(PODCAST_IMG_PATH, img_file)
-        else:
-            img_path = ''
-
-        audio_path = os.path.join(PODCAST_AUDIO_PATH, mix.mp3)
-        print '---------------------------'
-        print 'pk :\t %d' % mix.pk
-        print 'audio :\t %s' % audio_path
-        print 'genre :\t %s' % mix.genre
-        print "old_date :\t %s" % mix.date
-        print  "title :\t %s" % parser.unescape(mix.titre)
-        #status=mix.published+1,
-        #featured_image=img_path,
-        #user=digger)
-        obj, created = rec_models.Podcast.objects.get_or_create(pk=mix.pk,
-                                                                title=parser.unescape(mix.titre),
-                                                                user=digger)
-        if created:
-            obj.audio=audio_path
-            obj.genre=mix.genre
-            obj.old_date=mix.date
-            obj.description=parser.unescape(mix.desc)
-            obj.status=mix.published+1
-            obj.featured_image=img_path
-            obj.save()
-
-        for podcast in rec_models.Podcast.objects.filter(title=''):
-            podcast.delete()
-        ## audio =  FileField(verbose_name=_("Audio File"), max_length=200, format="audio",
-        ##                    upload_to=upload_to("records.Podcast.audio", "audio/mixes"))
-        ## genre = models.CharField(max_length=128)
-        ## # titre --> title
-        ## date = models.CharField(max_length=64)
-        ## # desc --> description
-        ## # mp3 --> audio
-        ## #visu1 = models.IntegerField() si 1 --> featured_image
-        ## # ordre : on laisse tombĂ© ?
-        ## # published --> status / 0 --> CONTENT_STATUS_DRAFT = 1 / 1 CONTENT_STATUS_PUBLISHED = 2
-