Bug 23876 - UMC-Module aus Templates erstellen
UMC-Module aus Templates erstellen
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: UMC (Generic)
UCS 3.0
Other Linux
: P3 enhancement (vote)
: UCS 3.0-1
Assigned To: Lukas Walter
Florian Best
:
Depends on:
Blocks: 25951
  Show dependency treegraph
 
Reported: 2011-09-29 19:30 CEST by Alexander Kläser
Modified: 2012-03-04 14:34 CET (History)
2 users (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alexander Kläser univentionstaff 2011-09-29 19:30:41 CEST
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.
Comment 1 Alexander Kläser univentionstaff 2011-09-29 19:32:14 CEST
(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"
Comment 2 Alexander Kläser univentionstaff 2012-01-27 12:57:38 CET
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)
Comment 3 Alexander Kläser univentionstaff 2012-01-27 13:07:43 CET
... Changelog-Eintrag wurde hinzugefügt.
Comment 4 Alexander Kläser univentionstaff 2012-01-27 13:09:27 CET
Es wurde ein neuer Bug erstellt, um weitere Templates anzulegen → Bug 25951
Comment 5 Andreas Büsching univentionstaff 2012-02-23 13:52:31 CET
Daran habe ich selbst zu viele Änderungen/Erweiterungen gemacht
Comment 6 Jascha Geerds univentionstaff 2012-02-24 15:32:57 CET
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.
Comment 7 Lukas Walter univentionstaff 2012-02-27 17:18:25 CET
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)
Comment 8 Lukas Walter univentionstaff 2012-02-27 17:33:41 CET
Paket gebaut.
Comment 9 Florian Best univentionstaff 2012-02-28 11:22:54 CET
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
Comment 10 Florian Best univentionstaff 2012-02-28 12:24:36 CET
(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
Comment 11 Lukas Walter univentionstaff 2012-02-28 15:08:18 CET
Ä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)
Comment 12 Florian Best univentionstaff 2012-02-28 16:44:56 CET
(In reply to comment #11)
> Änderungen nachträglich eingepflegt, Paket gebaut.
Ja

→ VERIFIED
Comment 13 Lukas Walter univentionstaff 2012-02-29 10:51:49 CET
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.
Comment 14 Florian Best univentionstaff 2012-02-29 14:24:20 CET
(In reply to comment #13)
> Auf Wunsch wurde ein Standardtext wieder in die debian/control des Templates
> übernommen.
ist drin
→ Verified
Comment 15 Sönke Schwardt-Krummrich univentionstaff 2012-03-04 14:34:23 CET
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"