Provides a dashboard for Horae
Project description
Introduction
The horae.dashboard package provides user and group dashboards for the Horae resource planning system. Every user and groups has its own dashboard which may contain multiple widgets which may be individually positioned and resized.
Widgets
There are several dashboard widgets already implemented:
- Time tracking
A widget to track time on tickets
- User tickets
A widget listing the tickets the current user is responsible for
- Latest
A widget listing the latest changed objects of the current user
- Notifications
A widget listing the latest notifications for the current user. Only available if the optional horae.notification package is installed.
- Work time tracking
A widget to track the work time of human resources. Only available if the optional horae.resources package is installed.
- Reports
A widget displaying the results of a previously created report. Only available if the optional horae.reports package is installed.
Creating widgets
Creating custom dashboard widgets is possible through the pluggable architecture of the package. A widget consists of at least four parts:
- Interface
The interface defining the schema of the widget and extends the base schema provided by horae.dashboard.interfaces.IWidget
- Widget factory
A named global utility implementing horae.dashboard.interfaces.IWidgetFactory
- Widget
A persistent widget extending horae.dashboard.dashboard.Widget and implementing the Interface mentioned above
- View
The view named index rendering the widget in the dashboard
A sample widget having one custom field which is later rendered on the widgets view would be implemented as followed:
import grok from zope import schema from zope.schema.fieldproperty import FieldProperty from horae.dashboard import dashboard, interfaces class ISampleWidget(interfaces.IWidget): content = schema.TextLine( title = u'Content', required = True ) class SampleWidgetFactory(grok.GlobalUtility): grok.name('sample') grok.implements(interfaces.IWidgetFactory) name = u'Sample' schema = ISampleWidget def __call__(self): return SampleWidget() class SampleWidget(dashboard.Widget): grok.implements(ISampleWidget) title = u'Sample' content = FieldProperty(ISampleWidget['content']) class SampleWidgetIndex(grok.View): grok.name('index') grok.require('horae.View') grok.context(ISampleWidget) def render(self): return self.context.content
Dependencies
Horae
Third party
Changelog
1.0a1 (2012-01-16)
Initial release
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file horae.dashboard-1.0a1.tar.gz
.
File metadata
- Download URL: horae.dashboard-1.0a1.tar.gz
- Upload date:
- Size: 18.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4f871e16d78212f76ca42cf90956cad07520424e83208bdcf2e37db40a96b062 |
|
MD5 | 90b78ea7e22b5e87fd4c5096e903cff2 |
|
BLAKE2b-256 | 807f716310b0a14adf7924108df01067b857fb6dfd8b9a8fbcdfe0e3d0d0c5a0 |