20110110

a) job_office, Synchronisierung

  • Person.clean prüft jetzt auf “Circular reference”. Sonst kommt irgendwann mal ein Schlaumeier auf die Idee, einer Kontaktperson des ADG sich selbst als Kontaktperson einzutragen. demo.dpy tries to create a circular reference and tests whether it fails:

    from django.core.exceptions import ValidationError
    # a circular reference: bernard is contact for company adg and also has himself as `job_office_contact`
    bernard = Person.objects.get(name__exact="Bodard Bernard")
    adg = company(name=u"Arbeitsamt der D.G.",city=eupen,country='BE')
    yield adg
    adg_dir = contact(company=adg,person=bernard,type=1)
    yield adg_dir
    try:
      bernard.job_office_contact = adg_dir
      bernard.clean()
      #~ bernard.save()
    except ValidationError:
        pass
    else:
        raise Exception("Expected ValidationError")
    

    Vielleicht müsste lino.dsbe eher ein neues Modell CoachedPerson(contacts.Person) definieren. Dann hätten “normale” Kontaktpersonen gar nicht die vielen Felder des DSBE. Dazu wäre ein Feld Person.type nötig.

  • Noch drei neue Felder in Person:

    Lino

    TIM

    card_type

    CARDTYPE

    card_issuer

    CARDISSUER

    noble_condition

    NOBLECOND

  • Statt eines Klassenattributs job_office im LinoSite habe ich jetzt ein FK-Feld job_office in SiteConfig. Dieser Parameter ist wie site_company auf der Grenze zwischen statischen und dynamischen Konfigurationsparametern. Eindeutig dynamisch ist bisher eigentlich nur next_partner_id. Aber job_office und site_company sind übers UI leichter einzugeben.

  • street_box wurde beim Synchronisieren aus TIM vergessen.

  • Neue Funktion lino.Site.setup_dblogger(). Dadurch kann man nun den loglevel des dbloggers lokal verändern.

b) Cache-Bug

  • Auf der Suche nach dem “Cache-Bug”. master params sind die Parameter, die ein slave dieses Panels als base params übernehmen soll. master- und baseparams dürfen immer nur mk und mt sein. Der Fehler ist scheinbar, dass ich ‘query’ auch da rein speichere. Für ‘query’ brauche ich eine weitere variable query_params. Bug behoben. Da waren im Anschluss noch einige Nebenwirkungen mit dem refresh. Aber jetzt scheint alles zu klappen.