:necktie: Cherrpy + Mako + Formish + OOOP boilerplate.
This project is my boilerplate codebase I created to integrate some Python
components with the goal of publishing OpenERP
content on the web.
This stack is composed of:
This project contains the experiments I did while working at
Smile, when I explored the possibility of integrating
these components. This code was a proof-of-concept that we leveraged later for
a highly specific OpenERP project.
Because of the highly experimental nature of this project, it contains lots of
stupid and failed attempts. The whole code base should be thoroughly cleaned up
before it can be considered reusable.
Install system dependencies using your favorite package manager. Here is the
example for an Ubuntu machine:
$ apt-get install python-dev
Initialize the buildout environment:
$ python ./bootstrap.py --distribute
Run buildout itself:
$ ./bin/buildout
Run the following command to run the server:
$ ./bin/web_publisher
Go to the following URL in your browser:
http://localhost:8081
Here is a list of useful external documentation and references to help you work
in this environment:
Profile the code with CherryPy built-in methods ?
Add a CSS compressor and combinator to save few bytes and queries. See http://blog.toms-projekte.de/?p=33 for inspiration.
Add the hash of the compiled.js file to its name (force cache invalidation).
Release dottedish 0.6.1 to Pypi and remove our ugly patch.
Use consistent localized dates accross datepickers, HTML, formish and OpenERP.
Update formish to make its internal messages translatable (errors, etc…).
Make a bug report to formish regarding multi-checkbox widget data deserialization (see: http://github.com/kdeldycke/cherrypy_mako_formish_ooop_boilerplate/commit/1ce33061c8f33a18c73c285021e69477fca0f50c ) ? Here are some relevent debug messages:
formish.Sequence(name=’option_list’, attr=schemaish.Sequence(schemaish.Integer()))
schemaish.Sequence(schemaish.Integer())
schemaish.Integer()
Clean and tidy up all that crappy code.
Use CherryPy tools decorator to factorize code.
Leverage CherryPy cache tools. Example: http://www.cherrypy.org/wiki/Caching and http://docs.cherrypy.org/dev/refman/lib/caching.html
Add aggressive caching of static images.
This code is free software: you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software
Foundation, version 2.
This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU General Public License for more details.
For full details, please see the file named COPYING in the top directory of the
source tree. You should have received a copy of the GNU General Public License
along with this program. If not, see http://www.gnu.org/licenses.
This tool uses external softwares, scripts, libraries and artworks:
OOOP
Copyright (c) 2010-211, Pedro Gracia <pedro.gracia@impulzia.com>, http://www.impulzia.com
Released under the GNU GPL v3 license.
Source: http://github.com/lasarux/ooop
Crystal Project Icons
Copyright (c) 2006-2007, Everaldo Coelho <everaldo@everaldo.com>, http://www.everaldo.com
Released under the LGPL license.
Source: http://www.kde-look.org/content/show.php/Crystal+Project?content=60475
Buildout's bootstrap.py
Copyright (c) 2006 Zope Corporation and Contributors
Distributed under the Zope Public License, version 2.1 (ZPL).
Source: http://svn.zope.org/repos/main/zc.buildout/trunk/bootstrap/bootstrap.py