dijous, 8 de març del 2007

Nova Interfície Gràfica

L'antiga interfície gràfica tenia uns petits errors, no tenia en compte el nom del curs i de la wiki on s'haurien d'inserir les noves pàgines.

És per això que hem fet una nova interfície gràfica inserint aquests nous camps.

El codi està aquí.

.

Amb aquesta nova informació ja tenim tots els paràmetres necessaris per inserir la pàgina a la wiki, ja falta poc!!!!

Etiquetes de comentaris: , ,

Enviar dades del OO a Internet

El primer pas per a crear una pàgina a la wiki és enviar les dades que hem recollit amb l'extensió del OO i enviar-les.

Com que aquestes dades les enviarem a un servidor web el que ens cal és utilitzar una llibreria de python que ens simplifiqui la vida el màxim possible. La que he trobat, ha estat la urllib.

Ara bé, no tot són flors i violes, al fer això ens sorgeixen dos problemes que hem de resoldre:
  • Primer de tot hem de mirar si l'aplicació funciona a través d'un proxy i si no ho fa, arreglar-ho
  • Les dades que s'envien mitjançant la comanda post, són modificades per complir els estàndards per això passen coses com aquestes:
Original
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

POST:
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">

Suposo que això es podrà arreglar amb alguna funció de php però encara no he trobat res....

Tanmateix, ara que ja podem enviar informació ens podem anar centrant en com inserir una pàgina fent ús del webservice.

Etiquetes de comentaris: , ,

divendres, 2 de març del 2007

Interfície Gràfica

Aquests dies m'he dedicat a fer la interfície gràfica de l'extensió de l'OpenOffice.

Els paràmetres de configuració hem decidit que seran aquests:

Username => String que ens indicarà el nom d'usuari del moodle al qual ens volem connectar.
Password => String que ens indicarà el password de l'usuari del moodle al qual ens volem connectar.
Wiki Url => URL de la wiki on volem afegir el document.
Nivell => Nivell de profunditat de les pàgines que dividirem (és un número entre 1 i 9)
Subdividir => Si dividirem les pàgines del document
Prefix => Prefix amb el qual començaran les noves pàgines creades a la wiki
Format => Elecció del format: XHTML/Wiki

Un cop decidits els paràmetres he fet una interfície gràfica per a poder introduir-los:




El codi font el podem trobar aquí.
La gràcia està en que aquesta configuració es guarda a disc per poder recuperar-la fàcilment i no haver d'introduir-la cada vegada a mà.

Problemes?
  • El codi encara s'ha de depurar una mica, és només una demo del que serà.
  • La funció de save/load les preferències encara no funcionen del tot bé.
  • S'ha de mirar que no hi hagi problemes entre versions de l'OO i entre linux/windows pel tema de crear fitxer i guardar-hi informació

El pròxim pas és tenir una versió més o menys operativa del webservice i començar a programar les funcions que interectuaran l'extensió amb el webservice.

Etiquetes de comentaris: , ,

dilluns, 26 de febrer del 2007

Exportació a l'OpenOffice en format HTML/XHTML

Ja hem parlat de que l'objectiu final de l'extensió és exportar el document d'OO a la wiki del moodle que desitgem.

Per això ens cal exportar el document amb el format que accepti la wiki (html/xhtml/wiki)

Basant-nos en això i les funcionalitats de la wiki tenim dues opcions:

  • La primera consisteix en exportar el document amb format html o xhtml, la qual cosa és una funcionalitat de l'OO.
  • La segona consisteix en anar cercant pel document el seu contingut i realitzar una transformació dins la extensió que ens doni com a resultat un format vàlid per a la wiki.

La primera opció es podria fer mitjançant el següent script en python: exporta.py

Definint la variable:

p.Value="HTML (StarWriter)" => sortida del document en format html
p.Value="XHTML Writer File" => sortida del document en format xhtml

Quins problemes hi ha al dur a terme aquesta opció? S'hauria de validar que el format del document d'OO i el resultat en la wiki fossin el mateix, i en cas contrari, aplicar les transformacions que siguin necessàries.

La segona opció es podria fer mitjançant uns altres scripts:

cercaestils.py => Ens retorna els estils actius que s'han fet servir en el document
agafaestil.py => Ens tots el text que estigui en l'estil escollit
cercaposicions.py => Ens cerca l'inici i el final de l'estil que escollim
printaindex.py => Ens printa el contingut de l'índex del document, si n'hi ha.

Mitjançant aquesta opció podríem crear un document html, xhtml o amb el format de la wiki a mida tot i que seria mol més laboriós.

A més a més aquesta última opció (crec) que seria molt difícil d'implementar amb el word...

En definitiva, crec que la millor opció és realitzar la exportació en xhtml i que el webservice s'encarregui d'arreglar el xhtml per a que compleixi el format que desitgem.

En tot cas haurem d'investigar amb més detall quines transformacions hem de realitzar al xhtml i tota la pesca!

Etiquetes de comentaris: , , ,

divendres, 16 de febrer del 2007

Diàleg

Ja tinc el meu primer diàleg per OO.

Amb PyUno es poden utilitzar les llibreries d'AWT per a fer messageboxes,menus,etc.

Aquí hi ha l'exemple que he fet: login



A mode d'exemple he fet servir les llibreries d'en Danny

També m'ha estat d'utilitat aquesta extensió que ja exisitia pel OO.

L'únic problema que hi ha és que debugar les aplicacions per OO és com una mena d'infern i la documentació d'exemples, tutorials, etc de PyUno és quasibé inexistent.

Etiquetes de comentaris: ,

divendres, 9 de febrer del 2007

Primera extensió pel OpenOffice

Per crear l'extensió farem ús de PyUNO.

PyUNO es pot fer servir utilitzant els següents mètodes:

1. Dins de l'executable de Python(i fora del procés d'OpenOffice).

Aquesta metodologia s'utilitza quan:

  • Es comença a aprendre PyUNO, es té un enfocament més intuïtiu.
  • Es vol apuntar a execucions del script començant en processos separats (cgi-script dins un servidor web)
  • Es vol un entorn ràpid d'execució-codi, codi-execució

Un exemple de codi seria el següent:

Iniciar l'OpenOffice: oowriter "-accept=socket,host=localhost,port=2002;urp;"

Executar: .\python hello_world.py

2. Dins del procés d'OpenOffice.

Aquesta metodologia s'utilitza quan:
  • Es vulgui executar el programa en moltes màquines
  • Quan el programa depèn de crides d'altres programes
  • Es tingui més experiència amb pyUNO
  • Quan es vol el millor rendiment del programa
Per crear una extensió amb aquesta metodologia cal:
  • Realitzar el programa que volguem: hello_world.py
  • Assignar el programa a un event: Addons.xcu
  • Comprimir els dos arxius en un zip: zip hello_world.zip Addons.xcu hello_world.py
  • Hi ha 3 maneres per a instal·lar l'extensió creada:
    • /usr/lib/openoffice/program/unopkg add hello_world.zip
    • /usr/lib/openoffice/program/unopkg gui i afegir l'extensió
    • Obrir l'OpenOffice i afegir la instal·lació manualment tal com hem fet al pas anterior.

Finalment només ens cal executar l'extensió:



Etiquetes de comentaris: , ,