def on_chat(self, msg_id, msg): """Called by client-side: chat.emit("chat", {"foo": "bar"});""" r = redis.Redis() chat_line = msg chat = Chat(chat_line=chat_line, user_pk=self.request.user.pk, session_pk=int(msg_id)) DBSession.add(chat) DBSession.commit() # only publish to the channel the message came from r.publish('chat:' + msg_id, dumps(chat.serialize()))
def on_chat(self, msg_id, msg): """Called by client-side: chat.emit("chat", {"foo": "bar"});""" r = redis.Redis() chat_line = msg chat = Chat(chat_line=chat_line, user_pk=self.request.user.pk, session_pk=int(msg_id) ) DBSession.add(chat) DBSession.commit() # only publish to the channel the message came from r.publish('chat:' + msg_id, dumps(chat.serialize()))
def main(global_config, **settings): """ This function returns a Pyramid WSGI application. """ engine = engine_from_config(settings, 'sqlalchemy.') DBSession.configure(bind=engine) session_factory = session_factory_from_settings(settings) authn_policy = AuthTktAuthenticationPolicy('pyvor3', callback=groupfinder) authz_policy = ACLAuthorizationPolicy() config = Configurator(settings=settings, session_factory=session_factory, authorization_policy=authz_policy, authentication_policy=authn_policy) config.add_subscriber(handle_request, PasswordResetEvent) config.add_subscriber(handle_request, NewRegistrationEvent) config.add_subscriber(handle_request, RegistrationActivatedEvent) config.add_subscriber(handle_request, ProfileUpdatedEvent) config.registry.registerUtility(DBSession, ISession) jst = Bundle('templates/*.html', filters='jst', output='jst.js', debug=False) config.add_webasset('jst', jst) # jinja2 configuration config.add_jinja2_extension('jinja2.ext.i18n') config.add_jinja2_extension('webassets.ext.jinja2.AssetsExtension') config.add_jinja2_search_path(os.path.join(here, 'templates')) config.add_jinja2_search_path("pyvore:templates") jinja2_env = config.get_jinja2_environment() assets_env = config.get_webassets_env() jinja2_env.assets_environment = assets_env renderer = jinja2_renderer_factory( search_paths=('pyvore:templates/', ), default_templates='deform_jinja2:bootstrap_templates', translator=PyramidTranslator()) deform.Form.set_default_renderer(renderer) # The are from pyramid_signup, we are overriding them to use CouchForm # for rendering override_forms = [ ISULoginForm, ISURegisterForm, ISUForgotPasswordForm, ISUResetPasswordForm, ISUProfileForm ] for form in override_forms: config.registry.registerUtility(PyvoreForm, form) config.registry.registerUtility(DBSession, ISUSession) config.include('pyvore.routes') config.scan() return config.make_wsgi_app()
def main(global_config, **settings): """ This function returns a Pyramid WSGI application. """ engine = engine_from_config(settings, 'sqlalchemy.') DBSession.configure(bind=engine) session_factory = session_factory_from_settings(settings) authn_policy = AuthTktAuthenticationPolicy('pyvor3', callback=groupfinder) authz_policy = ACLAuthorizationPolicy() config = Configurator( settings=settings, session_factory=session_factory, authorization_policy=authz_policy, authentication_policy=authn_policy ) config.add_subscriber(handle_request, PasswordResetEvent) config.add_subscriber(handle_request, NewRegistrationEvent) config.add_subscriber(handle_request, RegistrationActivatedEvent) config.add_subscriber(handle_request, ProfileUpdatedEvent) config.registry.registerUtility(DBSession, ISession) jst = Bundle('templates/*.html', filters='jst', output='jst.js', debug=False) config.add_webasset('jst', jst) # jinja2 configuration config.add_jinja2_extension('jinja2.ext.i18n') config.add_jinja2_extension('webassets.ext.jinja2.AssetsExtension') config.add_jinja2_search_path(os.path.join(here, 'templates')) config.add_jinja2_search_path("pyvore:templates") jinja2_env = config.get_jinja2_environment() assets_env = config.get_webassets_env() jinja2_env.assets_environment = assets_env renderer = jinja2_renderer_factory( search_paths=( 'pyvore:templates/', ), default_templates='deform_jinja2:bootstrap_templates', translator=PyramidTranslator() ) deform.Form.set_default_renderer(renderer) # The are from pyramid_signup, we are overriding them to use CouchForm # for rendering override_forms = [ ISULoginForm, ISURegisterForm, ISUForgotPasswordForm, ISUResetPasswordForm, ISUProfileForm ] for form in override_forms: config.registry.registerUtility(PyvoreForm, form) config.registry.registerUtility(DBSession, ISUSession) config.include('pyvore.routes') config.scan() return config.make_wsgi_app()