misc/cmp_schema.py
author Quentin Roquefort <roquefort.quentin@gmail.com>
Thu, 28 Apr 2011 20:41:44 +0200
changeset 7277 acd7f0e9f276
parent 5372 b74eed7e8b37
permissions -rw-r--r--
[etwist] Generates apache's mod_concat-like urls for js and css Uses the lists of js, css and ie_css included in order to generate urls compatible with Apache mod_concat (ie: http://test.fr/??file1.js,file2.js). Css files may use `media` option or may be for IE only ; this patch does not concatenate css filenames for different media types or different IE specs. It concatenates only files served under cubicweb's `data` urls and keeps original include order. The generated urls are added to the HTML header as usual. HOW-TO: - calling HTMLHead(datadir_url) will enable the url concatenation - calling HTMLHead() will not benefit of url concatenation IMPORTANT NOTE: - fckeditor can no more be served under `/data/` segment

"""This module compare the Schema on the file system to the one in the database"""

from cStringIO import StringIO
from cubicweb.web.schemaviewer import SchemaViewer
from logilab.common.ureports import TextWriter
import difflib

viewer = SchemaViewer()
layout_db = viewer.visit_schema(schema, display_relations=True)
layout_fs = viewer.visit_schema(fsschema, display_relations=True)
writer = TextWriter()
stream_db = StringIO()
stream_fs = StringIO()
writer.format(layout_db, stream=stream_db)
writer.format(layout_fs, stream=stream_fs)

stream_db.seek(0)
stream_fs.seek(0)
db = stream_db.getvalue().splitlines()
fs = stream_fs.getvalue().splitlines()
open('db_schema.txt', 'w').write(stream_db.getvalue())
open('fs_schema.txt', 'w').write(stream_fs.getvalue())
#for diff in difflib.ndiff(fs, db):
#    print diff