From 9bb3cb45957bf1c7959399063ee308d566e6f2ae Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Tue, 20 Oct 2015 04:13:59 -0400 Subject: [PATCH] Add command to create an initial settings file. Existing local.py don't stop the initialsetup command now. --- .../management/commands/createsettings.py | 31 +++++++++++++++++++ .../management/commands/initialsetup.py | 26 ++-------------- 2 files changed, 33 insertions(+), 24 deletions(-) create mode 100644 mayan/apps/common/management/commands/createsettings.py diff --git a/mayan/apps/common/management/commands/createsettings.py b/mayan/apps/common/management/commands/createsettings.py new file mode 100644 index 0000000000..df6069cd64 --- /dev/null +++ b/mayan/apps/common/management/commands/createsettings.py @@ -0,0 +1,31 @@ +from __future__ import unicode_literals + +import os + +from django.conf import settings +from django.core import management +from django.utils.crypto import get_random_string + + +class Command(management.BaseCommand): + help = 'Creates a local settings file with a random secret key.' + + @staticmethod + def _generate_secret_key(): + chars = 'abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)' + return get_random_string(50, chars) + + def handle(self, *args, **options): + path = os.path.join(settings.BASE_DIR, 'mayan', 'settings', 'local.py') + if os.path.exists(path): + print 'Existing file at: {0}. Backup, remove this file and try again.'.format(path) + else: + with open(path, 'w+') as file_object: + file_object.write('\n'.join([ + 'from __future__ import absolute_import', + '', + 'from .base import *', + '', + "SECRET_KEY = '{0}'".format(Command._generate_secret_key()), + '', + ])) diff --git a/mayan/apps/common/management/commands/initialsetup.py b/mayan/apps/common/management/commands/initialsetup.py index 4c68772042..f2e3a92084 100644 --- a/mayan/apps/common/management/commands/initialsetup.py +++ b/mayan/apps/common/management/commands/initialsetup.py @@ -1,37 +1,15 @@ from __future__ import unicode_literals -import os - -from django.conf import settings from django.core import management -from django.utils.crypto import get_random_string from ...signals import post_initial_setup class Command(management.BaseCommand): - help = 'Gets Mayan EDMS ready to be used (initializes database, creates a secret key, etc).' - - @staticmethod - def _generate_secret_key(): - chars = 'abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)' - return get_random_string(50, chars) + help = 'Gets Mayan EDMS ready to be used.' def handle(self, *args, **options): - path = os.path.join(settings.BASE_DIR, 'mayan', 'settings', 'local.py') - if os.path.exists(path): - print 'Existing file at: {0}. Backup, remove this file and try again.'.format(path) - exit(1) - - with open(path, 'w+') as file_object: - file_object.write('\n'.join([ - 'from __future__ import absolute_import', - '', - 'from .base import *', - '', - "SECRET_KEY = '{0}'".format(Command._generate_secret_key()), - '', - ])) + management.call_command('createsettings', interactive=False) management.call_command('migrate', interactive=False) management.call_command('createautoadmin', interactive=False) post_initial_setup.send(sender=self)