Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

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

Changelog

1.0a1 (2012-01-16)

  • Initial release
Release History

Release History

This version
History Node

1.0a1

Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
horae.dashboard-1.0a1.tar.gz (18.1 kB) Copy SHA256 Checksum SHA256 Source Jan 16, 2012

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting