I like different colors to gray...
You can add more formats to download:
‘canon’, ‘cmap’, ‘cmapx’, ‘cmapx_np’, ‘dia’, ‘dot’, ‘fig’, ‘gd’, ‘gd2’,
‘gif’, ‘hpgl’, ‘imap’, ‘imap_np’, ‘ismap’, ‘jpe’, ‘jpeg’, ‘jpg’, ‘mif’,
‘mp’, ‘pcl’, ‘pdf’, ‘pic’, ‘plain’, ‘plain-ext’, ‘png’, ‘ps’, ‘ps2’, ‘svg’,
‘svgz’, ‘vml’, ‘vmlz’, ‘vrml’, ‘vtx’, ‘wbmp’, ‘xdot’, ‘xlib’
José
--
--- /home/jose/web2py/applications/welcome/views/appadmin.html 2012-12-25 12:11:39.000000000 -0300
+++ /home/jose/web2py/applications/borro3/views/appadmin.html 2012-12-29 20:48:18.000000000 -0300
@@ -229,7 +229,21 @@
{{=T('pygraphviz library not found')}}
{{elif not databases:}}
{{=T("No databases in this application")}}
- {{else:}}
+ {{else:}}
+ <div class="btn-group">
+ <a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
+ <i class="icon-download"></i> {{=T('Save model as...')}}
+ <span class="caret"></span>
+ </a>
+ <ul class="dropdown-menu">
+ <li><a href="{{=URL('appadmin', 'bg_graph_model', args=['png'])}}">png</a></li>
+ <li><a href="{{=URL('appadmin', 'bg_graph_model', args=['svg'])}}">svg</a></li>
+ <li><a href="{{=URL('appadmin', 'bg_graph_model', args=['pdf'])}}">pdf</a></li>
+ <li><a href="{{=URL('appadmin', 'bg_graph_model', args=['ps'])}}">ps</a></li>
+ <li><a href="{{=URL('appadmin', 'bg_graph_model', args=['dot'])}}">dot</a></li>
+ </ul>
+ </div>
+ <br />
{{=IMG(_src=URL('appadmin', 'bg_graph_model'))}}
{{pass}}
{{pass}}
--- /home/jose/web2py/applications/welcome/controllers/appadmin.py 2012-12-29 10:33:02.000000000 -0300
+++ /home/jose/web2py/applications/borro3/controllers/appadmin.py 2012-12-29 21:11:28.000000000 -0300
@@ -487,18 +487,27 @@
else:
return ' '
- # This is horribe HTML but the only one graphiz understands
+ # This is horribe HTML but the only one graphviz understands
rows = []
- cellpadding = 4
- color = "#000000"
- bgcolor = "#FFFFFF"
+ cellpadding = 4
face = "Helvetica"
face_bold = "Helvetica Bold"
border = 0
- rows.append(TR(TD(FONT(table, _face=face_bold, _color=bgcolor),
+ if table.startswith('auth_'):
+ header_color = "#FFFFFF"
+ header_bgcolor = "#000000"
+ color = "#000000"
+ bgcolor = "#FFFFFF"
+ else:
+ header_color = "#FFFFFF"
+ header_bgcolor = "#717171"
+ color = "#000000"
+ bgcolor = "#FBFBFB"
+
+ rows.append(TR(TD(FONT(table, _face=face_bold, _color=header_color),
_colspan=3, _cellpadding=cellpadding,
- _align="center", _bgcolor=color)))
+ _align="center", _bgcolor=header_bgcolor)))
for row in db[table]:
rows.append(TR(TD(FONT(row.name, _color=color, _face=face_bold),
_align="left", _cellpadding=cellpadding,
@@ -532,7 +541,16 @@
graph.add_edge(n1, n2, color="#4C4C4C", label='')
graph.layout()
- return graph.draw(format='png', prog='dot')
+ if not request.args:
+ return graph.draw(format='png', prog='dot')
+ else:
+ response.headers['Content-Disposition']='attachment;filename=graph.%s'%request.args(0)
+ if request.args(0) == 'dot':
+ return graph.string()
+ else:
+ return graph.draw(format=request.args(0), prog='dot')
+
def graph_model():
- return dict(databases=databases, pgv=pgv)
+ file_type = SELECT('png', 'svg', 'dot')
+ return dict(databases=databases, pgv=pgv, file_type=file_type)