Pràctica ASI-C3-IAIG: DMS: Alfresco I. Acadèmia d'anglès

De wikijoan
Salta a la navegació Salta a la cerca

Objectius

Desenvolupament

Si no estan creats, els alumnes entraran com a administrador (admin/alfresco), i crearan l'usuari asi2axx/asi. Posaràs dades vàlides (i mail vàlid), i com a UserHome posaràs asi2axx, penjant de User Homes: /Company Home/User Homes/asi2axx.

Cada usuari-alumne (asi2aXX) crearà un espai per emmagatzemar els exercicis d'anglès. El professor d'anglès (usuari joan) podrà accedir a aquest espai i podrà corregir els exercicis.

El professor té un espai on penja els exercicis d'anglès. L'alumne agafa els exercicis de l'espai del professor (Space Exercicis), i crea l'exercici en el seu contingut.

Feina per a l'alumne

l'alumne es loga amb el seu usuari: asi2axx/asi. Un cop logat, veuràs que el teu HomeSpace estarà buit (anar a MyHome).

També pots accedir al teu espai des de Company Home > Sites > asi2axx, que és la ubicació del teu Home.

Anem a crear un space en el teu Home.

Create > Advanced Space Wizzard > From Scratch > Folder Space
Name: exercicis_angles_xx
Title Exercicis anglès XX
Finish

Sobre aquest espai crearàs tres carpetes-espais: exercicis, pdf i correccions

Sobre els documents de l'espai Exercicis crearem la regla Enviar a corregir (Manage Content Rules). Aquesta regla farà el següent:

  • el document original, que és un txt, s'envia a l'espai del professor, a la carpeta exercicis_per_corregir, en el seu format original
  • es transforma el document original a pdf i es diposita a pdf.

Les dades que necessites per crear la regla són

All Items (l'acció s'executa sobre el contingut afegit en aquesta carpeta)
	
	Transform and copy content to an specific space
	Required Format: Adobe PDF Document
	Destination: PDF (ho vols copiar a la teva carpeta PDF)

	Copy Item to a Specific Space
	ho copiem a joan > exercicis_per_corregir

Tipus de regla: Inbound. Significa que la regla s'executa quan fiquem contingut dins la carpeta exercicis

Nota: per tal de què funcioni aquesta regla, prèviament l'usuari joan haurà d'haver donat permís per tal que tots els usuaris puguin escriure en l'espai joan > exercicis_per_corregir. Això es fa logant-se com a joan, anar a Manage Space Users, i dins de l'espai exercicis_per_corregir, on EveryOne té el rol de Consumer, afegir un rol més potent com ara Contributor. Si no es fa aquesta acció és produiria l'error "A system error happened during the operation: Access Denied. You do not have the appropriate permissions to perform this operation."

De la mateixa manera, tu també hauràs de convidar (Invite) l'usuari joan (el professor que corregirà els exercicis) a la carpeta correccions per tal que hi pugui escriure. Has d'anar a Manage Space Users.

Aclaració respecte els permisos que es poden assignar:

1.Coordinator: read, edit, add, delete (full access)
2.Collaborator: read, edit, add
3.Contributor: read, add
4.Editor: read, edit
5.Consumer: read

Un cop creada la regla, ja pots procedir a fer els dos exercicis que estan penjats en la carpeta joan > exercicis

Per fer-ho, hauràs d'agafar l'exercici ex_1.txt del space joan > exercicis, i copiar-lo localment i renombrar-lo com ex_1_XX.txt Aleshores procedeixes a realitzar l'exercici, i un cop guardat, ja pots crear nou contingut en la teva carpeta asi2aXX > exercicis_angles_XX > exercicis (cerques en el teu disc dur l'exercici que has realitzat). Un cop hagis ficat el document en el teu espai, s'executara la regla que has creat, que té dues accions.

Feina per al professor

L'usuari joan també ha de crear les seves regles per tal de corregir els exercicis de forma més o menys automatitzada.

Els exercicis d'anglès estan trets de http://www.mansioningles.com/quiz01.htm

una regla per a cada alumne (ineficient)

En la primera versió el professor haurà de crear una regla per a cada alumne (la qual cosa ja es veu que és ineficient si el número d'alumnes és gran). La regla es crea en la carpeta Exercicis per corregir del professor. La regla, que es diu enviar_corregit_XX, consisteix en mirar el número de l'alumne (cerquem per _XX.txt) i enviar l'exercici corregit a User Homes > asi2aXX > correccions. (Recordem que l'alumne haurà d'haver donat permís d'escriptura a l'usuari joan en aquesta carpeta).

Manage Content Rules > Create Rule
Condició: per a l'alumne asi2a01: Items which contain a specific value in its name: *_01.txt
Action: Check In Content
Action: Add Simple Workflow to Item. Name for approve step: corr_01; Copy to Sites > asi2a01 > exercicis_angles1 > corrccions; reject step: no
Type: Update
Name: corr 01 

En Type posem update perquè els alumnes han enviat el seu exercici a l'espai exercicis per corregir, i des d'aquest espai editem el document per fer les correccions.

El professor edita (corregeix l'exercici). Fixem-nos que quan guardem el document es guarda una còpia de l'original, i finalment podem confirmar els canvis (desapareix la còpia). Però encara no s'ha executat la regla. En l'opció Acciones veiem que podem executar 'corr_01, i és aleshores quan s'executarà la regla.

una regla per a tots els alumnes (correcte)

La idea és automatitzar la tasca de què el professor edita (corregeix) un exercici, i en funció del sufix _XX.txt el destí de l'exercici corregit serà User Homes > asi2aXX > Exercicis anglès > correccions. Aquesta regla només es pot fer amb programació (scripts), i Alfresco està preparat per fer-ho.

Finalment, després de cercar bastant, ja veig com es pot aconseguir la funcionalitat que busco. Ho faré combinant dues regles en la carpeta Exercicis per corregir

  • Primera regla: script_corregir_angles (nom)
    • Condició: La propiedad de nombre coincide con ex*_*.txt
    • Acció: ejecuta el script corregir_angles.js
    • Tipus: s'executa quan els elements surten o s'eliminen de la carpeta

Ara he de crear una regla que el que faci és moure d' exercicis_per_corregir a exercicis_corregits, i d'aquesta manera, quan això passi, s'executarà la primera regla que és la que conté el script.

  • Segona regla: enviar_a_corregits (nom)
    • Condició: La propiedad de nombre coincide con ex*_*.txt
    • Acció: Añadir Flujo de trabajo sencillo. Mover elemento a 'exercicis_corregits' si se emprende la acción 'enviar_a_corregits'.
    • Tipus: elements creats o que entren en la carpeta.

Resumint. Quan un alumne envia un exercici a corregir, s'executa la segona regla (el document entra en la carpeta), i per tant tinc disponible l'acció enviar_a_corregits (fletxeta desplegable). Quan faig aquesta acció és quan s'executa la primera regla, i per tant s'executa el script. Ara el problema s'ha d'acabar programant el script per tal que faci allò que es desitja: col.locar el fitxer en l'espai de l'usuari adequat. Per ex, per l'usuari 01, copiar l'exercici corregit a Home Users > asi2a01 > exercicis_angles > correccions. I el mateix per a l'usuari 02,...

script corregir_angles.js:

if (document.hasPermission("Write"))
{
	if (document.mimetype == "text/plain")
	{

		var str = document.properties["cm:name"];
		numAlumne = str.substr(str.indexOf("_")  + 1);
		numAlumne = numAlumne.substr(0,2); //start, length

		var carpetaAlumne = companyhome.childByNamePath("User Homes/asi2a" + numAlumne + "/correccions");
		var copy = document.copy(carpetaAlumne);
		if (copy != null) {
			copy.name = "Correcció de " + copy.name;
			copy.save();
		}

	}
}

La creació del script s'ha de fer amb l'usuari admin. Els scripts estan en el Data Dictionary. La única cosa que no acaba de funcionar d'aquest mètode és que si corregeixo online els exercicis (es crea una còpia de seguretat, que després es confirma amb l'original), quan s'elimina la còpia de seguretat del fitxer que estic editant aleshores s'executa el script i apareix a asi2aXX/correccions el fitxer de còpia de seguretat.

S'ha fet un screencast del procés, videotutorial que s'ha penjat al Youtube:

Entrega

Recursos

Durarda

3 hores



creat per Joan Quintana Compte, febrer 2010