Mercurial > p > roundup > code
changeset 1166:d56b7fc64923
additions
| author | Richard Jones <richard@users.sourceforge.net> |
|---|---|
| date | Wed, 18 Sep 2002 05:13:11 +0000 |
| parents | 14467c765167 |
| children | 75e5f2055ca9 |
| files | roundup/templates/classic/html/file.item scripts/schema_diagram.py |
| diffstat | 2 files changed, 100 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/roundup/templates/classic/html/file.item Wed Sep 18 05:13:11 2002 +0000 @@ -0,0 +1,52 @@ +<span tal:condition="python:not (context.is_view_ok() or context.is_edit_ok())"> +You are not allowed to view this page. +</span> + +<form method="POST" onSubmit="return submit_once()" + enctype="multipart/form-data" tal:condition="context/is_edit_ok"> + +<input type="hidden" name=":template" value="item"> +<input type="hidden" name=":required" value="name,type"> + +<input type="hidden" name="multilink" + tal:condition="python:request.form.has_key(':multilink')" + tal:attributes="value request/form/:multilink/value"> + +<table class="form"> + <tr> + <th>Name</th> + <td tal:content="structure context/name/field"></td> + </tr> + <tr> + <th>Content Type</th> + <td tal:content="structure context/type/field"></td> + </tr> + <tr> + <th>Content</th> + <td><input type="file" name="content" size="40"></td> + </tr> + + <tr> + <td> </td> + <td tal:content="structure context/submit">submit button here</td> + </tr> +</table> +</form> + +<a tal:condition="python:context.id and context.is_view_ok()" + tal:attributes="href string:file${context/id}/${context/name}">download</a> + +<table class="form" tal:condition="context/is_only_view_ok"> + <tr> + <th>Name</th> + <td tal:content="context/name"></td> + </tr> + <tr> + <th>Content Type</th> + <td tal:content="context/type"></td> + </tr> +</table> + +<tal:block tal:condition="python:context.id and context.is_view_ok()" + tal:replace="structure context/history" /> +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/schema_diagram.py Wed Sep 18 05:13:11 2002 +0000 @@ -0,0 +1,48 @@ +#! /usr/bin/python +# +# Schema diagram generator contributed by Stefan Seefeld of the fresco +# project http://www.fresco.org/. +# +# It generates a 'dot file' that is then fed into the 'dot' +# tool (http://www.graphviz.org) to generate a graph: +# +# %> ./schema.py +# %> dot -Tps schema.dot -o schema.ps +# %> gv schema.ps +# +import sys +import roundup.instance + +# open the instance +instance = roundup.instance.open(sys.argv[1]) +db = instance.open() + +# diagram preamble +print 'digraph schema {' +print 'size="8,6"' +print 'node [shape="record" bgcolor="#ffe4c4" style=filled]' +print 'edge [taillabel="1" headlabel="1" dir=back arrowtail=ediamond]' + +# get all the classes +types = db.classes.keys() + +# one record node per class +for i in range(len(types)): + print 'node%d [label=\"{%s|}"]'%(i, types[i]) + +# now draw in the relations +for name in db.classes.keys(): + type = db.classes[name] + attributes = type.getprops() + for a in attributes.keys(): + attribute = attributes[a] + if isinstance(attribute, roundup.hyperdb.Link): + print 'node%d -> node%d [label=%s]'%(types.index(name), + types.index(attribute.classname), + a) + elif isinstance(attribute, roundup.hyperdb.Multilink): + print 'node%d -> node%d [taillabel="*" label=%s]'%(types.index(name), + types.index(attribute.classname), + a) +# all done +print '}'
