Re: [Python] [pythonisti] aggiornamento
Lawrence Oluyede ha scritto: Puoi, provandolo da shell. Bisognerebbe aggiungere il supporto a google.py dentro l'admin. Io sono ancora contrario a metterlo nel save() perché quando stavo sistemando i model mi sono accorto che geo_location aveva bisogno di user (per l'indirizzo) e user di geo_location e mi pare una dipendenza stupida. geo_location ha bisogno di user soloperchè user_id è la sua primary key. Comunque non mi è chiaro cosa vuoi dire. Io voglio semplicemente evitare la dipendenza circolare. Un utente si registra con i suoi dati, noi computiamo la geolocazione, la creiamo, la assegnamo al suo profilo e poi memorizziamo nel db il tutto. Va anche bene così. Io lo avevo pensato in modo da essere un componente riutilizzabile. Io lascerei cosi per ora, più avanti integriamo google.py anche dentro l'admin Non mi piace molto l'idea di non essere più in grado di inizializzare tutti i dati via l'interfaccia di amministrazione. C'è anceh da dire che la geolocazione ha uno strano formato a-la-google quindi non ti metteresti mai a mano a inserire tutto quel malloppone di informazioni (né ad inserire coordinate a caso) Infatti come è adesso, devi solo inserire un indirizzo, tutto il resto viene fatto da save. Purtroppo qui è anche colpa di Django che accoppia la struttura del database con il layer successivo. Tanto per fare un esempio, io con SQLAlchemy ho: 1° livello: definizione struttura database 2° livello: definizione mapper 3° livello: definizione model (che si occupa di gestire i dati inseriti dall'utente) Infine, nella patch, non mi convince questo: Si quelle view son tutte da riscrivere, era una monkey patch al volo per far funzionare il sito. Inoltre nel campo location vuoi inserire tutto il dettaglio del geocoder? Non bastano solo le coordinate? Appunto, bisogna riscrivere :-) Se ce la fai, prova a creare una patch alla volta, la prima per sistemare geolocation e l'altra per il profilo. Altrimenti fai il commit di quello che c'è, lo correggiamo in seguito. La mia obiezione era che il codice attuale c'è e funziona. Saluti Manlio Perillo ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] [pythonisti] aggiornamento
Altrimenti fai il commit di quello che c'è, lo correggiamo in seguito. La mia obiezione era che il codice attuale c'è e funziona. eh ok ma manca parecchia roba che ho aggiunto. Il google.py va comunque riscritto indipendentemente dal model, o meglio, ampliato. Io committo, facciamo sempre a tempo a mettere google.py dentro il save(). È la struttura del DB che non vorrei più toccare. Poi mi studio le newforms per progettare la form di inserimento/editing dei dati e la procedura del wizard -- Lawrence http://www.oluyede.org/blog http://www.neropercaso.it ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] [pythonisti] aggiornamento
Manlio Perillo ha scritto: Lawrence Oluyede ha scritto: Oggi prima di cominciare ad implementare le feature effettive (vedi la form per l'aggiunta dell'utente) ho provato a usare un po' il model e mi sono accorto di varie mancanze e problemi che ho sistemato. Ecco, senza ordine significativo: [...] Se non ci sono obiezioni io faccio il commit e comincio a progettare l'accoppiamento view/url. In allegato c'è il mega diff. Io vorrei vedere meglio il codice perchè non mi convince. Hai testato il tutto? Ho provato ora e ci sono problemi. Dalla interfaccia di amministrazione web non posso aggiungere nuove GeoLocation. Procediamo per gradi con un commit alla volta. Saluti Manlio Perillo ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Fwd: [Python] [pythonisti] aggiornamento
-- Forwarded message -- From: Lawrence Oluyede [EMAIL PROTECTED] Date: Jan 20, 2007 10:46 AM Subject: Re: [Python] [pythonisti] aggiornamento To: [EMAIL PROTECTED] Per curiosità, mi dici dove trovare questo branch? Son tutti qui: http://code.djangoproject.com/browser/django/branches http://code.djangoproject.com/wiki/SchemaEvolution -- Lawrence http://www.oluyede.org/blog http://www.neropercaso.it -- Lawrence http://www.oluyede.org/blog http://www.neropercaso.it ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] [pythonisti] aggiornamento
- il model GeoLocation è stato sostanzialmente riscritto perché - dipende da google.py e questo non va bene (get_location sarà chiamata dalla view, non dal model) Qui non ti seguo. Come vengono inseriti i dati in questo model? Il punto del mio ragionamento è che get_geo_location() debba essere chiamato dalla view una volta composto l'indirizzo, poi google.py elabora l'indirizzo _o_ gli indirizzi e poi il dizionario restituito viene memorizzato in GeoLocation.geo_location. In questo modo se ad esempio il modulo google viene riscritto in 14 modi diversi o ampliato noi non andiamo _mai_ a toccare il model ma solo la view che elabora questi dati. Poi magari scopriamo che è lento come la fame e dobbiamo farlo multithreaded, poi scopriamo che va fatto in maniera asyncrona e quindi usiamo asyncore ecc ecc. Capisci? Se cambiamo l'API del google.py non mi va di andare a toccare il model ogni volta. Meglio avere una funzione parse_data nella view o dove ti pare che viene sistemata di volta in volta. Almeno, io l'ho pensata cosi Io vorrei vedere meglio il codice perchè non mi convince. Hai testato il tutto? Come ho scritto ci sono dei test. Comunque si ho testato. Cosa non ti convince? -- Lawrence http://www.oluyede.org/blog http://www.neropercaso.it ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] [pythonisti] aggiornamento
Ho provato ora e ci sono problemi. Dalla interfaccia di amministrazione web non posso aggiungere nuove GeoLocation. Lo so, i campi sono settati a editable=False. La domanda è: perché dovresti aggiungere geo_location dall'admin? Tanto senza google non hanno alcun senso e le coordinate dei posti non cambieranno nei prossimi mille mila anni. Se un utente ha una geo locazione sbagliata va nel suo profilo, la cancella e la ricrea (edita) -- Lawrence http://www.oluyede.org/blog http://www.neropercaso.it ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] [pythonisti] aggiornamento
Ok, solo che non vedevo il codice che fa tutto questo. Dall'aread admin, quando accedo all'oggetto GeoLocation ottengo diversi errori. Potresti indicare il tipo di errori? Io non ne ho mezzo di errore. Hai _ricreato_ il db? - cancella pythonisti.db - python manage.py syndcb E' così anche per gli altri modelli, potresti verificare la cosa? Ad esempio, hai provato a creare un profilo? In effetti un problema nell'admin che non incontro nei test c'è. Non mi permette di non specificare la geo_location e l'avatar, dopo indago. Ma non ho errori di sorta L'interfaccia amministrativa non funziona bene. che errori hai? -- Lawrence http://www.oluyede.org/blog http://www.neropercaso.it ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] [pythonisti] aggiornamento
Lawrence Oluyede ha scritto: Ok, solo che non vedevo il codice che fa tutto questo. Dall'aread admin, quando accedo all'oggetto GeoLocation ottengo diversi errori. Potresti indicare il tipo di errori? Io non ne ho mezzo di errore. Hai _ricreato_ il db? - cancella pythonisti.db - python manage.py syndcb E' così anche per gli altri modelli, potresti verificare la cosa? Ad esempio, hai provato a creare un profilo? In effetti un problema nell'admin che non incontro nei test c'è. Non mi permette di non specificare la geo_location e l'avatar, dopo indago. Ma non ho errori di sorta L'errore è appunto quando provo ad aggiungere una GeoLocation, dalla pagina di creazione del profilo: IndexError at /admin/geo/geolocation/add/ list index out of range Request Method: GET Request URL:http://localhost:8080/admin/geo/geolocation/add/ Exception Type: IndexError Exception Value:list index out of range Exception Location: /home/manlio/projects/svn/external/django/trunk/django/contrib/admin/views/main.py in render_change_form, line 196 In questo modo non posso testare se la mappa funziona. Saluti Manlio Perillo ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] [pythonisti] aggiornamento
Lawrence Oluyede ha scritto: Ho sistemato il problema dei campi richiesti nel profilo L'errore è appunto quando provo ad aggiungere una GeoLocation, dalla pagina di creazione del profilo: Si si è dovuto a editable=False, l'ho tolto ma rimane un ma: In questo modo non posso testare se la mappa funziona. Puoi, provandolo da shell. Bisognerebbe aggiungere il supporto a google.py dentro l'admin. Io sono ancora contrario a metterlo nel save() perché quando stavo sistemando i model mi sono accorto che geo_location aveva bisogno di user (per l'indirizzo) e user di geo_location e mi pare una dipendenza stupida. geo_location ha bisogno di user soloperchè user_id è la sua primary key. Comunque non mi è chiaro cosa vuoi dire. Inoltre a noi non serve memorizzare l'indirizzo dentro un campo address in GeoLocation perché tanto viene costruito a partire dal profilo dell'utente (per questo la dipendenza è controproducente). Si, questo può essere tolto, lo avevo messo per completezza. Io lascerei cosi per ora, più avanti integriamo google.py anche dentro l'admin Non mi piace molto l'idea di non essere più in grado di inizializzare tutti i dati via l'interfaccia di amministrazione. Infine, nella patch, non mi convince questo: apps/geo/views.py === --- apps/geo/views.py (revision 271) +++ apps/geo/views.py (working copy) @@ -10,10 +10,11 @@ locations = models.GeoLocation.objects.all() content = [] -for item in locations: +for location in locations: content.append({ -'info': item.username.username, -'location': simplejson.loads(item.geolocation) +# XXX: to fix +'info': location.users.all() or anonymous, +'location': simplejson.loads(location.geo_location) }) Innanzitutto solo gli iscritti possono creare il profilo e quindi inserire la locazione geografica. Inoltre nel campo location vuoi inserire tutto il dettaglio del geocoder? Non bastano solo le coordinate? Saluti Manlio Perillo ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] [pythonisti] aggiornamento
Oggi prima di cominciare ad implementare le feature effettive (vedi la form per l'aggiunta dell'utente) ho provato a usare un po' il model e mi sono accorto di varie mancanze e problemi che ho sistemato. Ecco, senza ordine significativo: - Tag l'ho rinominato in Skill - ora i model hanno i vari class Meta, class Admin, __str__ con fields vari se e quando servono (questi si possono cambiare con l'uso dell'admin perché tanto non impattano sulla tabella SQL, che è quella che deve essere scolpita nella roccia per ora dato che non abbiamo un tool per le migrazioni) - l'utente può essere creato anche _senza_ la geo_location (se Google è down l'utente va creato comunque) - l'avatar è diventato un ImageField, ma lascerei questa feature come ultima cosa da implementare (anzi la lascerei proprio per una release successiva, se no che diamo :-P ?) Inoltre: - il model GeoLocation è stato sostanzialmente riscritto perché - dipende da google.py e questo non va bene (get_location sarà chiamata dalla view, non dal model) - longitudine e latitudine non vanno memorizzati in json nel DB, sono interi, li memorizzo come interi - di conseguenza google.py e views.py di geo sono stati leggermente modificati ma andranno sistemati, ampliati ecc ecc secondo la doc di google maps - bisogna sistemare le view e progettare le URL perché cosi non vanno Se non ci sono obiezioni io faccio il commit e comincio a progettare l'accoppiamento view/url. In allegato c'è il mega diff. -- Lawrence http://www.oluyede.org/blog http://www.neropercaso.it megadiff.diff Description: Binary data ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] [pythonisti] aggiornamento
dell'admin perché tanto non impattano sulla tabella SQL, che è quella che deve essere scolpita nella roccia per ora dato che non abbiamo un tool per le migrazioni) Scusa l'OT, esiste già uno strumento del genere che funzioni con sqlalchemy? Ovvero che confronti il model con il DB e aggiorni quest'ultimo di conseguenza? ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] [pythonisti] aggiornamento
Scusa l'OT, esiste già uno strumento del genere che funzioni con sqlalchemy? Ovvero che confronti il model con il DB e aggiorni quest'ultimo di conseguenza? No, esiste un branch iniziato per il Summer Of Code ma è decisamente indietro. Ora ci vorrà parecchio prima che qualcuno si incarichi di guardare quel codice, ripulirlo, aggiornarlo, testarlo, provarlo e integrarlo. Idem per il branch per SQLAlchemy al posto dell'ORM di django. -- Lawrence http://www.oluyede.org/blog http://www.neropercaso.it ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python