Контроллер пилонов сыпучих YUI - PullRequest
1 голос
/ 18 мая 2011

У меня есть следующий контроллер:

import logging

from pylons import request, response, session, tmpl_context as c, url
from pylons.controllers.util import abort, redirect
from webhelpers.html.tags import HTML


from improve.lib.base import BaseController, render
from improve import model

import improve.model.meta as meta
import improve.lib.helpers as h


log = logging.getLogger(__name__)

class AlarmsController(BaseController):

    def list(self):
        c.alarms = meta.Session.query(model.Alarms).all()
        return render('../public/listalarms_table.html')

, представленный этим шаблоном (listalarms_table.html):

...

<div id="markup">
    <table id="alarms">
        <thead>
            <tr>
                <th>Id</th>
                <th>Severity</th>
                <th>Node</th>
                <th>Count</th>
                <th>Last Alarm</th>
                <th>Log Msg</th>
                <th>AckUser</th>
             </tr>
        </thead>
        <tbody>
             % for alarms in c.alarms:
            <tr>
                <td>${alarms.alarmid.__repr__()|n}</td>
                <td>${alarms.severity.__repr__()|n}</td>
                <td>${alarms.nodeid.__repr__()|n}</td>
                <td>${alarms.counter.__repr__()|n}</td>
                <td>${alarms.lasteventtime.__repr__()|n}</td>
                <td>${alarms.logmsg.__repr__()|n}</td>
               <td>${alarms.alarmackuser.__repr__()|n}</td>
             </tr>
             % endfor
        </tbody>
    </table>
</div>
<script type="text/javascript">
YAHOO.util.Event.addListener(window, "load", function() {
    YAHOO.example.EnhanceFromMarkup = new function() {
        var myColumnDefs = [
            {key:"id",label:"Id", sortable:true},
            {key:"severity",label:"Severity", sortable:true}
            {key:"node",label:"Node", sortable:true} 

{key:"count",label:"Count",formatter:YAHOO.widget.DataTable.formatNumber,sortable:true},

    {key:"lastalarm",label:"LastAlarm",formatter:YAHOO.widget.DataTable.formatCurrency,sortable:true},
            {key:"logmsg",label:"Log Msg"}
        ];



    this.myDataSource = new YAHOO.util.DataSource(YAHOO.util.Dom.get("alarms"));
    this.myDataSource.responseType = YAHOO.util.DataSource.TYPE_HTMLTABLE;
    this.myDataSource.responseSchema = {
        fields: [{key:"id"},
                {key:"severity"},
                {key:"node"},
                {key:"count", parser:"number"},
                {key:"lastalarm", parser:"date"} // point to a custom parser
        ]
    };

    this.myDataTable = new YAHOO.widget.DataTable("markup", myColumnDefs, this.myDataSource,
            {caption:"Example: Progressively Enhanced Table from Markup",
            sortedBy:{key:"id",dir:"asc"}}
    );
};

});

Проблема:

Если я вызываю его с помощью http://myserver:port/listalarms_table.html, я вижу правильное форматирование таблицы YUI, но вместо данных я получаю alarms.alarmid. repr () | n вместо реальных данных

Если я назову это http://myserver:port/alarms/list Я получаю данные правильно, но теряю формат YUI ...

Как я могу получить данные с правильным расположением YUI?Thx

...