Skip to main content

High-level Web Object-managing framework on top of ZODB and Jinja2

Project description

Alpha Web framework & sample mini CMS.

Aims to be quite generic all-in-one-but-minimalistic web+database high-level framework.

Take a look at the (WIP) documentation at drink.rtfd.org.

Dependencies

Use “easy_install” or “pip” to get ‘jinja2’, ‘markdown’, ‘ZODB3’ and ‘whoosh’ installed on your system. Additionally you can install paste or gevent for better performances.

Example (at the DOS/Console/Shell prompt):

easy_install -U markdown

or, alternatively:

pip install -U markdown

Dependencies list:

  • markdown

  • jinja2

  • ZODB3

  • whoosh

  • fs

Install

Just fetch the source archive and unpack it:

wget http://pypi.python.org/packages/source/d/drink/drink-0.0.10.tar.bz2
tar jxvf drink-0.0.10.tar.bz2

Running

Just go into the unpacked drink directory and execute the “manage” script:

cd drink-0.0.10
./manage

If you run into troubles, try:

DEBUG=1 ./manage

Getting sources/Contributing

See GitHub page.

The main ideas behind

It should handle most of javascript, html & forms creation for you, for very fast prototype implementation.

Then you’r free to put your hands into html/css/js and customize to your precise requirements.

Some debugging middleware are supported, edit drink/settings.ini for details.

Goals

  • Add features at ONE place in ONE language (html/css/js may be required for some advanced/custom usages)

  • Be fast, with built-in search engine

  • Ajax (ajaj in fact) - with nice fallbacks for old browsers

  • No SQL

  • Website: as simple as a nested dict-like objects tree, endpoints (last element of URL) are object’s properties & methods

  • Make it as productive as possible for most generic tasks

Out of the box, it is something between a wiki and a cms, probably a good base for a lightweight web CMS / Intranet / Forum / etc!

Main Features

  • Built-in search engine

  • Multi-user with access control (group based) at each level

  • Automatic views and javascript-friendly requests, with regard to each object permissions

  • Automatic object edition’s form generation

  • Webpage edition live preview, client-side form validation

  • Comes with some pre-developped objects:

    • folder index (sortable with D&D)

    • file (upload your own file, also allows D&D)

    • Web page ( markdown only )

    • Simple TODO list/TODOs (WIP)

    And of course special elements like Groups & Users !.

  • Very user friendly (once doc will be there!)

Issues

  • no documentation yet (default manager account, login/password: admin/admin )

  • no auto tests yet

  • not very powerful yet

Release changes

  • Improved TODO Lists (fullcalendar included)

  • Now any TextArea can submit the form with Ctrl+Enter

  • Slightly better access/permissions redirects

  • Filesystem mountpoint (alpha)

  • Improved item addition a bit

  • Markdown have an almost correctly styled preview

  • Cleaner models

  • Embryo of documentation

  • As always: Fixes & Bugs

Roadmap

0.1 (wip)

  • add more types to default form edition

  • object_path => integrate it to markdown editor

  • buildbot & virtualenv

  • change cookie on password change

  • only accept object move if it succeded on server

  • allow custom extensions

  • Per-user group-list, showing in permissions panels

  • allow rss via http://www.freewisdom.org/projects/python-markdown/RSS

  • HomePage object: Login-splash+UserDashboard write user homepages (with login & passwd & name & surname change) / splash-like if not logged-in

  • think about comments ( as property of some Model ?) - commentlist ?

  • allow objects to add custom actions in admin bar

  • edit form: only send “dirty” values when possible

  • add some recursive permissions setter

  • “background processes” for each user / sessions

  • theme support (config entry + template & static path)

  • ensure proper checks are correct at server side

  • Form object?

  • find the cleanest way to make all incoming URLs ends with /

  • pack should call http://packages.python.org/Whoosh/api/index.html?highlight=optimize#whoosh.index.Index.optimize on whoosh

  • add calltips everywhere

  • default content for every user

  • review 401 handling, ask for login/passwd in case of new session (to be finished)

  • Think about opening WebFiles in mail client as attached file…

  • add markdown support to tasks comment

  • improve link support (javascript popup) in markdown so it’s easy to link tasks to any object

Fixes:

  • only returns requested range in TODO List

  • Rename Tasks/TODO List to calendar

  • remove Ctrl+Enter conflict on Markitup

  • /users as user => 401 (should list instead)

  • search => 401 by default (should be allowed)

  • mask file upload widget if File not available here

  • investigate fileupload D&D bugs

  • files >4GB are making crazy js loops

  • files ~>500MB may hang the request & cause timeout

0.2

  • zip importer

  • pdf with pypdf

  • doc

  • project support (using drink as a base)

  • integrate imgviewer (image folder type)

0.3

0.4

  • “real” sessions ?

  • chat program (introduce webhooks ?)

0.5

  • forum

  • more tests

0.6

  • gadgets (google search, rss reader, clock, xkcd, ?)

0.7

  • permissions setting admin object

0.8

  • user interface cleanup

0.9

  • doc & fix but minor improvements

1.0

  • stable release

1.x

  • homepage /user pages focus

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page