]> git.parisson.com Git - diggersdigest.git/commitdiff
Update Record model (include old date in text format) and improve populate_db managme...
authorThomas Fillon <thomas@parisson.com>
Thu, 3 Sep 2015 16:12:44 +0000 (18:12 +0200)
committerThomas Fillon <thomas@parisson.com>
Thu, 3 Sep 2015 16:12:44 +0000 (18:12 +0200)
diggersdigest/records/management/commands/populate_db.py
diggersdigest/records/migrations/0003_record_date_text.py [new file with mode: 0644]
diggersdigest/records/models.py
diggersdigest/requirements.txt [deleted file]
requirements.txt

index e0c1b8ac149911f656a295756b47d9659efe7a88..cdb8226b7a558e3b1694a39596094cea8a2e5e1f 100644 (file)
@@ -20,6 +20,7 @@ import HTMLParser
 parser = HTMLParser.HTMLParser()
 
 import mezzanine.blog.models as blog_models
+from mezzanine.pages.models import Page
 
 # Check mp3 in media upload path
 def check_mp3(file_list, file_path):
@@ -141,6 +142,91 @@ class Command(BaseCommand):
             ## # ordre : on laisse tombé ?
             ## # published --> status / 0 --> CONTENT_STATUS_DRAFT = 1 / 1 CONTENT_STATUS_PUBLISHED = 2
 
+    ## def populate_pages(self):
+    ##       obj, created = Page.objects.get_or_create(status=2,
+    ##                                                 #"_order"= 3,
+    ##                                                 title="Contact",
+    ##                                                 titles= "Contact",
+    ##                                                 content_model="form",
+    ##                                                 in_menus=[1, 2, 3],
+    ##                                                 slug="contact",
+    ##                                                 description= "Fill in the form below to get in touch with us."
+    ##                                                 )
+    ##       #obj.delete()
+    ##       #obj.description= "Fill in the form below to get in touch with us."
+          
+    # NEWS
+    def populate_news(self):
+        ## news fields :
+        ## 'texte' --> content
+        ## 'nomlien'
+        ## 'ordre' --> _order, doublons à gérer
+        ## 'id' --> pk
+        ## 'titre' --> title
+        ## 'typelien',
+        ## 'position',
+        ## 'adresslien',
+        ## 'visu1',
+        ## 'published']
+        self.stdout.write('News\n-------\n')
+        ordered_news_list = sorted(rec_models.News.objects.all(), key=lambda news: news.ordre)
+        blog_models.BlogCategory.objects.get_or_create(title='News')
+        import parsedatetime
+        cal = parsedatetime.Calendar()
+        for n in ordered_news_list:
+            if n.position==1:
+                try:
+                    d = cal.parseDateText(n.titre)
+                except AttributeError:
+                    d = ''
+                print n.titre, ' - ', d
+                
+    # SHOPS TO RECORDS
+    def populate_record(self):
+        self.stdout.write('Records\n-------\n')
+
+        AUDIO_PATH = os.path.join(settings.MEDIA_ROOT, 'uploads/audio/')
+        RECORDS_PATH = os.path.join(AUDIO_PATH, "records")
+
+        shop_list = rec_models.Shop.objects.all()
+        for shop in shop_list:
+            obj, created = rec_models.Record.objects.get_or_create(pk=shop.id)
+
+            obj.title = parser.unescape(shop.titre)
+            obj.country = rec_models.Country.objects.get(name = shop.pays)
+            obj.audio_file = os.path.join(RECORDS_PATH, shop.mp3)
+            # product_id --> FK
+            #obj.release_date = 
+            obj.date_text = shop.date
+            obj.record_status = shop.new
+            obj.label = rec_models.Label.objects.get(name = shop.label)
+            obj.artist = rec_models.Artist.objects.get(name = shop.artiste)
+            obj.save()
+            #self.stdout.write('\b\b\b\b%.4d' % obj.pk)
+            #print obj.__dict__
+
+        ## class Shop(models.Model):
+        ##     theme = models.IntegerField()
+        ##     artiste = models.CharField(max_length=128)
+        ##     new = models.IntegerField()
+        ##     titre = models.CharField(max_length=128)
+        ##     label = models.CharField(max_length=128)
+        ##     date = models.CharField(max_length=8)
+        ##     pays = models.CharField(max_length=128)
+        ##     desc = models.TextField()
+        ##     cover = models.IntegerField()
+        ##     vinyl = models.IntegerField()
+        ##     prix = models.IntegerField()
+        ##     devise = models.IntegerField()
+        ##     mp3 = models.CharField(max_length=128)
+        ##     visu1 = models.IntegerField()
+        ##     ordre = models.IntegerField()
+        ##     published = models.IntegerField()
+
+        ## class Record(Product):
+        ##     """
+        ##     Model for Record
+        ##     """
 
 
     def handle(self, *args, **options):
@@ -164,9 +250,9 @@ class Command(BaseCommand):
         self.populate_artist()
         self.populate_country()
         self.populate_podcast(user=digger)
-
-
-
+        #self.populate_pages()
+        #self.populate_news()
+        self.populate_record()
 
 # Theme
 [theme for theme in rec_models.Theme.objects.all()]
@@ -186,10 +272,6 @@ RECORDS_PATH = os.path.join(AUDIO_PATH, "records")
 
 # check_mp3(mp3_shop_list, RECORDS_PATH)
 
-# NEWS
-def populate_news(self):
-    news_list = [news for news in rec_models.News.objects.all()]
-    blog_models.BlogCategory.objects.get_or_create(title='News')
 
 # GRADING
 
@@ -240,53 +322,3 @@ for grade in rec_models.Grading.objects.all():
 
 print "%d fiches GradingCondition crées" % count
 
-def populate__record():
-    # SHOPS TO RECORDS
-    shop_list = rec_models.Shop.objects.all()
-    for shop in shop_list:
-        print "-----------"
-        print shop.titre
-        s_titre = shop.titre
-        if not (shop.titre ==  parser.unescape(shop.titre)):
-            s_titre = parser.unescape(shop.titre)
-            print "\t-->\t%s" % s_titre
-
-        s_theme = rec_models.Theme.objects.filter(id=shop.theme)[0]
-        print "\tTheme : %s" % s_theme.nom
-
-        s_artist = rec_models.Artist.objects.filter(name=shop.artiste)[0]
-        print "\tArtist : %s" % s_artist.name
-
-        s_label = rec_models.Label.objects.filter(name=shop.label)[0]
-        print "\tLabel : %s" % s_label.name
-        s_country = rec_models.Country.objects.filter(name=shop.pays)[0]
-        print "\tCountry : %s" % s_country.name
-
-        record_from_shop = rec_models.Record(title=s_titre,
-                                             artist=s_artist,
-                                             label=s_label,
-                                             country=s_country)
-        print record_from_shop.__dict__
-
-    ## class Shop(models.Model):
-    ##     theme = models.IntegerField()
-    ##     artiste = models.CharField(max_length=128)
-    ##     new = models.IntegerField()
-    ##     titre = models.CharField(max_length=128)
-    ##     label = models.CharField(max_length=128)
-    ##     date = models.CharField(max_length=8)
-    ##     pays = models.CharField(max_length=128)
-    ##     desc = models.TextField()
-    ##     cover = models.IntegerField()
-    ##     vinyl = models.IntegerField()
-    ##     prix = models.IntegerField()
-    ##     devise = models.IntegerField()
-    ##     mp3 = models.CharField(max_length=128)
-    ##     visu1 = models.IntegerField()
-    ##     ordre = models.IntegerField()
-    ##     published = models.IntegerField()
-
-    ## class Record(Product):
-    ##     """
-    ##     Model for Record
-    ##     """
diff --git a/diggersdigest/records/migrations/0003_record_date_text.py b/diggersdigest/records/migrations/0003_record_date_text.py
new file mode 100644 (file)
index 0000000..a82ad71
--- /dev/null
@@ -0,0 +1,19 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('records', '0002_auto_20150831_1518'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='record',
+            name='date_text',
+            field=models.CharField(max_length=8, null=True, verbose_name='date text'),
+        ),
+    ]
index e85cc064401ff398944f4c14c9edd03046f69053..cc56e12195389b1214362627286058ac21617d48 100644 (file)
@@ -219,6 +219,7 @@ class Record(models.Model):
     record_status = models.IntegerField(_('record status'), choices=NOVELTY_CHOICES, default=NEW)
     label = models.ForeignKey(Label, verbose_name=_('label'), related_name='records', null=True, on_delete=models.SET_NULL)
     release_date = models.DateField(_('release date'), null=True)
+    date_text = models.CharField(_('date text'), max_length=8, null=True)
     country = models.ForeignKey(Country, verbose_name=_('country'), related_name='records', null=True, on_delete=models.SET_NULL)
     #cover_state = models.ForeignKey(ConditionGrading, verbose_name=_('cover condition'), related_name='records_cover_condition', null=True, on_delete=models.SET_NULL)
     #vinyl_state = models.ForeignKey(ConditionGrading, verbose_name=_('vinyl condition'), related_name='records_vinyl_condition', null=True, on_delete=models.SET_NULL)
diff --git a/diggersdigest/requirements.txt b/diggersdigest/requirements.txt
deleted file mode 100644 (file)
index 1b81a5b..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Django==1.8.3
-MySQL-python==1.2.5
-cartridge==0.10.0
index 2c2c8c5c6a7f5a7f36307f15887481362db196da..f9ca26962689bd8df2e626034eac6081e8479f85 100644 (file)
@@ -5,3 +5,4 @@ cartridge-payments==0.97.0
 django-paypal==0.2.5
 django-uuidfield==0.5.0
 django-newsletter==0.5.2
+parsedatetime==1.5