Hallo,
gibt es irgendwo Dokumentation zur Entwicklung von UMC Modulen, insbesondere zur Strukturierung, der Platzierung von Elementen und Widgets, APIS, Bibliotheken etc?
Es gibt ein Tool, dass die Skelett-Struktur eines UMC-Moduls erstellt:
# apt-get install univention-management-console-dev
# umc-create-module -h
usage: umc-create-module [<options>...] <moduleID> [<destinationDir>]
destination dir:
If not given, it defaults to the current working directory.
options:
--name displayed name of the module
--description verbose module description (shown as tooltip)
--category category id (default: system)
--keywords module keywords (default: 'dummy)
--package package name
--icon path to SVG icon file
--list list available templates
--template name of the template (default: grid_with_detailpage)
--no-debian do not copy debian packages files
Die Javscript-Frontend Entwicklung basiert auf dojo, daher können alle dojo widgets benutzt werden: http://dojotoolkit.org/documentation/
Zusätzlich lohnt ein Blick in umc.tools, umc.dialog und umc.widgets.*.
Zum Python-Backend Code:
Jedes UMC-Modul erbt von der Basis-Klasse univention.management.console.base.Base.
Als Beispiel würde ich empfehlen auch einige der builtin-UMC Module anzusehen (z.B. top, ucr, join, udm, printers) . Es gibt einige utilities in univention.management.console.modules.decorators sowie für die Validierung von Benutzereingaben gibt es univention.management.console.modules.sanitizers.
Der Rest ist wohl Reverse-Engineering. Ich beantworte ansonsten gerne auch spezifische Fragen, die hier im Forum gestellt werden oder mache Code-Review.