def schema(): '''Creates database schema and fills website with initial data''' database = config.database['dbn'] schema_commands = open('schema/' + database + '.sql', 'r').read() for cmd in schema_commands.split(';'): if cmd.strip(): db.query(cmd) data = web.storage(json.loads(open('schema/data.json', 'r').read())) now = web.db.SQLLiteral('CURRENT_TIMESTAMP') user = auth.create_user(**data.user) # System root folder db.insert( 'documents', user_id=user.id, created_at=now, **data.documents_root ) for p in data.pages: block = p.pop('block') page_id = db.insert( 'pages', is_published=False, is_navigatable=True, user_id=user.id, created_at=now, **p ) create_tree_branch( 'blocks', block, page_id=page_id, user_id=user.id, is_published=True, created_at=now, published_at=now, ) for block in data.template_blocks: create_tree_branch( 'blocks', block, user_id=user.id, is_published=True, created_at=now, published_at=now, )
def POST(self): user_form = userForm(web.input()) if user_form.valid: user = user_form.d email = user.pop("email") password = temp_password() user.update(password=password) user = auth.create_user(email, **user) mailer.send( user.email, render_email.register(user, password), send_now=True, is_secure=True, ) applog.info(new_user_text % user.title, "users", user.id) raise web.seeother(web.ctx.env.get("HTTP_REFERER", "/a/users"))