El 13/08/14 a las #4, Anthony escribió:
> Can you show your module code? Are you doing the appending at the top
> level in the module, or within a function/method?

The latter:

> # -*- coding: utf-8 -*-
> # (C) Copyright (C) 2012-14 Pablo Angulo
> # This file is part of karakolas <karakolas.org>.
>
> # karakolas is free software: you can redistribute it and/or modify
> # it under the terms of the GNU Affero General Public License as
> # published by the Free Software Foundation, either version 3 of the
> # License, or (at your option) any later version.
>
> # karakolas is distributed in the hope that it will be useful,
> # but WITHOUT ANY WARRANTY; without even the implied warranty of
> # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> # GNU General Public License for more details.
>
> # You should have received a copy of the GNU Affero General Public
> # License along with karakolas.  If not, see
> # <http://www.gnu.org/licenses/>.
>
> from gluon.html import URL, FORM
> from gluon import current
> from collections import defaultdict
>
> class JQPlot(FORM):
>
>     def __init__(self, query,
>                  row_field, col_field, data_field,
>                  row_ids=None, col_ids=None,
>                  row_represent=None, col_represent=None,
> data_represent=None,
>                  _id='',
>                  **attributes):
>         '''Muestra una gráfica ligeramente interactiva para visualizar
>         una relacion que representa una funcion (ref1,ref2) -> valor
>         '''
>         FORM.__init__(self, **attributes)
>         current.response.files.append(URL('static',
> 'jqplot/jquery.jqplot.min.js'))
>         current.response.files.append(URL('static',
> 'jqplot/jquery.jqplot.min.css'))
>         current.response.files.append(URL('static',
> 'jqplot/plugins/jqplot.barRenderer.min.js'))
>         current.response.files.append(URL('static',
> 'jqplot/plugins/jqplot.categoryAxisRenderer.min.js'))
>         current.response.files.append(URL('static',
> 'jqplot/plugins/jqplot.pointLabels.min.js'))
>
>         self.query      = query
>         self.row_field  = row_field
>         self.col_field  = col_field
>         self.data_field = data_field
>
>         self.row_represent = row_represent or row_field.represent or
> (lambda x:x)
>         self.col_represent = col_represent or col_field.represent or
> (lambda x:x)
>         try:
>             self.data_represent = data_represent or
> data_field.represent or (lambda x:x)
>         except AttributeError:
>             #A f.sum() or f.count() doesn't have a represent attribute
>             self.data_represent = (lambda x:x)
>
>         self.row_ids   = row_ids or [r[row_field] for r in
> current.db(query).select(row_field, groupby=row_field)]
>         self.row_names = [self.row_represent(rid) for rid in self.row_ids]
>         self.col_ids   = col_ids or [r[col_field] for r in
> current.db(query).select(col_field, groupby=col_field)]
>         self.col_names = [self.col_represent(cid) for cid in self.col_ids]
>
>     def xml(self):
>
>         d = defaultdict(float)
>         recs = current.db(self.query).select(
>                     self.row_field, self.col_field, self.data_field,
>                     groupby=self.row_field|self.col_field
>                )
>
>         for row in recs:
>             d[row[self.row_field],
> row[self.col_field]]=row[self.data_field]
>
>         data = [[float(d[r,c]) for c in self.col_ids] for r in
> self.row_ids]
>         series_labels = ','.join("{label:'%s'}"%self.row_represent(r)
> for r in self.row_ids)
>         ticks = self.col_names
>
>         d = dict(data=data,ticks=ticks, series_labels=series_labels)
>         return current.response.render('jqplot.html', d)

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to