-
Notifications
You must be signed in to change notification settings - Fork 1
/
generaadm.py
52 lines (45 loc) · 1.26 KB
/
generaadm.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import os
import re
def listefile(subdirectory=''):
liste = []
if subdirectory:
path = subdirectory
else:
path = os.getcwd()
for root, dirs, names in os.walk(path):
for filename in names:
if filename == "models.py" :
liste.append(os.path.join(root, filename))
return liste
liste = listefile()
prog = re.compile("class.*")
print liste
for models in liste :
classes = []
f = open(models, 'r')
for ligne in f:
if prog.match(ligne):
temp = ligne.replace("class ","")
temp = temp.split("(")[0]
classes.append(temp)
print classes
if models.find("\\") :
app = models.split("\\")[-2:][0]
else :
app = models.split("/")[-2:][0]
folder = models.replace("/models.py","")
folder = models.replace("\\models.py","")
f.close()
importa = ""
for ap in classes :
importa += "%s,"%ap
importa = importa[:-1]
f = open("%s/admin.py"%folder, 'w')
f.write("from django.contrib import admin\r\n")
f.write("from %s.models import %s\r\n"%(app,importa))
for ap in classes :
ap = ap.replace(" ","")
f.write("admin.site.register(%s)\r\n"%ap)
f.close()
print app
print folder