My example below get the labels from the row and the columns. I used this to send the user to another link and drill-down.
// this is an example of a bar chart's selectHandler function function selectHandler() { var selection = chart.getSelection(); var item = selection[0]; if (item.row != null && item.column != null) { var rowLabel = parseInt(data.getValue(item.row, 0)); var columnLabel = data.getColumnLabel(item.column); } } google.visualization.events.addListener(chart, 'select', selectHandler);
In your custom ModelView, you need to add the following lines: from flask.ext.admin.model.template import macro column_formatters = dict(your_column=macro('render_your_column')) list_template = 'list.html'
In your custom list.html template, you need to add the following jinja2 code: {% macro render_your_column(model, column) %} {% if model.your_column%}<i class="icon-ok"></i>{% endif %} {% endmacro %}
If your row has a value in "your_column", then it will show as a checkmark. You need to make a new macro for each column.
Flask-Migrate is exactly what I've been looking for when it comes to database migrations. When I create PHP applications with MVC frameworks, the changes in the database need to be done manually when the model is changed. Flask-Migrate handles changes to the database (like adding/removing columns) so your models reflect your database.
This is a big advantage Flask has over PHP frameworks.