[Gfoss] RFE: QGIS e finestre di inserimento/modifica dati

Prima di scrivere un RFE come si deve, vorrei confrontarmi con voi, mi sembra
infatti di aver letto di recente una richiesta simile ma non ricordo più se
su questa lista o dove.

In sintesi, il problema è questo: volendo utilizzare QGIS per la gestione di
una base dati POSTGIS con molte tabelle in relazione tra loro, emerge
l'esigenza di avere delle maschere di modifica o immissione dati alfanumerici
più strutturate. Per es.:

tabella STRADE:
  ID_STRADA (PK)
  NOME_STRADA
  ID_TIPO_STRADA (FK)
  THE_GEOM

tabella TIPI_STRADE:
  ID_TIPO_STRADA (PK)
  NOME_TIPO

Ora, vorrei che quando l'utente inserisce/modifica una strada possa scegliere
il tipo di strada STRADE.ID_TIPO_STRADA solo da una tendina dove ci sono i
valori presi dalla tabella TIPI_STRADE.

Già sento l'obiezione che questa esigenza è troppo specifica per andare nel
core di QGIS.

D'accordo, allora perché non un plugin?

Ora le domande:

1 - secondo voi è già possibile ? (temo proprio di no)
2 - interessa anche a voi?
3 - proposte? Metto su una pagina wiki e arrivati a un qualcosa di condiviso
facciamo un RFE/RFC come si deve?

L'ideale sarebbe avere una callback che al momento di visualizzare la finestra
di modifica dati controlli se c'è una funzione registrata (magari in python)
da chiamare al posto di quella predefinita.

Potrebbe anche essere qualcosa di simile alle azioni, che lancia un comando
definito dall'utente...

Ciao

--
Alessandro Pasotti
itOpen - "Open Solutions for the Net Age"
w3: www.itopen.it
Linux User# 167502

Ciao Ale. Questo è stato un argomento che ho sollevato un anno e fa, ed è tornata in ML pochi giorni fa: http://www.faunalia.com/pipermail/gfoss/2008-February/007811.html
http://www.faunalia.com/pipermail/gfoss/2008-February/007808.html

Visto che comincia ad allargarsi l’interesse vediamo di strutturare una soluzione insieme. Io voto per il wiki.

Giovanni

2008/2/10, Alessandro Pasotti <ale.pas@tiscali.it>:

Prima di scrivere un RFE come si deve, vorrei confrontarmi con voi, mi sembra
infatti di aver letto di recente una richiesta simile ma non ricordo più se
su questa lista o dove.

In sintesi, il problema è questo: volendo utilizzare QGIS per la gestione di
una base dati POSTGIS con molte tabelle in relazione tra loro, emerge
l’esigenza di avere delle maschere di modifica o immissione dati alfanumerici
più strutturate. Per es.:

tabella STRADE:
ID_STRADA (PK)
NOME_STRADA
ID_TIPO_STRADA (FK)
THE_GEOM

tabella TIPI_STRADE:
ID_TIPO_STRADA (PK)
NOME_TIPO

Ora, vorrei che quando l’utente inserisce/modifica una strada possa scegliere
il tipo di strada STRADE.ID_TIPO_STRADA solo da una tendina dove ci sono i
valori presi dalla tabella TIPI_STRADE.

Già sento l’obiezione che questa esigenza è troppo specifica per andare nel
core di QGIS.

D’accordo, allora perché non un plugin?

Ora le domande:

1 - secondo voi è già possibile ? (temo proprio di no)
2 - interessa anche a voi?
3 - proposte? Metto su una pagina wiki e arrivati a un qualcosa di condiviso
facciamo un RFE/RFC come si deve?

L’ideale sarebbe avere una callback che al momento di visualizzare la finestra
di modifica dati controlli se c’è una funzione registrata (magari in python)
da chiamare al posto di quella predefinita.

Potrebbe anche essere qualcosa di simile alle azioni, che lancia un comando
definito dall’utente…

Ciao


Alessandro Pasotti
itOpen - “Open Solutions for the Net Age”
w3: www.itopen.it
Linux User# 167502


Iscriviti all’associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
Gfoss@faunalia.com
http://www.faunalia.com/cgi-bin/mailman/listinfo/gfoss
Questa e’ una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell’Associazione GFOSS.it.

Il domenica 10 febbraio 2008, G. Allegri ha scritto:

Ciao Ale. Questo è stato un argomento che ho sollevato un anno e fa, ed è
tornata in ML pochi giorni fa:

Ecco dove l'avevo visto!

Visto che comincia ad allargarsi l'interesse vediamo di strutturare una
soluzione insieme. Io voto per il wiki.

http://wiki.gfoss.it/index.php/Software_Desktop_GIS#RFE_e_RFC

Ho fatto un copia incolla quasi brutale della mia mail ma almeno è un inizio.

Vi prego di integrare e/o sostituire con quanto avevate espresso nelle vostre
mail.

Senza andarci a impantanare in cose troppo complesse, sarebbe già una favola
avere un sistema che permettesse di chiamare una funzione python custom al
posto della maschera di inserimento predefinita.

Poi ciascuno potrebbe implementare la/le marchere come meglio crede.

Infatti una soluzione che vada bene in tutte le situazioni penso che sia molto
difficile se non impossibile da trovare.

Ciao

--
Alessandro Pasotti
itOpen - "Open Solutions for the Net Age"
w3: www.itopen.it
Linux User# 167502

Alessandro Pasotti ha scritto:

1 - secondo voi è già possibile ? (temo proprio di no)

Anche secondo me

2 - interessa anche a voi?

Si

3 - proposte? Metto su una pagina wiki e arrivati a un qualcosa di condiviso
facciamo un RFE/RFC come si deve?

+1
pc
--
Paolo Cavallini, see: http://www.faunalia.it/pc

Ciao Alessandro,

> Ora le domande:
>
> 1 - secondo voi è già possibile ? (temo proprio di no)

Penso che o si fa una modifica al codice di base, oppure si fa un
plugin che replica molto del codice di base.

Inizialmente pensavo anch'io a un plugin, ma mi sono autoconvinto che
dopo la prima estensione di editing di attributi viene una seconda,
terza, etc. Il tutto converge alla possibilita' di fare "forms" custom
per i suoi dati che e' fatto da clienti di DBMS come ad esempio
OpenOffice Base.

A questo punto mi sembra inutile di implementare piu' e piu' di questa
funzionalita' in qGIS e mi sembra un approccio migliore di
interfacciare qGIS con un dbms client esistente.

In contrasto ad aggiungere la funzionalita' a qGIS stesso, penso che
scrivere un plugin che apre un "form" so un oggetto territoriale sia
piuttosto fattibile--particolarmente se si limita a dati contenuti in
postgres.

Lo vedo simile al info-tool. Si seleziona il tool "attribute edit" e
clicca su una feature. Il qGIS plugin trova il gid della feature e
apre una form in una applicazione esterna secondo qualche file di
configurazione.

L'applicazione esterna edita direttamente i records su postgres. Il
qGIS plugin si dovrebbe occupare dell'aggiornamento dei dati di
attributi dopo il commit del dbms client esterno.

sembra che
http://www.devshed.com/c/a/Python/Python-and-OpenOfficeorg/1/ e
http://wiki.services.openoffice.org/wiki/Python
sono buoni punti di partenza per capire come scrivere la parte OOO del
plugin.

Forse un secondo plugin "aggiorna attributi" che crea un bottone che si
piga manualmente sarebbe la soluzione piu' facile..

> 2 - interessa anche a voi?

yep

> 3 - proposte? Metto su una pagina wiki e arrivati a un qualcosa di
> condiviso

Se qualcuno mi aiuta, forse potre tentare di implementare un tale
plugin in python. Che mi occorre sarebbe:
* un esempio di un plugin python simile
* aiuto di trovare le cose giuste nel mondo open office

saluti
-b

Il lunedì 11 febbraio 2008, Bud P. Bruegger ha scritto:

Ciao Alessandro,

> > Ora le domande:
> >
> > 1 - secondo voi è già possibile ? (temo proprio di no)

Penso che o si fa una modifica al codice di base, oppure si fa un
plugin che replica molto del codice di base.

Inizialmente pensavo anch'io a un plugin, ma mi sono autoconvinto che
dopo la prima estensione di editing di attributi viene una seconda,
terza, etc. Il tutto converge alla possibilita' di fare "forms" custom
per i suoi dati che e' fatto da clienti di DBMS come ad esempio
OpenOffice Base.

A questo punto mi sembra inutile di implementare piu' e piu' di questa
funzionalita' in qGIS e mi sembra un approccio migliore di
interfacciare qGIS con un dbms client esistente.

Si, sono d'accordo con la conclusione ma sostituirei "inutile" con "sarebbe
bello ma ci vorrebbe qualche anno/uomo".

Inoltre la casistica è troppo ampia per soddisfare tutte le esigenze.

In contrasto ad aggiungere la funzionalita' a qGIS stesso, penso che
scrivere un plugin che apre un "form" so un oggetto territoriale sia
piuttosto fattibile--particolarmente se si limita a dati contenuti in
postgres.

Lo vedo simile al info-tool. Si seleziona il tool "attribute edit" e
clicca su una feature. Il qGIS plugin trova il gid della feature e
apre una form in una applicazione esterna secondo qualche file di
configurazione.

Questo funzionerebbe per l'editing ma non per l'inserimento: per l'editing
potremmo usare un plugin già oggi senza problemi.

Il problema è in fase di creazione, infatti viene visualizzata la tabella
standard che permette di definire il contenuto dei campi (compresa la chiave
primaria che normalmente ha un generatore o trigger per settarla!!!!) e senza
controlli sui tipi (non parliamo dei constraints!).

In questo caso credo proprio che non ci sia altra soluzione che inserire una
callback opzionale che cerci l'esistenza di un plugin python e usi la
funzione disponibile ad oggi come default.

L'applicazione esterna edita direttamente i records su postgres. Il
qGIS plugin si dovrebbe occupare dell'aggiornamento dei dati di
attributi dopo il commit del dbms client esterno.

sembra che
http://www.devshed.com/c/a/Python/Python-and-OpenOfficeorg/1/ e
http://wiki.services.openoffice.org/wiki/Python
sono buoni punti di partenza per capire come scrivere la parte OOO del
plugin.

Forse un secondo plugin "aggiorna attributi" che crea un bottone che si
piga manualmente sarebbe la soluzione piu' facile..

> > 2 - interessa anche a voi?

yep

> > 3 - proposte? Metto su una pagina wiki e arrivati a un qualcosa di
> > condiviso

Se qualcuno mi aiuta, forse potre tentare di implementare un tale
plugin in python. Che mi occorre sarebbe:
* un esempio di un plugin python simile
* aiuto di trovare le cose giuste nel mondo open office

Io ti aiuto volentieri, ma mi preme risolvere il problema dell'inserimento che
infatti è l'unico che *deve* avvenire tramite QGIS (infatti per le geometrie
server il GIS) mentre la modifica dei dati alfanumerici lo posso fare quando
e come voglio già adesso ricorrendo a plugin o programmi esterni (oo,
applicazioni web, python, programmi C ecc. ecc.).

IMHO Serve un modo per dire a QGIS di non aprire la sua tabella base in fase
di inserimento ma di passare il controllo a una funzione esterna (python),
poi sarà il programmatore a sviluppare le maschere o quant'altro serve allo
scopo.

Certo, sa tanto di pezza che sarà dura farlo digerire al psc (ma adesso che
abbiamo il nostro uomo ... ).

Ciao

--
Alessandro Pasotti
itOpen - "Open Solutions for the Net Age"
w3: www.itopen.it
Linux User# 167502

Alessandro Pasotti ha scritto:

Certo, sa tanto di pezza che sarà dura farlo digerire al psc (ma adesso che
abbiamo il nostro uomo ... ).

:wink:
credo sia il caso di portare la discussione in ML qgis-dev.
pc
--
Paolo Cavallini, see: http://www.faunalia.it/pc

credo sia il caso di portare la discussione in ML qgis-dev.

Ok, lo faro'.

Nel fratempo una domanda. Ho provato di sperimentare con "actions" nei
per chiamare qualcosa per editare gli attributi.

[Usando 0.9.2-rc1 sotto Windows], ho inserito il seguente
http://en.wikipedia.org/wiki/Special:Search?search=%%
come "action" in varie incarnazioni (%% con campo "topon" scielto dal
menu, % topon, con e senza capture output. Ma non sembra funzionare,
nessuna. Sa dirmi qualcuno che spaglio?

grazie
-b

Bud P. Bruegger ha scritto:

credo sia il caso di portare la discussione in ML qgis-dev.
    
Ok, lo faro'.

Nel fratempo una domanda. Ho provato di sperimentare con "actions" nei
per chiamare qualcosa per editare gli attributi.

[Usando 0.9.2-rc1 sotto Windows], ho inserito il seguente
http://en.wikipedia.org/wiki/Special:Search?search=%%
  

Prima dell'indirizzo html devi mettere l'indirizzo dell'eseguibile di un browser a tua scelta che puoi cercare con il tasto Sfoglia

ciao
Leo

come "action" in varie incarnazioni (%% con campo "topon" scielto dal
menu, % topon, con e senza capture output. Ma non sembra funzionare,
nessuna. Sa dirmi qualcuno che spaglio?

grazie
-b

_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
Gfoss@faunalia.com
http://www.faunalia.com/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.

> [Usando 0.9.2-rc1 sotto Windows], ho inserito il seguente
> http://en.wikipedia.org/wiki/Special:Search?search=%%
>
Prima dell'indirizzo html devi mettere l'indirizzo dell'eseguibile di un
browser a tua scelta che puoi cercare con il tasto Sfoglia

Grazie Leo,

Il "firefox.exe" si perdeva nel copy and paste.. Ma pensavo che non
fosse nel path e ora ho provato cosi:

C:\Programmi\Mozilla Firefox\firefox.exe
http://en.wikipedia.org/wiki/Special:Search?search=%topon

e provo con e senza "Capture output". L'action che si vede nella
finestra pop-up del info tool ha un "Run action" inattivo (grayed-out)

A volte sembra che cliccare o doppio cliccare sulla action faccia
qualcosa, ma poi qgis va in segfault..

Idee?

grazie mille
-b

Su windowz la cosa è un pò incasinata, spesso gli spazi nei path determinano errori ("Mozilla Firefox\") prova quello altrimenti dimmelo che faccio due prove con la tua azione.

ciao
leo

Grazie Leo,

Il "firefox.exe" si perdeva nel copy and paste.. Ma pensavo che non
fosse nel path e ora ho provato cosi:

C:\Programmi\Mozilla Firefox\firefox.exe
http://en.wikipedia.org/wiki/Special:Search?search=%topon

e provo con e senza "Capture output". L'action che si vede nella
finestra pop-up del info tool ha un "Run action" inattivo (grayed-out)

A volte sembra che cliccare o doppio cliccare sulla action faccia
qualcosa, ma poi qgis va in segfault..

Idee?

grazie mille
-b

On Wed, 13 Feb 2008 09:40:22 +0100
Leonardo Lami <lami@faunalia.it> wrote:

Su windowz la cosa è un pò incasinata, spesso gli spazi nei path
determinano errori ("Mozilla Firefox\") prova quello altrimenti dimmelo
che faccio due prove con la tua azione.

Ho fatto un po di prove.

Prima con l'echo.exe di cygwin sembra di funzionare.

Poi ho provato tutti tipi di cose per firefox, ma senza successo.
* ho fatto un directory "C\Programmi\MozillaFirefox\ #senza spazio
* ho messo dentro un collegamento a Firefox.exe
* ho provato da "esegui" e c:\Programmi\MozillaFirefox\firefox.exe.lnk
http://www.ogc.org funziona da li.

Ma non funziona per una action di qGIS (anche senza il ".lnk" non fa
differnza).

Rinominare il directory stesso non e' possibile con il browser aperto..

Qualche idea che posso provare?

-b

Il domenica 10 febbraio 2008, Alessandro Pasotti ha scritto:

di una base dati POSTGIS con molte tabelle in relazione tra loro, emerge
l'esigenza di avere delle maschere di modifica o immissione dati
alfanumerici più strutturata

Facciamo il punto:

in seguito alla mail di Bud sulla lista di qgis-devel è emerso ciò che temevo
ovvero che la strada "giusta" da seguire è quella del C++ :

---
If you are up for a bit of coding, I would suggest rather to look at
the Qt classes that facilitat this kind of thing (one day we need to
get this into core QGIS too).

eg http://doc.trolltech.com/4.3/qsqlrelationaltablemodel.html

Regards

Tim
---

Quindi la strada "veloce" del plugin in python non mi sembra praticabile.

Ora si tratta di vedere in quanti saremmo interessati a questa feature e
vedere se riusciamo a racimolare il tempo e/o i soldi per realizzarla.

Si tratta a mio avviso di uno sviluppo non proprio semplice (una stima molto
grezza: 50-100 ore) però vista la posta in gioco potrebbe valerne la pena.

Magari facciamo quattro chiacchiere a Perugia su questo argomento.

--
Alessandro Pasotti
itOpen - "Open Solutions for the Net Age"
w3: www.itopen.it
Linux User# 167502

Sono perfettamente d’accordo. Sinceramente non credevo richiedesse tanto sforzo… Certo, dipende da quanto vogliamo rendere complessa la cosa.
Ne riparliamo a venerdì/sabato a Perugia.

Giovanni

2008/2/18, Alessandro Pasotti <ale.pas@tiscali.it>:

Il domenica 10 febbraio 2008, Alessandro Pasotti ha scritto:

di una base dati POSTGIS con molte tabelle in relazione tra loro, emerge
l’esigenza di avere delle maschere di modifica o immissione dati
alfanumerici più strutturata

Facciamo il punto:

in seguito alla mail di Bud sulla lista di qgis-devel è emerso ciò che temevo
ovvero che la strada “giusta” da seguire è quella del C++ :


If you are up for a bit of coding, I would suggest rather to look at
the Qt classes that facilitat this kind of thing (one day we need to
get this into core QGIS too).

eg http://doc.trolltech.com/4.3/qsqlrelationaltablemodel.html

Regards

Tim

Quindi la strada “veloce” del plugin in python non mi sembra praticabile.

Ora si tratta di vedere in quanti saremmo interessati a questa feature e
vedere se riusciamo a racimolare il tempo e/o i soldi per realizzarla.

Si tratta a mio avviso di uno sviluppo non proprio semplice (una stima molto
grezza: 50-100 ore) però vista la posta in gioco potrebbe valerne la pena.

Magari facciamo quattro chiacchiere a Perugia su questo argomento.


Alessandro Pasotti
itOpen - “Open Solutions for the Net Age”
w3: www.itopen.it
Linux User# 167502


Iscriviti all’associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
Gfoss@faunalia.com
http://www.faunalia.com/cgi-bin/mailman/listinfo/gfoss
Questa e’ una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell’Associazione GFOSS.it.