A miniguide to Dolmen packages

I'm finally starting a long-overdue project which I have decided to do with Dolmen. As usual, I start by studying its source code and the packages that are available for it. By itself it can will get me about 60% with the requirements for my project, so it's a pretty good starting base. I plan to also study and use some of the menhir.* packages, which are pretty good as generic CMS content types.

dolmen
Dolmen is an application development framework based on Grok and ZTK which also provides a CMS (Content Management System) out of the box. Dolmen is being made with four main objectives in mind: easily pluggable, rock solid and fast content type development, readability and speed.
dolmen.app.authentication
Users and group management in Dolmen
dolmen.app.breadcrumbs
Provides a breadcrumbs navigation for the Dolmen applications. It registers a viewlet to render the links.
dolmen.app.clipboard
Provides a useable "clipboard", that allows you to cut, copy and paste your objects.
dolmen.app.container
Is a collection of tools to work with containers in Dolmen applications.
dolmen.app.content
Provides out-of-the-box utilities for Dolmen applications content.
dolmen.app.layout
Provides ready-to-use components to get a fully functional and extensively pluggable User Interface for a Dolmen application
dolmen.app.metadatas
Forms and viewlets to edit ZopeDublinCore metadata
dolmen.app.search
Viewlets and utilities for permission-aware searching of objects in a Dolmen site.
dolmen.app.security
Roles and permissions for a Dolmen site
dolmen.app.site
The basic Dolmen objects that serve as roots of Dolmen sites
dolmen.app.viewselector
Allows basic management of alternate views
dolmen.authentication
Basic components for authentication
dolmen.beaker
Zope sessions implementation using beaker
dolmen.blob
A layer above zope.file using ZODB blobs as a storage facility. It offers a BlobFile content type and a BlobProperty property for complex schemas.
dolmen.builtins
A set of interfaces that apply to basic Python types, to better integrate them with ZCA
dolmen.content
Base classes and utilities to create content types
dolmen.field
Additional fields usable in schemas. At this moment there's just GlobalClass
dolmen.file
Allows you to manage and store files within the ZODB. It takes the core functionalities of zope.app.file, and simplifies them, using Grok for views and adapters registrations.
dolmen.forms.base
A package in charge of providing basic functionalities to work with zeam.form Forms.
dolmen.forms.crud
A package which helps developers create their C.R.U.D forms using Grok, zeam.form and dolmen.content. It provides a collection of base classes to add, edit, and access content. It innovates by providing adapters to customize the fields of a form.
dolmen.menu
Aims to provide the most flexible and explicit way to create and manage menus and their entries with Grok.
dolmen.queue
A simple layer on top of zc.async to provide queuing of tasks. Not ready?
dolmen.relations
Is a thin layer above zc.relation, allowing a simple and straightforward implementation of standalone relationships between objects.
dolmen.storage
Defines a clear high-level API to deal with pluggable storage components.
dolmen.thumbnailer
Is package specialized in Thumbnail generation. Using the dolmen.storage mechanisms, it allows a pluggable and flexible thumbnail storage.
dolmen.widget.file
A package that walks hand-in-hand with dolmen.file. It provides a useable and pluggable way to render the dolmen.file.FileField in a zeam.form Form.
dolmen.widget.image
A thin layer above dolmen.widget.file providing a widget suitable to fields implementing IImageField. It adds, thanks to dolmen.thumbnailer a preview of the uploaded image in both input and display mode.
dolmen.widget.tinymce
A package that provides a useable and pluggable way to render a text field as a WYSIWG editor in a zeam.form Form.
dolmen.workflow
Nothing here
megrok.icon
Allows registration of icons and associating them with content types
megrok.resourcemerger
Allows concatanation and packing of browser resources (css and js)
menhir.contenttype.document
An example document content type
menhir.contenttype.file
An example file content type
menhir.contenttype.folder
An example folder content type
menhir.contenttype.image
An example image content type
menhir.contenttype.photoalbum
An example photoalbum content type
menhir.contenttype.rstdocument
An example rstdocument content type
menhir.contenttype.user
An example user content type
menhir.library.tablesorter
Registers a jquery based library for HTML tables sorting
menhir.simple.comments
Simple commenting system with avatar integration
menhir.simple.livesearch
A viewlet that provides a livesearch box
menhir.simple.navtree
A viewlet providing a navigation tree
menhir.simple.tag
A tagging engine based on the lovely.tag
menhir.skin.lightblue
A complete skin for a Dolmen site.
menhir.skin.snappy
A skin for Snappy sites
snappy.site
The Snappy, a video sharing sample site
snappy.transform
Mimetype transform utilities. Not finished?
snappy.video.flasher
Utilities to mark files as Flash and allow to view them.
snappy.video.player
A video player for flash movies
snappy.video.transforms
Convert video files to flash movies and thumbnails
zeam.form.base
A form library designed to be grokish and simple
zeam.form.ztk
zope.schema integration for zeam.form. It provides widgets and default CRUD style actions.
dolmen-documentation
A few tutorials for Dolmen
dolmenproject
A Paste script extension that allows quick bootstrapping of new Dolmen projects

To download all the packages, I've ctrl+selected the git repositories names from http://gitweb.dolmen-project.org/, pasted them into a repositories.txt file and ran the following script:

 

import subprocess
import os

f = open('repositories.txt')
for line in f.readlines():
    git = line.strip()
    pkg = git
    if pkg.endswith('.git'):
        pkg = ".".join(pkg.split('.')[:-1])

    if os.path.exists(pkg):
        subprocess.check_call(['git', 'pull'], cwd=pkg)
    else:
        subprocess.check_call(['git', 'clone', 'git://devel.dolmen-project.org/' + git])

 


Comments