wiki:RiunioneOperativa201100609

Version 4 (modified by dom_thual, 3 years ago) (diff)

--

Appunti per la riunione del Giovedì 09 giugno 2011 Dalle ore 15:00 alle ore 17:30, max 19:00.

Luogo: Mumble

Presenti: Luca, Lorenzo, Dominique Odg:

3 comunicazione di servizio

Cose che non va. 1 Commento: User --> dati reali(importare dati) o dati di test (fare funzionare le fixtures) rinominare import.json performance e consistenza. Performance si possono migliorare in un secondo momento. 2 "FIXME" report dei bug. Aprire issue su GitHub mettere il link alla issue sul codice

3 Dati sensibili

4 Andare cauto sul modello 52 Test 47 falliscono. Riscrivere i Test

chiusura ticket 84 e 85

Code: usare CurrencyField per prezzo --> Fare Dominique

PlaceHolder --> Chi fa che Dove?

Ticket #84 class SupplierStock(models.Model, PermissionResource):

code = models.CharField(max_length=128, blank=True, help_text=_("Product supplier identifier")) class Meta:

unique_together = (('code', 'supplier'),)

C'è un Bug Numero della tessera GASMEMBER class GASMember(models.Model, PermissionResource):

id_in_gas = models.CharField(_("Card number"), max_length=10, blank=True, null=True, help_text=_("GAS card number")) class Meta:

unique_together = (('gas', 'id_in_gas'), )

Se l'id è vuoto alla prima creazione di gasista ok Alla seconda creazione di un gasista con lo stesso field a blank va in errore

--> Soluzione sovrapposizione del Save() per impostare il Null

def save(self, *args, kw):

if not self.id_in_gas:

self.id_in_gas = None

Se c'è unique_together va usato sia blank=True sia null=True perché cosi Django salva nel database il field come Null e non Blank il quale non è vincolato al controllo di unicità.

DOCSTRING

DocText? lo dobbiamo usare pensando alla documentazione. Maggior attenzione a dove le creiamo Ad esempio la creazione del Gas non va dentro la classe del PDS ma va dentro la classe del GASName

Class GAS e default della sede

class GAS(models.Model, PermissionResource):

headquarter = models.ForeignKey(Place, related_name="gas_headquarter_set", help_text=_("main address"), null=True, blank=True)

Fare in modo che alla creazione di un GAS non sia obbligatorio di impostare la sede

from gasistafelice.gas.models.base import GAS, GASSupplierSolidalPact from gasistafelice.supplier.models import Supplier g1 = GAS(name='GAS1') g1.save() s1 = Supplier(name='Supplier1') s1.save()

pds = GASSupplierSolidalPact() pds.gas = g1 pds.supplier = s1 pds.save() print pds

Relation between GAS1 and Supplier1

--> Nota per creare un GAS ho bisogno Print pds bastava pds Attenzione voglio la docstring

Attenzione non fare from gasistafelice.supplier.models import * (non usare ASTERISCO) Fare l'import con i nomi giusto

$ manage.py shell --> molto utile per realizzare le doctring

Non fare test sugli modelli ma sulle cose che compete a me.

Errore Docstring Non ha senso fare docstring che riguardano i controlli che deve fare Django

Is None: oggetto globale

Generazione del GASSupplierStock alla creazione del PDS La creazione deve dipendere dalla configurazione del GAS --> creiamo un attributo supplementare al GASConfig()

if self.pk == None:

products = SupplierStock.objects.filter(supplier=self.supplier)

for p in products:

GASSupplierStock.objects.create(gas=self.gas, supplier_stock=p)

Usare if self.pk == None: dentro la save() o allora usare signal? Attenzione non abusare dei signal Il signal è post_save() con parametro created=True

Nota: ricerca text all'interno di una cartella su Linux rgrep -r da terminale Con interfaccia grafica Emacs Utily find --> contiene testo. dentro il menu "Place"

Alla save() facciamo

products = SupplierStock.objects.filter(supplier=self.supplier)

for p in products:

GASSupplierStock.objects.create(gas=self.gas, supplier_stock=p)

Come migliorare questo codice? def save(self, *args, kw):

if self.gas.config.auto_select_all_products: for p in self.supplier.supplierstock_set.all():

p.gassupplierstock_set.add(gas=self.gas)

super(GASMember, self).save(*args, kw) --> Nota bene non serve questa riga se usiamo un signal

Unicode: uso della Print. Lavoro in squadra --> fare con qualità.

Useremo database POSTGRES

Problema del GASConfig(GAS) o GASConfig(models.Model)? Caso parent_Link = true in inherenza GAS(padre) per GASConfig(Figlio) in classe derivata. Non creo un GASConfig creo un GAS. Recupero dei attributi funziona lo stesso. GAS.Config class GASConfig(models.Model, PermissionResource?):

gas = models.OneToOneField?(GAS, related_name="config")

Note: serve PermissionResource?? Dipende di come useremo nelle viste. Fare controlli con permessi o solo con il ruolo?

auto_now=True: (non ha senzo) --> Non mettere mezza notte o lasciare vuoto? --> meglio provocare l'utente del sistema ad aggiustare i default piuttosto che proporre un campo vuoto. Usare mezza notte --> Fare Dominique

use_single_delivery --> Fare analisi Dominique Creare Ticket