Roundup - Dr. Ralf Schlatterbeck

Inhalt
Roundup: Einführung und
Anwendungsbeispiele
Roundup: Issue Tracking . . . . . . . . .
Roundup Eigenschaften . . . . . . . . . .
Rollen und Rechtevergabe . . . . . . . .
Roundup Hyperdb . . . . . . . . . . . . .
Trigger: Detector Interface . . . . . . . . .
Beliebige Schnittstellen über Python-API
Web-Interface . . . . . . . . . . . . . . . .
Realisierte Roundup-Projekte . . . . . . .
Dr. Ralf Schlatterbeck
Open Source Consulting
Email:
Web:
Tel.
office@runtux.com
http://www.runtux.com
+43/650/621 40 17
© 2007 Dr. Ralf Schlatterbeck Open Source Consulting · www.runtux.com · office@runtux.com
1
Roundup: Issue Tracking
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 3
. 4
. 6
. 7
. 9
. 11
. 12
. 14
© 2007 Dr. Ralf Schlatterbeck Open Source Consulting · www.runtux.com · office@runtux.com
2
Roundup Eigenschaften
Standard Anwendung „Issue Tracking“
Nr. 1 Google Hit für „Issue Tracker“
• Läuft überall wo Python läuft
• Web, Email, Kommandozeilen Schnittstelle
• Trouble-Tickets
• Software Bug-Tracking
• Web-Interface als CGI, eigener Web-Server oder
eingebettet in Zope
• IT-Helpdesk
• Email: Mailbox, IMAP, POP, sendmail pipe
• Konferenz Einreichungen (Papers)
• Eigene Mini-Mailingliste für jedes „Issue“
• Sales Opportunities
• ...
© 2007 Dr. Ralf Schlatterbeck Open Source Consulting · www.runtux.com · office@runtux.com
3
© 2007 Dr. Ralf Schlatterbeck Open Source Consulting · www.runtux.com · office@runtux.com
4
Roundup Eigenschaften
Rollen und Rechtevergabe
• Anwender-Dokumentation (Issue Tracker)
• Zuordnung von Rollen zu Benutzern
• Entwickler-Dokumentation
• Rechtevergabe nach Rollen
auf Tabellen- oder Spaltenebene
• Einfache Administration, Installation
• Berechnete Rechte möglich
• Python-API (Programmierschnittstelle)
• Web: Log-In für jeden Benutzer
→ Statistiken, Reports, Erinnerungs-Email, . . .
• Email: Authorisierung über Email Adresse
• Import/Export Format und API
• Optional Web- oder Email Registrierung
→ Datensicherung
→ Migration von anderen Systemen
© 2007 Dr. Ralf Schlatterbeck Open Source Consulting · www.runtux.com · office@runtux.com
• Mehrere Email-Adressen pro Benutzer
5
Roundup Hyperdb
© 2007 Dr. Ralf Schlatterbeck Open Source Consulting · www.runtux.com · office@runtux.com
6
Roundup Hyperdb History
• Verschiedene Datenbank Backends
(z. B. DBM, SQLite, MySQL, PostgreSQL)
• Einfache Schema-Definition in Python
→ Backend-unabhängig
• Änderung Datenbank-Schema im Betrieb
• Automatische Attribute (creator, creation, . . . )
• Änderungshistorie (Journal)
• Indizierung und Volltextsuche
© 2007 Dr. Ralf Schlatterbeck Open Source Consulting · www.runtux.com · office@runtux.com
7
© 2007 Dr. Ralf Schlatterbeck Open Source Consulting · www.runtux.com · office@runtux.com
8
Trigger: Detector Interface
Detector (Auditor) Example
• Detector: Auditor oder Reactor
def audit_superseder (db, cl, nodeid, new_values) :
"""
* don’t set superseder on a new item
* ensure that superseder gets not set to itself
* automagically set status to closed
"""
new_sup = new_values.get ("superseder", None)
if new_sup :
if not nodeid :
raise Reject, _ ("Don’t set %s on new issue") % _
for sup in new_sup :
if sup == nodeid :
raise Reject, _ ("Can’t set %s to itself") % _
new_values ["status"] = db.status.lookup (’closed’)
# end def audit_superseder
• Zugriff auf aktuellen Datensatz
• Zugriff auf ganze Datenbank möglich
• Auditor: „Veto“ auf Änderungen
→ Anwendungsspezifische Einschränkungen
→ Automatische Updates anderer Datensätze
• Reactor: Aktionen nach Commit in Datenbank
→ Email-Versenden
© 2007 Dr. Ralf Schlatterbeck Open Source Consulting · www.runtux.com · office@runtux.com
9
Beliebige Schnittstellen über Python-API
© 2007 Dr. Ralf Schlatterbeck Open Source Consulting · www.runtux.com · office@runtux.com
10
Web-Interface
• Schnittstelle zu OpenOffice.org (OOoPy)
→ Generierung von OOo Dokumenten
• Zope Page Templates (ZPT)
• Templates für Menu
Auswertungen
• i18n + l10n
Reports
• Hilfetexte für Maskenfelder
Inhalte
<tal:block metal:use-macro="templates/page/macros/issue">
<tal:block metal:fill-slot="issue_content">
<tr>
<th tal:content="structure python:utils.fieldname
(classname, ’category’)"/>
<td tal:content="structure context/category/menu"/>
• Erweiterungen z. B. Projektplanung Gantt Charts
(PyGantt)
© 2007 Dr. Ralf Schlatterbeck Open Source Consulting · www.runtux.com · office@runtux.com
11
© 2007 Dr. Ralf Schlatterbeck Open Source Consulting · www.runtux.com · office@runtux.com
12
Timetracker Example
Realisierte Roundup-Projekte
• Software Bug-Tracker
• IT-Helpdesk
• Verwaltung von Rechnern, DNS-Einträgen usw.
• Userverwaltung, Anbindung an LDAP,
Generierung von LDIF
• Dokumentenverwaltung
• Projekt-Zeiterfassung, Urlaubsverwaltung
• Abonnentenverwaltung für einen kleinen Verlag
© 2007 Dr. Ralf Schlatterbeck Open Source Consulting · www.runtux.com · office@runtux.com
13
© 2007 Dr. Ralf Schlatterbeck Open Source Consulting · www.runtux.com · office@runtux.com
14