Dokumentation zur Entwicklung von UMC Modulen?

german
integration

#1

Hallo,
gibt es irgendwo Dokumentation zur Entwicklung von UMC Modulen, insbesondere zur Strukturierung, der Platzierung von Elementen und Widgets, APIS, Bibliotheken etc?

Oder ist hier RE (Reverse Engeneering) angesagt? :wink:

Gr├╝sse

Ralf K├╝hnbaum-Grashorn


#2

Hallo,

leider ist die Entwicklung von UMC Modulen nicht sehr ausf├╝hrlich dokumentiert und geht z.B. nicht auf Javascript-Widgets ein. Ein Startpunkt ist folgende Dokumentation:
http://docs.software-univention.de/developer-reference-4.2.html#chap:umc

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.*.

http://forge.univention.org/websvn/filedetails.php?repname=dev&path=%2Fbranches%2Fucs-4.2%2Fucs-4.2-0%2Fmanagement%2Funivention-web%2Fjs%2Ftools.js

http://forge.univention.org/websvn/filedetails.php?repname=dev&path=%2Fbranches%2Fucs-4.2%2Fucs-4.2-0%2Fmanagement%2Funivention-web%2Fjs%2Fdialog.js

http://forge.univention.org/websvn/listing.php?repname=dev&path=%2Fbranches%2Fucs-4.2%2Fucs-4.2-0%2Fmanagement%2Funivention-web%2Fjs%2Fwidgets%2F&#ac04c8e6b1ee0361684addc982a012aaf

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.