Bug 25707 - Übernahme des Materialverteilung-Modul (ucs-school-umc-distribution)
Übernahme des Materialverteilung-Modul (ucs-school-umc-distribution)
Status: CLOSED FIXED
Product: UCS@school
Classification: Unclassified
Component: UMC - Distribution
UCS@school for UCS 2.4
Other Linux
: P5 normal (vote)
: UCS@school 3.0 MS2
Assigned To: Alexander Kläser
Jascha Geerds
:
Depends on: 26373
Blocks: 25777 26517 26521 26528 26533
  Show dependency treegraph
 
Reported: 2012-01-03 17:36 CET by Sönke Schwardt-Krummrich
Modified: 2012-06-11 06:30 CEST (History)
5 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 Sönke Schwardt-Krummrich univentionstaff 2012-01-03 17:36:54 CET
Für UCS@school 3.0 muss das Paket nach UCS 3.0 übernommen und entsprechend
umgestellt werden:
- Python 2.6
- bash/dash
- anonymous bind
- Restrukturierung der UMC-Komponente
- ...
Comment 1 Alexander Kläser univentionstaff 2012-03-05 15:54:58 CET
Folgende Entscheidungen wurden bzgl. der Übernahme dieses Moduls getroffen:

* Namensgebung: der Name "Materialverteilung" wird weiter verwendet

* Standardmäßig werden nur "eigene Projekte" angezeigt, es können im Dropdown des Suchformulares auch "alle Projekte" ausgewählt werden

* Projekte können zeitgesteuert (oder sofort) ausgeteilt und zeitgesteuert (oder manuell) eingesammelt werden

* Ein Admin (Schul-/Domänenadmin) kann alle Projekte löschen, Lehrer können nur ihre eigenen

* Einsammeln kann jeder, die eingesammelten Dateien werden im Home des Einsammelnden (nicht des Owners) abgelegt
Comment 2 Alexander Kläser univentionstaff 2012-03-06 13:11:24 CET
Das Paket heißt derzeit ucs-school-umc-teachingmaterial, es wird in ucs-school-umc-distribution umbenannt.
Comment 3 Alexander Kläser univentionstaff 2012-03-07 16:42:35 CET
Im Frontend wird der Projektname als "Verzeichnisname" ausgegeben. Dieser wird automatisch von der Projektbeschreibung abgeleitet, kann durch den Benutzer allerdings verändert werden. In der Ergebnisliste wird nur die Beschreibung angezeigt.
Comment 4 Sönke Schwardt-Krummrich univentionstaff 2012-03-13 16:18:40 CET
(In reply to comment #2)
> Das Paket heißt derzeit ucs-school-umc-teachingmaterial, es wird in
> ucs-school-umc-distribution umbenannt.

Ich glaube, in der Aussage sind die Paketnamen vertauscht :-)
Comment 5 Alexander Kläser univentionstaff 2012-03-13 16:32:37 CET
(In reply to comment #4)
> (In reply to comment #2)
> > Das Paket heißt derzeit ucs-school-umc-teachingmaterial, es wird in
> > ucs-school-umc-distribution umbenannt.
> 
> Ich glaube, in der Aussage sind die Paketnamen vertauscht :-)

Nein, sind sie nicht, aber das war vielleicht etwas unklar, ucs-school-umc-distribution ist tot, lang lebe ucs-school-umc-distribution :) .
Comment 6 Alexander Kläser univentionstaff 2012-03-15 12:03:52 CET
Bug 26528 übernimmt die Erweiterung von univention-lib um ein Modul zur At-Job-Verwaltung in 3.0-2.
Comment 7 Alexander Kläser univentionstaff 2012-03-16 18:04:57 CET
Im Zuge diese Bugs wurde eine Time-Widget der UMC-Bibliothek neu hinzugefügt, ein entsprechender Bug für diese Änderung wurde angelegt → Bug 26546
Comment 8 Alexander Kläser univentionstaff 2012-03-19 11:29:41 CET
(In reply to comment #1)
> ...
> * Ein Admin (Schul-/Domänenadmin) kann alle Projekte löschen, Lehrer können nur
> ihre eigenen
> 
> * Einsammeln kann jeder, die eingesammelten Dateien werden im Home des
> Einsammelnden (nicht des Owners) abgelegt

Kleinere Änderungen:

* Einsammeln, Einsehen und Bearbeiten kann man nur seine eigenen Projekte

* Es gibt die Möglichkeit (analog zum Computerraum) ein Projekt zu übernehmen; jeder kann jedes Projekt übernehmen; das ist transparent und nachvollziehbar für alle Beteiligten

* Ein Admin (Schul-/Domänenadmin) kann alle Projekte einsehen und löschen
Comment 9 Alexander Kläser univentionstaff 2012-04-16 18:13:39 CEST
Das Modul ist soweit fertig. 

Für die QA: Bitte auch fiese Projektnamen ausprobieren, einige Sonderzeichen sind als Verzeichnisnamen nicht erlaubt. Bitte auch das Kommandozeilenskript ausprobieren (umc-distribution).


 ucs-school-umc-distribution (0.0.14-1) unstable; urgency=low
 .
   * disallow several special characters to avoid problems with Windows, Mac,
     and Unix systems; Bug #25707
Comment 10 Alexander Kläser univentionstaff 2012-04-24 13:07:22 CEST
Aus Bug 26373, comment 5:

> (In reply to comment #4)
> > Derzeit wird noch nicht die entsprechende Maximale Dateigröße aus der
> > UCR-Variable im Widget berücksichtigt.
> 
> → Die UCR-Varialbe sollte im Modul der Materialverteilung ausgelesen werden.

Das wurde entsprechend angepasst, beim Aufruf des Moduls wird die UCR-Variable ausgelesen.


 ucs-school-umc-distribution (0.0.15-1) unstable; urgency=low
 .
   * set the frontend max upload size to umc/server/upload/max; Bug #25707
Comment 11 Florian Best univentionstaff 2012-05-10 16:19:18 CEST
Ein Traceback erscheint beim öffnen eines Projekts:

Zum reproduzieren ein Projekt anlegen, dass eine automatische Zeit definiert:

{"object": {"files": [], "description": "bar", "recipients": [], "distributeType": "automatic", "collectDate": "2012-05-10", "collectTime": "16:18", "collectType": "manual", "distributeTime": "17:00", "distributeDate": "2012-05-10", "name": "barbaz"}, "options": null}

Die Ausf�hrung des Kommandos distribution/get ist fehlgeschlagen:

Traceback (most recent call last):
  File '/usr/lib/pymodules/python2.6/univention/management/console/modules/__init__.py', line 102, in execute
    func( request )
  File '/usr/lib/pymodules/python2.6/ucsschool/lib/schoolldap.py', line 201, in wrapper_func
    return func( *args, **kwargs )
  File '/usr/lib/pymodules/python2.6/univention/management/console/modules/distribution/__init__.py', line 408, in get
    props['%sDate' % jsuffix] = time.strftime('%Y-%m-%d', time.localtime(jjob.execTime))
TypeError: a float is required


Außerdem ist dies in den Logs aufgefallen:
ERROR   ) : Could not open project file: None ['NoneType' object has no attribute 'startswith']
Comment 12 Alexander Kläser univentionstaff 2012-05-18 11:16:11 CEST
(In reply to comment #11)
> Ein Traceback erscheint beim öffnen eines Projekts:
> ...

Stimmt, danke für den Hinweis. Intern wurde das atjobs-Modul geändert, damit es datetime anstelle von time verwendet. Da das Materialverteilungsmodul immer noch mit time arbeitete, kam es da zu Problemen. Das wurde angepasst.


 ucs-school-umc-distribution (0.0.22-1) unstable; urgency=low
 .
   * adapt to changes from atjobs module, use datetime instead of time
   * make sure that a project can only be collected after distributing it
   Bug #25707
Comment 13 Florian Best univentionstaff 2012-05-21 10:01:15 CEST
noch ein Traceback (ucs-school-umc-distribution   0.0.23-1.34.201205181127)

Die Ausf�hrung des Kommandos distribution/query ist fehlgeschlagen:

Traceback (most recent call last):
  File '/usr/lib/pymodules/python2.6/univention/management/console/modules/__init__.py', line 102, in execute
    func( request )
  File '/usr/lib/pymodules/python2.6/univention/management/console/modules/distribution/__init__.py', line 158, in query
    ) for i in util.Project.list()
  File '/usr/lib/pymodules/python2.6/univention/management/console/modules/distribution/util.py', line 595, in list
    project = Project.load(fname)
  File '/usr/lib/pymodules/python2.6/univention/management/console/modules/distribution/util.py', line 564, in load
    project = jsonDecode(''.join(fd.readlines()))
  File '/usr/lib/pymodules/python2.6/univention/management/console/modules/distribution/util.py', line 158, in jsonDecode
    return json.loads(val, object_hook = _dict_type )
  File '/usr/lib/python2.6/json/__init__.py', line 318, in loads
    return cls(encoding=encoding, **kw).decode(s)
  File '/usr/lib/python2.6/json/decoder.py', line 319, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File '/usr/lib/python2.6/json/decoder.py', line 336, in raw_decode
    obj, end = self._scanner.iterscan(s, **kw).next()
  File '/usr/lib/python2.6/json/scanner.py', line 55, in iterscan
    rval, next_pos = action(m, context)
  File '/usr/lib/python2.6/json/decoder.py', line 183, in JSONObject
    value, end = iterscan(s, idx=end, context=context).next()
  File '/usr/lib/python2.6/json/scanner.py', line 55, in iterscan
    rval, next_pos = action(m, context)
  File '/usr/lib/python2.6/json/decoder.py', line 201, in JSONObject
    pairs = object_hook(pairs)
  File '/usr/lib/pymodules/python2.6/univention/management/console/modules/distribution/util.py', line 149, in _dict_type
    if x[ '__type__' ] == TYPE_USER:
KeyError: '__type__'
Comment 14 Florian Best univentionstaff 2012-05-21 10:57:49 CEST
(In reply to comment #13)
> noch ein Traceback (ucs-school-umc-distribution   0.0.23-1.34.201205181127)
Das lag an Projekten in einem alten Format.
Comment 15 Lukas Walter univentionstaff 2012-05-21 11:52:29 CEST
Beim "Verteilen" eines Projekts:

Name: "univention"
Beschreibung: "univention"

"Der folgende Fehler trat auf: 'ascii' codec can't encode character u'\xfc' in position 9: ordinal not in range(128)"
Comment 16 Lukas Walter univentionstaff 2012-05-21 11:55:19 CEST
(In reply to comment #15)
> Beim "Verteilen" eines Projekts:
> 
> Name: "univention"
> Beschreibung: "univention"
> 
> "Der folgende Fehler trat auf: 'ascii' codec can't encode character u'\xfc' in
> position 9: ordinal not in range(128)"

Tritt aber auch bei beliebigen anderen Projekten auf.
Comment 17 Alexander Kläser univentionstaff 2012-05-21 16:29:01 CEST
Bitte nur den sichtbaren Verzeichnisnamen des Projekts anzeigen, eine Aufteilung in Beschreibung und Verzeichnisname ist eher verwirrend.
Comment 18 Moritz Muehlenhoff univentionstaff 2012-05-21 16:45:30 CEST
Wie besprochen:

Folgende Anpassungen sollten noch gemacht werden, sonst ist unklar, was der Dialog macht:

- Das Untermenü sollte statt "Mitglieder" "Zugeordnete Klassen/Arbeitsgruppen" heissen

- In dem Menü, das sich bei Hinzufügen öffnet, sollte in der Titelleiste statt "Objekte hinzufügen" "Klassen/Arbeitsgruppen zuordnen" stehen.

- Initial ist der Dialog leer, erst wenn man auf "Suchen" klickt, erscheint die Liste der Klassen/AGs. Hier sollte direkt eine Suche angestossen werden.
Comment 19 Moritz Muehlenhoff univentionstaff 2012-05-21 17:23:54 CEST
(In reply to comment #18)
> Wie besprochen:
> 
> Folgende Anpassungen sollten noch gemacht werden, sonst ist unklar, was der
> Dialog macht:
> 
Es wäre auch gut, wenn die Option zum Abschliessen des Dialogs nicht "Speichern", sondern "Projekt erstellen" hiesse.
Comment 20 Moritz Muehlenhoff univentionstaff 2012-05-21 17:26:43 CEST
In der Übersichtsliste steht "einsammelr" statt "einsammeln"
Comment 21 Alexander Kläser univentionstaff 2012-05-22 12:09:54 CEST
Der Status eines Projektes ist nicht direkt ersichtlich.
Comment 22 Moritz Muehlenhoff univentionstaff 2012-05-22 12:32:54 CEST
Ein weiterer Bug: Legt man ein Projekt an und weist direkt beim Anlegen eine Datei zu und wählt manuelles Verteilen und manuelles Einsammeln, steht nur die Aktion "Einsammeln" statt "Verteilen" zur Verfügung.
Comment 23 Lukas Walter univentionstaff 2012-05-22 13:15:01 CEST
Das Symbol des Moduls im UMC Grid wird vom IE8 nicht angezeigt.
Comment 24 Alexander Kläser univentionstaff 2012-05-23 10:10:20 CEST
(In reply to comment #23)
> Das Symbol des Moduls im UMC Grid wird vom IE8 nicht angezeigt.

→ Wurde über Bug 27238 behoben.
Comment 25 Alexander Kläser univentionstaff 2012-05-23 11:12:29 CEST
Derzeit werden Dateien auch an Lehrer der Klasse verteilt und aus ihrem Home wieder eingesammelt.
Comment 26 Alexander Kläser univentionstaff 2012-05-23 12:35:11 CEST
Die Paketversion ist in 3.0 kleiner als in 2.4.
Comment 27 Alexander Kläser univentionstaff 2012-05-23 17:38:30 CEST
(In reply to comment #15)
> Beim "Verteilen" eines Projekts:
> 
> Name: "univention"
> Beschreibung: "univention"
> 
> "Der folgende Fehler trat auf: 'ascii' codec can't encode character u'\xfc' in
> position 9: ordinal not in range(128)"

→ Auslagerung nach Bug 27255.

(In reply to comment #17)
> Bitte nur den sichtbaren Verzeichnisnamen des Projekts anzeigen, eine
> Aufteilung in Beschreibung und Verzeichnisname ist eher verwirrend.

→ Auslagerung nach Bug 27211.

(In reply to comment #18)
> Wie besprochen:
> 
> Folgende Anpassungen sollten noch gemacht werden, sonst ist unklar, was der
> Dialog macht:
> 
> - Das Untermenü sollte statt "Mitglieder" "Zugeordnete Klassen/Arbeitsgruppen"
> heissen

→ OK
 
> - In dem Menü, das sich bei Hinzufügen öffnet, sollte in der Titelleiste statt
> "Objekte hinzufügen" "Klassen/Arbeitsgruppen zuordnen" stehen.

→ OK, dazu musste das entsprechende Widget leicht erweitert werden (Bug 26259)

> - Initial ist der Dialog leer, erst wenn man auf "Suchen" klickt, erscheint die
> Liste der Klassen/AGs. Hier sollte direkt eine Suche angestossen werden.

→ OK

(In reply to comment #19)
> Es wäre auch gut, wenn die Option zum Abschliessen des Dialogs nicht
> "Speichern", sondern "Projekt erstellen" hiesse.

→ OK, entweder wird jetzt "Änderungen speichern" oder "Projekt erstellen" angezeigt.

(In reply to comment #20)
> In der Übersichtsliste steht "einsammelr" statt "einsammeln"

→ OK, die Grid-Spalte war nicht breit genug

(In reply to comment #21)
> Der Status eines Projektes ist nicht direkt ersichtlich.

→ OK, der Status wird nun in einer extra Spalte angezeigt

(In reply to comment #22)
> Ein weiterer Bug: Legt man ein Projekt an und weist direkt beim Anlegen eine
> Datei zu und wählt manuelles Verteilen und manuelles Einsammeln, steht nur die
> Aktion "Einsammeln" statt "Verteilen" zur Verfügung.

→ Das kann ich soweit nicht reproduzieren, bitte noch einmal überprüfen

(In reply to comment #25)
> Derzeit werden Dateien auch an Lehrer der Klasse verteilt und aus ihrem Home
> wieder eingesammelt.

→ OK, es werden jetzt als Empfänger nur Schüler abgespeichert, alle anderen Benutzer werden ignoriert

(In reply to comment #26)
> Die Paketversion ist in 3.0 kleiner als in 2.4.

→ OK, die alten Changelog-Einträge wurden soweit übernommen, die Major-Version wurde erhöht für das jetzige Paket


 ucs-school-umc-distribution (7.0.25-1) unstable; urgency=low
 .
   * added custom title for adding class/workgroups popup dialog
   * fixed captions
   * added status column
   * only distribute files to students
   * fixed changelog versions
   Bug #25707
Comment 28 Jascha Geerds univentionstaff 2012-05-24 12:43:38 CEST
Aktuell ist es so, dass wenn man ein Projekt einsammelt, sich ein Dialog öffnet und man gefragt wird, ob man das Projekt wirklich einsammeln möchte. Bestätigt man diesen Dialog, bekommt man keinerlei Feedback ob die Operation gelungen oder fehlgeschlagen ist. Ich denke es wäre sinnvoll, wenn an dieser Stelle eine kleine Meldung am oberen Bildschirmrand erscheint.

(QA ist noch nicht komplett durch)
Comment 29 Jascha Geerds univentionstaff 2012-05-24 13:53:18 CEST
Das Kommandozeilen-Skript besitzt eine falsche Berechtigung, aktuell ist es nicht ausführbar:

-rw-r--r-- 1 root root 5146 16. Apr 16:27 umc-distribution
Comment 30 Jascha Geerds univentionstaff 2012-05-24 14:10:13 CEST
Wenn man das Skript benutzt, gibt es die Parameter aus mit denen es aufgerufen wurde. Bspw:

./umc-distribution -r test
umc-distribution started: args=['./umc-distribution', '-r', 'test']

Ist das wirklich so gewollt?
Comment 31 Jascha Geerds univentionstaff 2012-05-24 14:23:48 CEST
Im Test funktionierte das Skript auch nicht. Wenn man via UMC ein Projekt erstellt (name: test) und dieses im Anschluss via Kommandozeilenskript verteilen möchte, passiert folgendes:

./umc-distribution -s test
umc-distribution started: args=['./umc-distribution', '-s', 'test']
umc-distribution: file does not exist: test
finished umc-distribution: args=['./umc-distribution', '-s', 'test']


Die automatische Materialeinsammlung und -verteilung funktioniert auch noch nicht (das Skript wurde per Hand um das executable flag bereichert)

QA ist soweit erstmal durch, bitte die genannte Punkte korrigieren.
Comment 32 Alexander Kläser univentionstaff 2012-05-24 17:17:32 CEST
(In reply to comment #28)
> Aktuell ist es so, dass wenn man ein Projekt einsammelt, sich ein Dialog öffnet
> und man gefragt wird, ob man das Projekt wirklich einsammeln möchte. Bestätigt
> man diesen Dialog, bekommt man keinerlei Feedback ob die Operation gelungen
> oder fehlgeschlagen ist. Ich denke es wäre sinnvoll, wenn an dieser Stelle eine
> kleine Meldung am oberen Bildschirmrand erscheint.
> 
> (QA ist noch nicht komplett durch)

→ OK, es wird jetzt mittels umc.dialog.notify() nach erfolgreichem Einsammeln/Verteilen eine Info ausgegeben

(In reply to comment #29)
> Das Kommandozeilen-Skript besitzt eine falsche Berechtigung, aktuell ist es
> nicht ausführbar:
> 
> -rw-r--r-- 1 root root 5146 16. Apr 16:27 umc-distribution

→ OK, das wurde angepasst

(In reply to comment #30)
> Wenn man das Skript benutzt, gibt es die Parameter aus mit denen es aufgerufen
> wurde. Bspw:
> 
> ./umc-distribution -r test
> umc-distribution started: args=['./umc-distribution', '-r', 'test']
> 
> Ist das wirklich so gewollt?

→ Das war vorher auch so und kann bleiben.

(In reply to comment #31)
> Im Test funktionierte das Skript auch nicht. Wenn man via UMC ein Projekt
> erstellt (name: test) und dieses im Anschluss via Kommandozeilenskript
> verteilen möchte, passiert folgendes:
> 
> ./umc-distribution -s test
> umc-distribution started: args=['./umc-distribution', '-s', 'test']
> umc-distribution: file does not exist: test
> finished umc-distribution: args=['./umc-distribution', '-s', 'test']
> 
> 
> Die automatische Materialeinsammlung und -verteilung funktioniert auch noch
> nicht (das Skript wurde per Hand um das executable flag bereichert)
> 
> QA ist soweit erstmal durch, bitte die genannte Punkte korrigieren.

→ Das sollte jetzt klappen, dies lag auch an dem Rechte-Problem mit dem Skript.


 ucs-school-umc-distribution (7.0.27-1) unstable; urgency=low
 .
   * fixed permission problems with script umc-distribution
   * added notifications for successful collection/distribution of files
   Bug #25707
Comment 33 Jascha Geerds univentionstaff 2012-05-25 10:30:09 CEST
(In reply to comment #32)
> → OK, es wird jetzt mittels umc.dialog.notify() nach erfolgreichem
> Einsammeln/Verteilen eine Info ausgegeben

Okay, das funktioniert.

> → OK, das wurde angepasst

Ja, die Berechtigungen stimmen nun.

> → Das sollte jetzt klappen, dies lag auch an dem Rechte-Problem mit dem Skript.

Ja, die Materialverteilung und -einsammlung funktioniert nun.


Ein Problem ist jedoch immer noch aktuell:


(In reply to comment #31)
> Im Test funktionierte das Skript auch nicht. Wenn man via UMC ein Projekt
> erstellt (name: test) und dieses im Anschluss via Kommandozeilenskript
> verteilen möchte, passiert folgendes:
> 
> ./umc-distribution -s test
> umc-distribution started: args=['./umc-distribution', '-s', 'test']
> umc-distribution: file does not exist: test
> finished umc-distribution: args=['./umc-distribution', '-s', 'test']

Das Projekt lässt sich via Skript nicht verteilen.
Comment 34 Alexander Kläser univentionstaff 2012-05-25 11:03:04 CEST
(In reply to comment #33)
> ...
> Das Projekt lässt sich via Skript nicht verteilen.

Doch :P , es muss der absolute Pfad zu der entsprechenden Projektdatei angegeben werden (so ist der Kommand auch angegeben in den registrierten at-Jobs unter /var/spool/cron/atjobs):

> '/usr/lib/ucs-school-umc-distribution/umc-distribution' --distribute /var/lib/ucs-school-umc-distribution/neuesprojekt
Comment 35 Jascha Geerds univentionstaff 2012-05-25 11:18:06 CEST
(In reply to comment #34)
> Doch :P , es muss der absolute Pfad zu der entsprechenden Projektdatei
> angegeben werden (so ist der Kommand auch angegeben in den registrierten
> at-Jobs unter /var/spool/cron/atjobs):
> 
> > '/usr/lib/ucs-school-umc-distribution/umc-distribution' --distribute /var/lib/ucs-school-umc-distribution/neuesprojekt

Komisch, aufeinmal funktioniert das Skript :)
Comment 36 Stefan Gohmann univentionstaff 2012-06-11 06:30:10 CEST
UCS@school 3.0 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer  neueren Version von UCS@school erneut auftreten, so sollte dieser Bug dupliziert werden: "Clone This Bug"