Continuing bug fixes
[plstackapi.git] / planetstack / dmdot
1 #!/usr/bin/python
2
3 import os
4 import pdb
5 import sys
6 import json
7
8 sys.path.append('.')
9
10 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "planetstack.settings")
11
12 from django.db.models.fields.related import ForeignKey
13 from core.models import *
14
15 try:
16         output = sys.args[1]
17 except:
18         output = '-json'
19
20 g = globals()
21 model_classes = []
22 class_names = []
23
24 for c in g.values():
25         if type(c)==type(PlCoreBase):
26                 model_classes.append(c)
27                 class_names.append(c.__name__)
28
29
30 if (output=='-dot'):
31         print "digraph plstack {";
32         for c in model_classes:
33                 fields = c._meta.fields
34                 for f in fields:
35                         if type(f)==ForeignKey and f.name.title() in class_names:
36                                 print '\t"%s"->"%s";'%(c.__name__,f.name.title())
37         print "}\n";
38 elif (output=='-json'):
39         d = {}
40         for c in model_classes:
41                 fields = c._meta.fields
42                 for f in fields:
43                         if type(f)==ForeignKey and f.name.title() in class_names:
44                                 try:
45                                         d[c.__name__].append(f.name.title())
46                                 except KeyError:
47                                         d[c.__name__]=[f.name.title()]
48         print json.dumps(d,indent=4)