diff options
Diffstat (limited to 'chimere/management/commands/chimere_import.py')
-rw-r--r-- | chimere/management/commands/chimere_import.py | 50 |
1 files changed, 31 insertions, 19 deletions
diff --git a/chimere/management/commands/chimere_import.py b/chimere/management/commands/chimere_import.py index 61ccd60..faddd5e 100644 --- a/chimere/management/commands/chimere_import.py +++ b/chimere/management/commands/chimere_import.py @@ -3,6 +3,7 @@ import csv import datetime, time +from optparse import make_option from django.core.management.base import BaseCommand, CommandError from django.core.exceptions import ObjectDoesNotExist @@ -14,19 +15,29 @@ class Command(BaseCommand): args = '<import_id>' help = "Launch import from an external source. Import configuration must "\ "be beforehand inserted in the database with the web admin." + option_list = BaseCommand.option_list + ( + make_option('--all', + action='store_true', + dest='all', + default=False, + help='Update all imports set to be automatically updated'), + ) + def handle(self, *args, **options): - imports = dict([(imp.pk, imp) - for imp in Importer.objects.order_by('pk').all()]) - imprt = None - if args and args[0]: + importers = [] + if options['all']: + importers = Importer.objects.filter(automatic_update=True).all() + elif args and args[0]: try: - imprt = Importer.objects.get(pk=int(args[0])) + importers = [Importer.objects.get(pk=int(args[0]))] except (ValueError, ObjectDoesNotExist): raise CommandError("Import with ID '%s' doesn't exist." % \ args[0]) - if not args: - while not imprt: + else: + imports = dict([(imp.pk, imp) + for imp in Importer.objects.order_by('pk').all()]) + while not importers: self.stdout.write('* Choose the import: \n') for k in imports: self.stdout.write(' %s\n' % unicode(imports[k]).encode( @@ -35,19 +46,20 @@ class Command(BaseCommand): self.stdout.write('\nImport ID: ') v = raw_input() try: - imprt = Importer.objects.get(pk=int(v)) + importers = [Importer.objects.get(pk=int(v))] except (ValueError, ObjectDoesNotExist): self.stdout.write("Import with ID '%s' doesn't exist.\n\n" \ % v) - pending_state = unicode(tasks.IMPORT_MESSAGES['import_pending'][0]) - imprt.state = pending_state - imprt.save() - tasks.importing(imprt.pk) - self.stdout.write("Import '%d' in progress...\n" % imprt.pk) - self.stdout.flush() - state = pending_state - while state == pending_state: - time.sleep(1) - state = Importer.objects.get(pk=int(imprt.pk)).state - self.stdout.write(state + '\n') + for imprt in importers: + pending_state = unicode(tasks.IMPORT_MESSAGES['import_pending'][0]) + imprt.state = pending_state + imprt.save() + tasks.importing(imprt.pk) + self.stdout.write("Import '%d' in progress...\n" % imprt.pk) + self.stdout.flush() + state = pending_state + while state == pending_state: + time.sleep(1) + state = Importer.objects.get(pk=int(imprt.pk)).state + self.stdout.write(state + '\n') |