Univention Bugzilla – Bug 23876
UMC-Module aus Templates erstellen
Last modified: 2012-03-04 14:34:23 CET
Für die Entwicklung eines UMC-Moduls wäre es sehr hilfreich eine Tool zur Verfügung zu stellen, das es erlaubt ein neues UMC-Modul anhand eines Templates zu erstellen. Dazu gibt der Benutzer die grundlegenden Informationen wie Modul-ID, Beschreibungstext etc. an, durch die dann Platzhalter in den Template-Dateien ersetzt werden. Zur Erstellung könnten dann verschiedenen Templates zur Verfügung stehen, in denen dann Python- und JavaScript-Methoden bereits als Dummies mit Dummywerten bereitgestellt werden, bspw.: * Ein Template-Modul mit einem Grid und bereits implementierten Dummy-Methoden für query, remove, set etc. * Ein Template-Modul mit Tabs und verschiedenen Seiten (also mehrere Klassen) * Ein einfaches Modul mit nur einer Seite und einem Formular Das würde sicherlich die Einstiegshürde zur Modulprogrammieren senken und wäre sehr hilfreich für der Dokumentation im Wiki.
(In reply to comment #0) > Für die Entwicklung eines UMC-Moduls wäre es sehr hilfreich eine Tool zur > Verfügung zu stellen, ... Auf der Kommandozeile könnte man dann schreiben, bspw.: umc-create-module --template grid --id mymodule --description "This is my Modul"
Ein entsprechendes Tool wurde hinzugefügt mit derzeit nur einem Template, das aus einem Grid mit Detail-Seite besteht. univention-management-console (4.0.96-1) unstable; urgency=low . * added tool 'umc-create-module' to generate empty UMC modules from templates (Bug #23876)
... Changelog-Eintrag wurde hinzugefügt.
Es wurde ein neuer Bug erstellt, um weitere Templates anzulegen → Bug 25951
Daran habe ich selbst zu viele Änderungen/Erweiterungen gemacht
Erstellung eins UMC-Moduls: umc-create-module --name "Testmodul" --description "Dies ist ein kleines Testmodul" --package "umc-modules-test" --template grid_with_detailpage testmodul /usr/bin/umc-create-module: Zeile 182: dch: Kommando nicht gefunden. Da das umc-create-module Tool Teil des univention-management-console-dev Paketes ist, sollte dieses vielleicht eine Abhängigkeit auf "devscripts" haben, damit auch debchange (dch) auf dem System vorhanden ist. Um das erstellte Modul im Anschluss auch bauen zu können, fehlen jedoch weitere Pakete. Es lässt sich streiten ob diese Pakete als Abhängigkeit bei univention-management-console-dev eingetragen werden sollen oder nicht, denn das reine erstellen funktioniert ja. Im Entwicklungsverlauf könnte das Paket sowieso zusätzliche Abhängigkeiten bekommen. Allerdings gibt es hier ein paar Konstanten: - python-all - ucslint (?) Des Weiteren ist aufgefallen, dass ucslint in der debian/rules benutzt wird, es jedoch nicht als build-dependency eintragen ist. Das sollte im Template vielleicht angepasst werden. simple_form: in der __init__.py:43 ist ein kleiner Schreibfehler in den Kommentaren ([...]is called when the module when the module process is[...]). In diesem Template funktioniert das umcp-Kommando $modul/send auch nicht: Die Ausführung des Kommandos testmodul2/send ist fehlgeschlagen: Traceback (most recent call last): File '/usr/lib/pymodules/python2.6/univention/management/console/modules/__init__.py', line 97, in execute func( request ) File '/usr/lib/pymodules/python2.6/univention/management/console/modules/testmodul2/__init__.py', line 92, in send func = notifier.Callback( _send_thread, NameError: global name 'notifier' is not defined Das Modul "notifier" sowie "smtplib" muss noch importiert werden. In der __init__.py:74 steht "recipients" statt "recipient" - dies führt zu einem weiteren Traceback. Wenn die genannten Punkte behoben sind, funktioniert das Modul absolut grandios.
Die genannten Probleme wurden gefixt, Paket noch nicht gebaut. univention-management-console (4.0.203-1) unstable; urgency=low * added dependency on devscripts to umc-create-module * corrected language misstakes in code comments in simple_form template * added missing import instructions in simple_form template (Bug #23876)
Paket gebaut.
Im debian/control file wird die Beschreibung aus --description nicht zur Paketbeschreibung hinzugefügt: > Package: univention-foobar > Architecture: all > Depends: ${misc:Depends}, > univention-management-console-server, > devscripts > Description: UMC dummy module > This package contains a UMC dummy module. getestet mit: univention-management-console 4.0.203-1.586.201202271726
(In reply to comment #2) > Ein entsprechendes Tool wurde hinzugefügt mit derzeit nur einem Template, das > aus einem Grid mit Detail-Seite besteht. vorhanden (In reply to comment #3) > ... Changelog-Eintrag wurde hinzugefügt. Ok (In reply to comment #6) > Da das umc-create-module Tool Teil des univention-management-console-dev > Paketes ist, sollte dieses vielleicht eine Abhängigkeit auf "devscripts" haben, Abhängikeit vorhanden > simple_form: in der __init__.py:43 ist ein kleiner Schreibfehler in den > Kommentaren ([...]is called when the module when the module process is[...]). typo ist behoben > __init__.py:74 steht "recipients" statt "recipient" - dies führt zu einem gefixt > weiteren Traceback. Wenn die genannten Punkte behoben sind, funktioniert das > Modul absolut grandios. Stimmt Weitere 2 Punkte: > Das Modul "notifier" sowie "smtplib" muss noch importiert werden. In der unsauber gemacht, weil in einer Zeile > Des Weiteren ist aufgefallen, dass ucslint in der debian/rules benutzt wird, es > jedoch nicht als build-dependency eintragen ist. Das sollte im Template > vielleicht angepasst werden. Das wurde nicht gemacht
Änderungen nachträglich eingepflegt, Paket gebaut. univention-management-console (4.0.204-1) unstable; urgency=low * added build-dependency on ucslint to umc module template * module description passed to umc-module-create is now used in the debian/control file of generated dummy modules (Bug #23876)
(In reply to comment #11) > Änderungen nachträglich eingepflegt, Paket gebaut. Ja → VERIFIED
Auf Wunsch wurde ein Standardtext wieder in die debian/control des Templates übernommen. univention-management-console (4.0.205-1) unstable; urgency=low * added standard text to debian/control in umc-module-template (Bug #23876) Paket gebaut.
(In reply to comment #13) > Auf Wunsch wurde ein Standardtext wieder in die debian/control des Templates > übernommen. ist drin → Verified
UCS 3.0-1 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer neueren Version von UCS erneut auftreten, so sollte dieser Bug dupliziert werden: "Clone This Bug"