55 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import os
 | |
| 
 | |
| from django.core.management.base import BaseCommand
 | |
| from django.core.management import call_command
 | |
| from django.conf import settings
 | |
| 
 | |
| from odevzdavatko.models import Reseni
 | |
| from personalni.models import Skola, Resitel
 | |
| from tvorba.models import Rocnik, Cislo, Problem
 | |
| from various.testutils import create_test_data
 | |
| import django.contrib.auth
 | |
| User = django.contrib.auth.get_user_model()
 | |
| 
 | |
| 
 | |
| class Command(BaseCommand):
 | |
| 	help = "Clear database and load testing data."
 | |
| 
 | |
| 	def add_arguments(self, parser):
 | |
| 		parser.add_argument(
 | |
| 			'--no-clean',
 | |
| 			action='store_true',
 | |
| 			help='Změny se provedou v aktuální DB, ne v čisté. Aktuální DB se nezachová. (jen k debugování)',
 | |
| 			)
 | |
| 		parser.add_argument(
 | |
| 			'--no-migrate',
 | |
| 			action='store_true',
 | |
| 			help='Neprovádět migrace před generováním testovacích dat (jen k debugování)',
 | |
| 		)
 | |
| 
 | |
| 	def handle(self, *args, **options):
 | |
| 		assert settings.DEBUG == True
 | |
| 		dbfile = settings.DATABASES['default']['NAME']
 | |
| 		if os.path.exists(dbfile) and not options['no_clean']:
 | |
| 			os.rename(dbfile, dbfile + '.old')
 | |
| 			self.stderr.write('Stara databaze prejmenovana na "%s"' % (dbfile + '.old'))
 | |
| 		if not options['no_migrate']:
 | |
| 			call_command('migrate', no_input=True)
 | |
| 		self.stdout.write('Vytvarim uzivatele "admin" (heslo "admin") a pseudo-nahodna data ...')
 | |
| 		create_test_data(size=5)
 | |
| 		# menší počet ročníků, aby se zrychlilo generování dat a bylo dost úloh
 | |
| 		self.stdout.write('Vytvoreno {} uzivatelu, {} skol, {} resitelu, {} rocniku, {} cisel,' 
 | |
| 			   ' {} problemu, {} reseni.'.format(User.objects.count(), Skola.objects.count(), 
 | |
| 					Resitel.objects.count(), Rocnik.objects.count(), Cislo.objects.count(), 
 | |
| 					Problem.objects.count(), Reseni.objects.count()))
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 |