From: Thomas Fillon Date: Thu, 3 Sep 2015 16:12:44 +0000 (+0200) Subject: Update Record model (include old date in text format) and improve populate_db managme... X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=2b4a1848623edb2dcf622cfd7100afd5516cedc4;p=diggersdigest.git Update Record model (include old date in text format) and improve populate_db managment command --- diff --git a/diggersdigest/records/management/commands/populate_db.py b/diggersdigest/records/management/commands/populate_db.py index e0c1b8a..cdb8226 100644 --- a/diggersdigest/records/management/commands/populate_db.py +++ b/diggersdigest/records/management/commands/populate_db.py @@ -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 index 0000000..a82ad71 --- /dev/null +++ b/diggersdigest/records/migrations/0003_record_date_text.py @@ -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'), + ), + ] diff --git a/diggersdigest/records/models.py b/diggersdigest/records/models.py index e85cc06..cc56e12 100644 --- a/diggersdigest/records/models.py +++ b/diggersdigest/records/models.py @@ -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 index 1b81a5b..0000000 --- a/diggersdigest/requirements.txt +++ /dev/null @@ -1,3 +0,0 @@ -Django==1.8.3 -MySQL-python==1.2.5 -cartridge==0.10.0 diff --git a/requirements.txt b/requirements.txt index 2c2c8c5..f9ca269 100644 --- a/requirements.txt +++ b/requirements.txt @@ -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