def index(): user_count = User.count() print(user_count) if user_count == 0: # Run setup wizard. print('Redirecting to setup.') return redirect(url_for('.setup')) custom_front_page = get_setting('custom-front-page', '') if custom_front_page: try: return render(custom_front_page) except TemplateNotFound: return render("error.html", title="Custom Front Page", error="You have configured a custom front page but the file ({}) was not found in your theme's template directory.".format(custom_front_page)) return redirect('/blog/')
def setup(): import shlex import subprocess user_count = User.count() # print(user_count) if user_count > 0: # We already have a user. No running setup. return redirect(url_for('.index')) if request.method == 'POST': payload = get_payload(request) if payload.get('email') and payload.get('password'): user = User(username=payload.get('email'), password=payload.get('password'), firstname=payload.get('firstname'), lastname=payload.get('lastname')) my_role = Role(name='admin') my_role.add_abilities('create_users', 'delete_users', 'create_content', 'delete_content', 'upload_files', 'delete_files', 'change_settings') user.add_roles('admin', 'superadmin') login_user(user) args = shlex.split("alembic history") p = subprocess.Popen(args, stdout=subprocess.PIPE) output, error = p.communicate() data = output.split('\n') latest_alembic = None for row in data: if "(head)" in row: cols = row.split(" ") latest_alembic = cols[2].strip() if latest_alembic: print("Stamping with latest Alembic revision: %s" % latest_alembic) args = shlex.split("alembic stamp %s" % latest_alembic) subprocess.Popen(args, stdout=subprocess.PIPE) from impression.upgrade import THEMES, SYNTAX_THEMES # Create some system settings Setting(name='blog-title', vartype='str', system=True).insert() Setting(name='blog-copyright', vartype='str', system=True).insert() Setting(name='blog-theme', vartype='str', system=True, value='impression').insert() Setting(name='posts-per-page', vartype='int', system=True, value=4).insert() Setting(name='bootstrap-theme', vartype='str', system=True, value='sandstone', allowed=json.dumps(THEMES)).insert() Setting(name='syntax-highlighting-theme', vartype='str', system=True, value='monokai.css', allowed=json.dumps(SYNTAX_THEMES)).insert() Setting(name='custom-front-page', vartype='str', system=True).insert() Setting(name='allowed-extensions', vartype='list', system=True, value="['txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif', 'tiff']").insert() Setting(name='upload-directory', vartype='str', system=True, value='uploads/').insert() Setting(name='max-file-size', vartype='int', system=True, value=16777216).insert() safe_commit() flash("Initial Setup Complete", "success") return redirect(url_for('admin_controller.admin_settings')) return render('setup.html')