def includeme(config): settings = config.registry.settings engine = engine_from_config(settings, 'sqlalchemy.') DBSession.configure(bind=engine) Base.metadata.bind = engine config.include('pyramid_jinja2') config.include('pyramid_celery') config.include('pyramid_fanstatic') config.include('deform_bootstrap') config.add_route('contact', '/') config.add_static_view('static', 'static', cache_max_age=3600) config.scan()
def render(self): context = super(ContactView, self).render() if self.request.method == 'POST': try: values = self.form.validate(self.request.POST.items()) send_email.delay(values['email'], values['content'], values['name'], values['last_name']) contact = Contact(values['name'], values['last_name'], values['email'], values['content']) with transaction.manager: DBSession.add(contact) context['message'] = 'Email sent' context['message_type'] = 'info' log.info('%s from %s %s' % (context['message'], values['name'], values['last_name'])) return context except Exception as ex: if not issubclass(ValidationFailure, ex.__class__): log.error(ex.message) context['form'] = self.form.render() return context