view app/model/Zusatzwert.js @ 123:d78bb4ca6089

Enabled accessing nested data in the grid through a renderer.
author Torsten Irländer <torsten.irlaender@intevation.de>
date Fri, 21 Jun 2013 17:41:16 +0200
parents a7bfaeb1655d
children f5864914ebb3
line wrap: on
line source
Ext.define('Lada.model.Zusatzwert', {
    extend: 'Ext.data.Model',
    requires: [
        'Lada.model.Probenzusatzwert'
    ],
    fields: [
        {name: "id"},
        {name: "pzsId", mapping: "id.pzsId"},
        {name: "probeId", mapping: "id.probeId"},
        {name: "nwgZuMesswert", type: 'float'},
        {name: "messwertPzs", type: 'float'},
        {name: "messfehler", type: 'float'},
        {name: "letzteAenderung", type: 'date', convert: ts2date, defaultValue: new Date()},

        // Field for the nested Probenzusatzobject. This one is needed to have
        // access to the nested data in the grid.
        // TODO: I would have expected that this field does not need to be
        // defined explicitly as there is the hasOne asscociation defined
        // which name and associationKey named "sprobenZusatz". Anyway it does
        // not seem to make problems.
        {name: "sprobenZusatz"}
    ],
    hasOne: [
        {
            model: 'Lada.model.Probenzusatzwert',
            primaryKey: 'pzsId',
            name: 'sprobenZusatz',
            associationKey: 'sprobenZusatz',
            foreignKey: 'pzsId',
            getterName: 'getProbenzusatz',
            setterName: 'setProbenzusatz'
        }
    ],
    idProperty: "id",
    proxy: {
        type: 'rest',
        appendId: true, //default
        url: 'server/rest/zusatzwert',
        reader: {
            type: 'json',
            root: 'data'
        },
        writer: {
            type: 'json',
            writeEverything : true
        }
    }
});

function buildId(v, record){
    return record.get('probeId') + ',' + record.get('pzsId');
}

function ts2date(v, record){
    // Converts a timestamp into a date object.
    return new Date(v);
}

http://lada.wald.intevation.org