12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- from optparse import make_option
- import traceback
- import os.path
- import pkgutil
- from django.core.management.base import BaseCommand
- from misago.models import Fixture
- from misago.utils.fixtures import load_fixture, update_fixture
- import misago.fixtures
- class Command(BaseCommand):
- """
- Loads Misago fixtures
- """
- help = 'Load Misago fixtures'
- option_list = BaseCommand.option_list + (
- make_option('--quiet',
- action='store_true',
- dest='quiet',
- default=False,
- help='Dont display output from this message'),
- )
-
- def handle(self, *args, **options):
- if not options['quiet']:
- self.stdout.write('\nLoading data from fixtures...')
-
- fixture_data = {}
- for fixture in Fixture.objects.all():
- fixture_data[fixture.name] = fixture
- loaded = 0
- updated = 0
-
- fixtures_path = os.path.dirname(misago.fixtures.__file__)
- try:
- for _, name, _ in pkgutil.iter_modules([fixtures_path]):
- if name in fixture_data:
- if update_fixture('misago.fixtures.' + name):
- updated += 1
- if not options['quiet']:
- self.stdout.write('Updating "%s" fixture...' % name)
- else:
- if load_fixture('misago.fixtures.' + name):
- loaded += 1
- Fixture.objects.create(name=name)
- if not options['quiet']:
- self.stdout.write('Loading "%s" fixture...' % name)
- except:
- self.stderr.write(traceback.format_exc())
- if not options['quiet']:
- self.stdout.write('\nLoaded %s fixtures and updated %s fixtures.\n' % (loaded, updated))
|