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)

Reply via email to