2 Display information about a given model.
12 openerp.tools.config['log_level'] = 100
13 openerp.netsvc.init_logger()
14 registry = openerp.modules.registry.RegistryManager.get(
15 args.database, update_module=False)
16 model = registry[args.model]
19 columns = model._columns
21 if args.field and args.field not in columns:
22 print "No such field."
26 columns = { args.field: columns[args.field] }
28 print "Fields (model `%s`, database `%s`):" % (args.model, args.database)
30 for k, v in columns.items():
31 longest_k = len(k) if longest_k < len(k) else longest_k
32 longest_string = len(v.string) \
33 if longest_string < len(v.string) else longest_string
34 for k, v in sorted(columns.items()):
37 attr.append("Required")
39 attr.append("Read-only")
41 attr = '(' + attr + ')' if attr else attr
43 print v.string, '-- ' + k + ', ' + v._type, attr
45 print k.ljust(longest_k + 2), v._type, attr
46 if args.verbose and v.help:
47 print textwrap.fill(v.help, initial_indent=' ', subsequent_indent=' ')
49 def add_parser(subparsers):
50 parser = subparsers.add_parser('model',
51 description='Display information about a given model for an existing database.')
52 parser.add_argument('-d', '--database', metavar='DATABASE', required=True,
53 help='the database to connect to')
54 parser.add_argument('-m', '--model', metavar='MODEL', required=True,
55 help='the model for which information should be displayed')
56 parser.add_argument('-v', '--verbose', action='store_true',
57 help='display more information')
58 parser.add_argument('-f', '--field', metavar='FIELD',
59 help='display information only for this particular field')
61 parser.set_defaults(run=run)